From 02a3eb6e059cff3c951e10a2429dbd624f095806 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Wed, 18 Mar 2020 18:03:39 +0100 Subject: WindowInsetsAnimationController: Add additional assertions for new APIs Bug: 151707442 Test: atest InsetsAnimationControlImplTest InsetsControllerTest Change-Id: Ic70693329fb1d0116fc5b4d88a8d5fd499238441 --- .../android/view/InsetsAnimationControlImplTest.java | 17 ++++++++++++++++- .../src/android/view/InsetsControllerTest.java | 6 +++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java index 22b4e45f068a..c87433f247e5 100644 --- a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java +++ b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java @@ -16,13 +16,14 @@ package android.view; -import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_SHOWN; import static android.view.InsetsState.ITYPE_NAVIGATION_BAR; import static android.view.InsetsState.ITYPE_STATUS_BAR; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.WindowInsets.Type.systemBars; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; @@ -134,6 +135,13 @@ public class InsetsAnimationControlImplTest { assertEquals(systemBars(), mController.getTypes()); } + @Test + public void testReady() { + assertTrue(mController.isReady()); + assertFalse(mController.isFinished()); + assertFalse(mController.isCancelled()); + } + @Test public void testChangeInsets() { mController.setInsetsAndAlpha(Insets.of(0, 30, 40, 0), 1f /* alpha */, @@ -178,6 +186,10 @@ public class InsetsAnimationControlImplTest { mController.applyChangeInsets(mInsetsState); assertEquals(Insets.of(0, 100, 100, 0), mController.getCurrentInsets()); verify(mMockController).notifyFinished(eq(mController), eq(true /* shown */)); + assertFalse(mController.isReady()); + assertTrue(mController.isFinished()); + assertFalse(mController.isCancelled()); + verify(mMockListener).onFinished(mController); } @Test @@ -188,6 +200,9 @@ public class InsetsAnimationControlImplTest { fail("Expected exception to be thrown"); } catch (IllegalStateException ignored) { } + assertFalse(mController.isReady()); + assertFalse(mController.isFinished()); + assertTrue(mController.isCancelled()); verify(mMockListener).onCancelled(mController); mController.finish(true /* shown */); } diff --git a/core/tests/coretests/src/android/view/InsetsControllerTest.java b/core/tests/coretests/src/android/view/InsetsControllerTest.java index 90a62e7a8751..b449bb00a85d 100644 --- a/core/tests/coretests/src/android/view/InsetsControllerTest.java +++ b/core/tests/coretests/src/android/view/InsetsControllerTest.java @@ -195,6 +195,9 @@ public class InsetsControllerTest { InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { mController.onControlsChanged(createSingletonControl(ITYPE_STATUS_BAR)); + ArgumentCaptor animationController = + ArgumentCaptor.forClass(WindowInsetsAnimationController.class); + WindowInsetsAnimationControlListener mockListener = mock(WindowInsetsAnimationControlListener.class); mController.controlWindowInsetsAnimation(statusBars(), 10 /* durationMs */, @@ -202,9 +205,10 @@ public class InsetsControllerTest { // Ready gets deferred until next predraw mViewRoot.getView().getViewTreeObserver().dispatchOnPreDraw(); - verify(mockListener).onReady(any(), anyInt()); + verify(mockListener).onReady(animationController.capture(), anyInt()); mController.onControlsChanged(new InsetsSourceControl[0]); verify(mockListener).onCancelled(notNull()); + assertTrue(animationController.getValue().isCancelled()); }); } -- cgit v1.2.3-59-g8ed1b