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

Commit 78af0424 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Attempt to fix broken/flaky FadeTransitionTest" into oc-dev

parents 1a08d200 2d2d51ad
Loading
Loading
Loading
Loading
+21 −4
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ public class FadeTransitionTest extends ActivityInstrumentationTestCase2<Animato
        TransitionLatch latch = setVisibilityInTransition(fadeOut, R.id.square1, View.INVISIBLE);
        assertTrue(latch.startLatch.await(200, TimeUnit.MILLISECONDS));
        assertEquals(View.VISIBLE, square1.getVisibility());
        Thread.sleep(100);
        waitForAnimation();
        assertFalse(square1.getTransitionAlpha() == 0 || square1.getTransitionAlpha() == 1);
        assertTrue(latch.endLatch.await(400, TimeUnit.MILLISECONDS));
        assertEquals(1.0f, square1.getTransitionAlpha());
@@ -60,7 +60,7 @@ public class FadeTransitionTest extends ActivityInstrumentationTestCase2<Animato
        latch = setVisibilityInTransition(fadeIn, R.id.square1, View.VISIBLE);
        assertTrue(latch.startLatch.await(200, TimeUnit.MILLISECONDS));
        assertEquals(View.VISIBLE, square1.getVisibility());
        Thread.sleep(100);
        waitForAnimation();
        final float transitionAlpha = square1.getTransitionAlpha();
        assertTrue("expecting transitionAlpha to be between 0 and 1. Was " + transitionAlpha,
                transitionAlpha > 0 && transitionAlpha < 1);
@@ -77,7 +77,7 @@ public class FadeTransitionTest extends ActivityInstrumentationTestCase2<Animato
        fadeOut.addListener(fadeOutValueCheck);
        TransitionLatch outLatch = setVisibilityInTransition(fadeOut, R.id.square1, View.INVISIBLE);
        assertTrue(outLatch.startLatch.await(200, TimeUnit.MILLISECONDS));
        Thread.sleep(100);
        waitForAnimation();

        Fade fadeIn = new Fade(Fade.MODE_IN);
        FadeValueCheck fadeInValueCheck = new FadeValueCheck(square1);
@@ -110,7 +110,7 @@ public class FadeTransitionTest extends ActivityInstrumentationTestCase2<Animato
        fadeIn.addListener(fadeInValueCheck);
        TransitionLatch inLatch = setVisibilityInTransition(fadeIn, R.id.square1, View.VISIBLE);
        assertTrue(inLatch.startLatch.await(200, TimeUnit.MILLISECONDS));
        Thread.sleep(100);
        waitForAnimation();

        Fade fadeOut = new Fade(Fade.MODE_OUT);
        FadeValueCheck fadeOutValueCheck = new FadeValueCheck(square1);
@@ -145,6 +145,23 @@ public class FadeTransitionTest extends ActivityInstrumentationTestCase2<Animato
        return latch;
    }

    /**
     * Waits for two animation frames to ensure animation values change.
     */
    private void waitForAnimation() throws InterruptedException {
        final CountDownLatch latch = new CountDownLatch(2);
        mActivity.getWindow().getDecorView().postOnAnimation(new Runnable() {
            @Override
            public void run() {
                latch.countDown();
                if (latch.getCount() > 0) {
                    mActivity.getWindow().getDecorView().postOnAnimation(this);
                }
            }
        });
        assertTrue(latch.await(1, TimeUnit.SECONDS));
    }

    public static class TransitionLatch implements TransitionListener {
        public CountDownLatch startLatch = new CountDownLatch(1);
        public CountDownLatch endLatch = new CountDownLatch(1);