summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author George Mount <mount@google.com> 2017-05-16 15:12:06 -0700
committer George Mount <mount@google.com> 2017-05-22 16:54:45 +0000
commit2d2d51adcfeda7bb644e30f9518331da3727cb94 (patch)
tree38ed9afeb1a89abcd9171a3c8bf15f2cc8f1882c
parent305c332c2219878f009aefad4471d87f08359981 (diff)
Attempt to fix broken/flaky FadeTransitionTest
Bug 38349552 This is a blind fix for the test, but it should reduce flakiness by removing the use of Thread.sleep(). Test: ran FadeTransitionTest Change-Id: I3156c354b370c34885dfbfd7ecd1b5908a9dab44
-rw-r--r--core/tests/coretests/src/android/transition/FadeTransitionTest.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/core/tests/coretests/src/android/transition/FadeTransitionTest.java b/core/tests/coretests/src/android/transition/FadeTransitionTest.java
index 7e7e8151cc50..0140a04269b6 100644
--- a/core/tests/coretests/src/android/transition/FadeTransitionTest.java
+++ b/core/tests/coretests/src/android/transition/FadeTransitionTest.java
@@ -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);