Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e011cea authored by Adrian Roos's avatar Adrian Roos
Browse files

De-flake testSystemDrivenInsetsAnimationLoggingListener_onReady

Test: atest InsetsControllerTest#testSystemDrivenInsetsAnimationLoggingListener_onReady
Fixes: 270547415
Change-Id: Ie72d5b5c538faa038a58033887716bdd870f35fa
parent 37ea5f68
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -248,17 +248,22 @@ public class InsetsControllerTest {

    @Test
    public void testSystemDrivenInsetsAnimationLoggingListener_onReady() {
        var loggingListener = mock(WindowInsetsAnimationControlListener.class);

        prepareControls();
        // only the original thread that created view hierarchy can touch its views
        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
            WindowInsetsAnimationControlListener loggingListener =
                    mock(WindowInsetsAnimationControlListener.class);
            mController.setSystemDrivenInsetsAnimationLoggingListener(loggingListener);
            mController.getSourceConsumer(mImeSource).onWindowFocusGained(true);
            // since there is no focused view, forcefully make IME visible.
            mController.show(WindowInsets.Type.ime(), true /* fromIme */, null /* statsToken */);
            verify(loggingListener).onReady(notNull(), anyInt());
            // When using the animation thread, this must not invoke onReady()
            mViewRoot.getView().getViewTreeObserver().dispatchOnPreDraw();
        });
        // Wait for onReady() being dispatched on the animation thread.
        InsetsAnimationThread.get().getThreadHandler().runWithScissors(() -> {}, 500);

        verify(loggingListener).onReady(notNull(), anyInt());
    }

    @Test