Generate APIs for animator-testing

Also rename AnimationTestRule to AnimatorTestRule.

Test: ./gradlew :animator:integration-tests:testapp:connectedCheck
Change-Id: I7565c0fdba9a9094a56276b7ccd1979b1442205d
diff --git a/animator/animator-testing/api/1.0.0-alpha01.txt b/animator/animator-testing/api/1.0.0-alpha01.txt
new file mode 100644
index 0000000..91745ad
--- /dev/null
+++ b/animator/animator-testing/api/1.0.0-alpha01.txt
@@ -0,0 +1,12 @@
+// Signature format: 3.0
+package androidx.animator {
+
+  public class AnimatorTestRule implements org.junit.rules.TestRule {
+    ctor public AnimatorTestRule();
+    method public void advanceTimeBy(long);
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
+    method public long getCurrentTime();
+  }
+
+}
+
diff --git a/animator/animator-testing/api/current.txt b/animator/animator-testing/api/current.txt
new file mode 100644
index 0000000..91745ad
--- /dev/null
+++ b/animator/animator-testing/api/current.txt
@@ -0,0 +1,12 @@
+// Signature format: 3.0
+package androidx.animator {
+
+  public class AnimatorTestRule implements org.junit.rules.TestRule {
+    ctor public AnimatorTestRule();
+    method public void advanceTimeBy(long);
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
+    method public long getCurrentTime();
+  }
+
+}
+
diff --git a/animator/animator-testing/api/public_plus_experimental_1.0.0-alpha01.txt b/animator/animator-testing/api/public_plus_experimental_1.0.0-alpha01.txt
new file mode 100644
index 0000000..91745ad
--- /dev/null
+++ b/animator/animator-testing/api/public_plus_experimental_1.0.0-alpha01.txt
@@ -0,0 +1,12 @@
+// Signature format: 3.0
+package androidx.animator {
+
+  public class AnimatorTestRule implements org.junit.rules.TestRule {
+    ctor public AnimatorTestRule();
+    method public void advanceTimeBy(long);
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
+    method public long getCurrentTime();
+  }
+
+}
+
diff --git a/animator/animator-testing/api/public_plus_experimental_current.txt b/animator/animator-testing/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..91745ad
--- /dev/null
+++ b/animator/animator-testing/api/public_plus_experimental_current.txt
@@ -0,0 +1,12 @@
+// Signature format: 3.0
+package androidx.animator {
+
+  public class AnimatorTestRule implements org.junit.rules.TestRule {
+    ctor public AnimatorTestRule();
+    method public void advanceTimeBy(long);
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
+    method public long getCurrentTime();
+  }
+
+}
+
diff --git a/animator/animator-testing/api/res-1.0.0-alpha01.txt b/animator/animator-testing/api/res-1.0.0-alpha01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/animator/animator-testing/api/res-1.0.0-alpha01.txt
diff --git a/animator/animator-testing/api/restricted_1.0.0-alpha01.txt b/animator/animator-testing/api/restricted_1.0.0-alpha01.txt
new file mode 100644
index 0000000..91745ad
--- /dev/null
+++ b/animator/animator-testing/api/restricted_1.0.0-alpha01.txt
@@ -0,0 +1,12 @@
+// Signature format: 3.0
+package androidx.animator {
+
+  public class AnimatorTestRule implements org.junit.rules.TestRule {
+    ctor public AnimatorTestRule();
+    method public void advanceTimeBy(long);
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
+    method public long getCurrentTime();
+  }
+
+}
+
diff --git a/animator/animator-testing/api/restricted_current.txt b/animator/animator-testing/api/restricted_current.txt
new file mode 100644
index 0000000..91745ad
--- /dev/null
+++ b/animator/animator-testing/api/restricted_current.txt
@@ -0,0 +1,12 @@
+// Signature format: 3.0
+package androidx.animator {
+
+  public class AnimatorTestRule implements org.junit.rules.TestRule {
+    ctor public AnimatorTestRule();
+    method public void advanceTimeBy(long);
+    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
+    method public long getCurrentTime();
+  }
+
+}
+
diff --git a/animator/animator-testing/src/main/java/androidx/animator/AnimationTestRule.java b/animator/animator-testing/src/main/java/androidx/animator/AnimatorTestRule.java
similarity index 71%
rename from animator/animator-testing/src/main/java/androidx/animator/AnimationTestRule.java
rename to animator/animator-testing/src/main/java/androidx/animator/AnimatorTestRule.java
index 528622a..82b09c5 100644
--- a/animator/animator-testing/src/main/java/androidx/animator/AnimationTestRule.java
+++ b/animator/animator-testing/src/main/java/androidx/animator/AnimatorTestRule.java
@@ -20,28 +20,57 @@
 import android.os.SystemClock;
 import android.util.AndroidRuntimeException;
 
+import androidx.annotation.NonNull;
+
 import org.junit.rules.TestRule;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 
 /**
- * TODO: Mention caveat: 1) setFrameDelay/getFrameDelay will not be sensible.
- * 2) advanceTimeBy/getCurrentTime needs to be called on the same thread as where anims are started
+ * JUnit {@link TestRule} that can be used to run {@link Animator}s without actually waiting for the
+ * duration of the animation. This also helps the test to be written in a deterministic manner.
  *
+ * Create an instance of {@code AnimatorTestRule} and specify it as a {@link org.junit.ClassRule}
+ * of the test class. Use {@link #advanceTimeBy(long)} to advance animators that have been started.
+ * Note that {@link #advanceTimeBy(long)} should be called from the same thread you have used to
+ * start the animator.
+ *
+ * <pre>
+ * {@literal @}SmallTest
+ * {@literal @}RunWith(AndroidJUnit4.class)
+ * public class SampleAnimatorTest {
+ *
+ *     {@literal @}ClassRule
+ *     public static AnimatorTestRule sAnimatorTestRule = new AnimatorTestRule();
+ *
+ *     {@literal @}UiThreadTest
+ *     {@literal @}Test
+ *     public void sample() {
+ *         final ValueAnimator animator = ValueAnimator.ofInt(0, 1000);
+ *         animator.setDuration(1000L);
+ *         assertThat(animator.getAnimatedValue(), is(0));
+ *         animator.start();
+ *         sAnimatorTestRule.advanceTimeBy(500L);
+ *         assertThat(animator.getAnimatedValue(), is(500));
+ *     }
+ * }
+ * </pre>
  */
-public class AnimationTestRule implements TestRule {
+public class AnimatorTestRule implements TestRule {
+
     final AnimationHandler mTestHandler;
     final long mStartTime;
     private long mTotalTimeDelta = 0;
     private final Object mLock = new Object();
 
-    public AnimationTestRule() {
+    public AnimatorTestRule() {
         mStartTime = SystemClock.uptimeMillis();
         mTestHandler = new AnimationHandler(new TestProvider());
     }
 
+    @NonNull
     @Override
-    public Statement apply(final Statement base, Description description) {
+    public Statement apply(@NonNull final Statement base, @NonNull Description description) {
         return new Statement() {
             @Override
             public void evaluate() throws Throwable {
@@ -54,10 +83,12 @@
             }
         };
     }
+
     /**
      * Advances the animation clock by the given amount of delta in milliseconds. This call will
      * produce an animation frame to all the ongoing animations. This method needs to be
      * called on the same thread as {@link Animator#start()}.
+     *
      * @param timeDelta the amount of milliseconds to advance
      */
     public void advanceTimeBy(long timeDelta) {
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorInflaterTest.java b/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorInflaterTest.java
index c1cdf4e..e6cf411 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorInflaterTest.java
+++ b/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorInflaterTest.java
@@ -43,7 +43,7 @@
     private static final float EPSILON = 0.01f;
 
     @ClassRule
-    public static AnimationTestRule sAnimationTestRule = new AnimationTestRule();
+    public static AnimatorTestRule sAnimatorTestRule = new AnimatorTestRule();
 
     @Rule
     public final ExpectedException expectedException = ExpectedException.none();
@@ -60,7 +60,7 @@
         anim.start();
 
         assertTrue(anim.isRunning());
-        sAnimationTestRule.advanceTimeBy(anim.getTotalDuration());
+        sAnimatorTestRule.advanceTimeBy(anim.getTotalDuration());
         assertFalse(anim.isRunning());
 
         float targetX = context.getResources().getDimension(R.dimen.test_animator_target_x);
@@ -89,7 +89,7 @@
             float y = i <= 50 ? 0 : 100;
             assertEquals(i, obj.x, EPSILON);
             assertEquals(y, obj.y, EPSILON);
-            sAnimationTestRule.advanceTimeBy(inc);
+            sAnimatorTestRule.advanceTimeBy(inc);
         }
     }
 
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorSetTest.java b/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorSetTest.java
index 41f84f5..54c6f89 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorSetTest.java
+++ b/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorSetTest.java
@@ -66,7 +66,7 @@
     }
 
     @ClassRule
-    public static AnimationTestRule sTestAnimationHandler = new AnimationTestRule();
+    public static AnimatorTestRule sAnimatorTestRule = new AnimatorTestRule();
 
     @UiThreadTest
     @Test
@@ -112,9 +112,9 @@
 
         set.start();
 
-        sTestAnimationHandler.advanceTimeBy(set.getStartDelay());
+        sAnimatorTestRule.advanceTimeBy(set.getStartDelay());
         for (int i = 0; i < animators.length; i++) {
-            sTestAnimationHandler.advanceTimeBy(animators[i].getTotalDuration());
+            sAnimatorTestRule.advanceTimeBy(animators[i].getTotalDuration());
         }
 
         // All animations should finish by now
@@ -192,7 +192,7 @@
         ArrayList<AnimEvent> animEvents = registerAnimatorsForEvents(
                 new Animator[] {emptySet, set});
         set.start();
-        sTestAnimationHandler.advanceTimeBy(10);
+        sAnimatorTestRule.advanceTimeBy(10);
 
         // Check callback sequence via Animator Events
         assertEquals(animEvents.get(0).mAnim, set);
@@ -216,17 +216,17 @@
         set.playTogether(anim);
 
         set.start();
-        sTestAnimationHandler.advanceTimeBy(300);
+        sAnimatorTestRule.advanceTimeBy(300);
         assertEquals(300L, set.getCurrentPlayTime());
         assertEquals(300f, (float) anim.getAnimatedValue(), EPSILON);
 
         set.pause();
-        sTestAnimationHandler.advanceTimeBy(300);
+        sAnimatorTestRule.advanceTimeBy(300);
         assertEquals(300L, set.getCurrentPlayTime());
         assertEquals(300f, (float) anim.getAnimatedValue(), EPSILON);
 
         set.resume();
-        sTestAnimationHandler.advanceTimeBy(300);
+        sAnimatorTestRule.advanceTimeBy(300);
         assertEquals(600L, set.getCurrentPlayTime());
         assertEquals(600f, (float) anim.getAnimatedValue(), EPSILON);
     }
@@ -238,22 +238,22 @@
         set.playTogether(mAnim1, mAnim2);
 
         set.start();
-        sTestAnimationHandler.advanceTimeBy(0);
+        sAnimatorTestRule.advanceTimeBy(0);
         set.pause();
         assertTrue(set.isPaused());
-        sTestAnimationHandler.advanceTimeBy(5);
+        sAnimatorTestRule.advanceTimeBy(5);
 
         // After 10s, set is still not yet finished.
-        sTestAnimationHandler.advanceTimeBy(10000);
+        sAnimatorTestRule.advanceTimeBy(10000);
         assertTrue(set.isStarted());
         assertTrue(set.isPaused());
         set.resume();
 
-        sTestAnimationHandler.advanceTimeBy(5);
+        sAnimatorTestRule.advanceTimeBy(5);
         assertTrue(set.isStarted());
         assertFalse(set.isPaused());
 
-        sTestAnimationHandler.advanceTimeBy(10000);
+        sAnimatorTestRule.advanceTimeBy(10000);
         assertFalse(set.isStarted());
         assertFalse(set.isPaused());
     }
@@ -268,10 +268,10 @@
         // Verify that pause should have no effect on a not-yet-started animator.
         assertFalse(set.isPaused());
         set.start();
-        sTestAnimationHandler.advanceTimeBy(0);
+        sAnimatorTestRule.advanceTimeBy(0);
         assertTrue(set.isStarted());
 
-        sTestAnimationHandler.advanceTimeBy(set.getTotalDuration());
+        sAnimatorTestRule.advanceTimeBy(set.getTotalDuration());
         assertFalse(set.isStarted());
     }
 
@@ -288,7 +288,7 @@
 
         assertEquals(2000L, set.getTotalDuration());
         set.start();
-        sTestAnimationHandler.advanceTimeBy(1500L);
+        sAnimatorTestRule.advanceTimeBy(1500L);
         assertEquals(1000f, (float) a1.getAnimatedValue(), EPSILON);
         assertEquals(500, (int) a2.getAnimatedValue());
 
@@ -298,11 +298,11 @@
         assertEquals(0, (int) a2.getAnimatedValue());
 
         set.resume();
-        sTestAnimationHandler.advanceTimeBy(250L);
+        sAnimatorTestRule.advanceTimeBy(250L);
         assertEquals(750f, (float) a1.getAnimatedValue(), EPSILON);
         assertEquals(0, (int) a2.getAnimatedValue());
 
-        sTestAnimationHandler.advanceTimeBy(750L);
+        sAnimatorTestRule.advanceTimeBy(750L);
         assertEquals(1000f, (float) a1.getAnimatedValue(), EPSILON);
         assertEquals(500, (int) a2.getAnimatedValue());
     }
@@ -398,22 +398,22 @@
         set.setStartDelay(1000);
 
         set.reverse();
-        sTestAnimationHandler.advanceTimeBy(0);
+        sAnimatorTestRule.advanceTimeBy(0);
         assertTrue(a2.isStarted());
         assertTrue(a2.isRunning());
         assertFalse(a1.isStarted());
 
         // a2 should finish 200ms after reverse started
-        sTestAnimationHandler.advanceTimeBy(200);
+        sAnimatorTestRule.advanceTimeBy(200);
         assertFalse(a2.isStarted());
         // By the time a2 finishes reversing, a1 should not have started.
         assertFalse(a1.isStarted());
 
-        sTestAnimationHandler.advanceTimeBy(100);
+        sAnimatorTestRule.advanceTimeBy(100);
         assertTrue(a1.isStarted());
 
         // a1 finishes within 200ms after starting
-        sTestAnimationHandler.advanceTimeBy(200);
+        sAnimatorTestRule.advanceTimeBy(200);
         assertFalse(a1.isStarted());
         assertFalse(set.isStarted());
 
@@ -460,29 +460,29 @@
         // Sleep for part of the start delay and check that no child animator has started, to verify
         // that the duration scale has been properly scaled.
         set.start();
-        sTestAnimationHandler.advanceTimeBy(0);
+        sAnimatorTestRule.advanceTimeBy(0);
         assertFalse(set.isRunning());
         // start delay of the set should be scaled to 600ms
-        sTestAnimationHandler.advanceTimeBy(550);
+        sAnimatorTestRule.advanceTimeBy(550);
         assertFalse(set.isRunning());
 
-        sTestAnimationHandler.advanceTimeBy(50);
+        sAnimatorTestRule.advanceTimeBy(50);
         assertTrue(set.isRunning());
         assertTrue(a1.isStarted());
         assertFalse(a2.isStarted());
 
         // Verify that a1 finish in 300ms (3x its defined duration)
-        sTestAnimationHandler.advanceTimeBy(300);
+        sAnimatorTestRule.advanceTimeBy(300);
         assertFalse(a1.isStarted());
         assertTrue(a2.isStarted());
         assertFalse(a2.isRunning());
 
         // a2 should finish the delay stage now
-        sTestAnimationHandler.advanceTimeBy(600);
+        sAnimatorTestRule.advanceTimeBy(600);
         assertTrue(a2.isStarted());
         assertTrue(a2.isRunning());
 
-        sTestAnimationHandler.advanceTimeBy(300);
+        sAnimatorTestRule.advanceTimeBy(300);
         assertFalse(a2.isStarted());
         assertFalse(a2.isRunning());
         assertFalse(set.isStarted());
@@ -585,10 +585,10 @@
         assertEquals(280f, (Float) a3.getAnimatedValue(), EPSILON);
 
         set.start();
-        sTestAnimationHandler.advanceTimeBy(0);
+        sAnimatorTestRule.advanceTimeBy(0);
         assertEquals(280, set.getCurrentPlayTime());
         assertTrue(set.isRunning());
-        sTestAnimationHandler.advanceTimeBy(20);
+        sAnimatorTestRule.advanceTimeBy(20);
         assertFalse(set.isStarted());
 
         // Seek after a run to the middle-ish, and verify the first animator is at the end
@@ -775,13 +775,13 @@
         set.setStartDelay(80);
 
         set.start();
-        sTestAnimationHandler.advanceTimeBy(0);
+        sAnimatorTestRule.advanceTimeBy(0);
         assertTrue(set.isStarted());
         assertFalse(set.isRunning());
-        sTestAnimationHandler.advanceTimeBy(80);
+        sAnimatorTestRule.advanceTimeBy(80);
         for (int i = 0; i < 10; i++) {
             assertTrue(animators[i].isRunning());
-            sTestAnimationHandler.advanceTimeBy(100);
+            sAnimatorTestRule.advanceTimeBy(100);
             assertFalse(animators[i].isStarted());
         }
 
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/ObjectAnimatorTest.java b/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/ObjectAnimatorTest.java
index 0006603..ec2a2f6 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/ObjectAnimatorTest.java
+++ b/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/ObjectAnimatorTest.java
@@ -60,7 +60,7 @@
     }
 
     @ClassRule
-    public static AnimationTestRule sAnimationTestRule = new AnimationTestRule();
+    public static AnimatorTestRule sAnimatorTestRule = new AnimatorTestRule();
 
     class AnimObject {
         public int x = 0;
@@ -119,10 +119,10 @@
         assertEquals(1, obj.x);
         assertTrue(objectAnimator.isRunning());
 
-        sAnimationTestRule.advanceTimeBy(1999);
+        sAnimatorTestRule.advanceTimeBy(1999);
         assertTrue(objectAnimator.isRunning());
 
-        sAnimationTestRule.advanceTimeBy(1);
+        sAnimatorTestRule.advanceTimeBy(1);
         assertFalse(objectAnimator.isRunning());
     }
 
@@ -147,7 +147,7 @@
 
         for (long i = 1; i < objAnimator.getDuration(); i++) {
             // Advance time by 1ms at a time
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
             assertEquals((float) i, object.y, EPSILON);
         }
     }
@@ -188,7 +188,7 @@
         for (long i = 0; i <= intAnimator.getDuration(); i++) {
             // Advance time by 1ms at a time
             assertEquals((int) i, 100 - object.x);
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
     }
 
@@ -221,7 +221,7 @@
             // Check that channel is interpolated separately.
             assertEquals(0xFF, Color.alpha(object.color));
             assertEquals(0x80, Color.green(object.color));
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
 
     }
@@ -249,7 +249,7 @@
 
         for (int i = 0; i <= 200; i++) {
             assertEquals(i, 200 - object.x);
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
 
         assertFalse(intAnimator.isStarted());
@@ -279,7 +279,7 @@
 
             // Check that channel is interpolated separately.
             assertEquals(0xFF, Color.alpha(object.color));
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
     }
 
@@ -295,10 +295,10 @@
 
         // Check that the animation didn't fail to start due to null target
         assertTrue(anim.isStarted());
-        sAnimationTestRule.advanceTimeBy(299);
+        sAnimatorTestRule.advanceTimeBy(299);
         assertTrue(anim.isStarted());
 
-        sAnimationTestRule.advanceTimeBy(1);
+        sAnimatorTestRule.advanceTimeBy(1);
         assertFalse(anim.isStarted());
     }
 
@@ -344,7 +344,7 @@
             float fraction = i / 2000f;
             fraction = objAnimator.getInterpolator().getInterpolation(fraction);
             assertEquals(fraction * 2000, object.y);
-            sAnimationTestRule.advanceTimeBy(100);
+            sAnimatorTestRule.advanceTimeBy(100);
         }
 
         assertFalse(objAnimator.isStarted());
@@ -452,7 +452,7 @@
                 assertEquals(x, target.positionX, EPSILON);
                 assertEquals(x, target.positionY, EPSILON);
             }
-            sAnimationTestRule.advanceTimeBy(2);
+            sAnimatorTestRule.advanceTimeBy(2);
         }
     }
 
@@ -495,7 +495,7 @@
                 assertEquals(i - 100, target.positionX);
                 assertEquals(i - 100, target.positionY);
             }
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
 
         assertFalse(anim.isStarted());
@@ -538,7 +538,7 @@
                 assertEquals(i - 100f, target.x, EPSILON);
                 assertEquals(i - 100f, target.y, EPSILON);
             }
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
 
         assertFalse(anim.isStarted());
@@ -581,7 +581,7 @@
             assertEquals(expectedX * 2, target.y, EPSILON);
             assertEquals(0f, target.z, 0.0f);
 
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
     }
 
@@ -622,7 +622,7 @@
                 assertEquals(i - 100, target.x);
                 assertEquals(i - 100, target.y);
             }
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
 
         assertFalse(anim.isStarted());
@@ -665,7 +665,7 @@
             assertEquals(expectedX * 2, target.y);
             assertEquals(0, target.z);
 
-            sAnimationTestRule.advanceTimeBy(1);
+            sAnimatorTestRule.advanceTimeBy(1);
         }
     }
 
@@ -718,7 +718,7 @@
             PointF position = (PointF) anim2.getAnimatedValue();
             assertEquals(distance, Math.sqrt(position.x * position.x + position.y * position.y),
                     EPSILON);
-            sAnimationTestRule.advanceTimeBy(10);
+            sAnimatorTestRule.advanceTimeBy(10);
         }
     }
 
@@ -739,10 +739,10 @@
         objAnimator.start();
         assertTrue(objAnimator.isStarted());
 
-        sAnimationTestRule.advanceTimeBy(199);
+        sAnimatorTestRule.advanceTimeBy(199);
         assertTrue(objAnimator.isStarted());
 
-        sAnimationTestRule.advanceTimeBy(1);
+        sAnimatorTestRule.advanceTimeBy(1);
         assertFalse(objAnimator.isStarted());
     }
 
@@ -763,7 +763,7 @@
 
         anim1.start();
         assertEquals(startValue, target.y, EPSILON);
-        sAnimationTestRule.advanceTimeBy(anim1.getDuration());
+        sAnimatorTestRule.advanceTimeBy(anim1.getDuration());
         assertEquals(endValue, target.y, EPSILON);
     }
 }
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
index 38ae15d..ff1a275 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
@@ -23,7 +23,7 @@
     val ACTIVITY = Version("1.2.0-alpha03")
     val ADS_IDENTIFIER = Version("1.0.0-alpha04")
     val ANIMATOR = Version("1.0.0-alpha01")
-    val ANIMATOR_TESTING = Version("1.1.0-alpha01")
+    val ANIMATOR_TESTING = Version("1.0.0-alpha01")
     val ANNOTATION = Version("1.2.0-alpha01")
     val ANNOTATION_EXPERIMENTAL = Version("1.1.0-alpha01")
     val APPCOMPAT = Version("1.2.0-beta01")
diff --git a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
index 59cd6a0..90d75ce 100644
--- a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
+++ b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
@@ -24,7 +24,7 @@
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 
-import androidx.animator.AnimationTestRule;
+import androidx.animator.AnimatorTestRule;
 import androidx.annotation.NonNull;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.MediumTest;
@@ -59,7 +59,7 @@
     }
 
     @ClassRule
-    public static AnimationTestRule animationRule = new AnimationTestRule();
+    public static AnimatorTestRule sAnimatorTestRule = new AnimatorTestRule();
 
     public PathInterpolatorParameterizedTest(int resId) {
         mResId = resId;
@@ -107,7 +107,7 @@
 
         InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
             avd.start();
-            animationRule.advanceTimeBy(1000);
+            sAnimatorTestRule.advanceTimeBy(1000);
         });
         assertThat(ended.get()).isTrue();
 
diff --git a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java
index dc4863b..c2649a9 100644
--- a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java
+++ b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java
@@ -30,7 +30,7 @@
 import android.util.Xml;
 import android.view.InflateException;
 
-import androidx.animator.AnimationTestRule;
+import androidx.animator.AnimatorTestRule;
 import androidx.annotation.DrawableRes;
 import androidx.annotation.NonNull;
 import androidx.test.annotation.UiThreadTest;
@@ -57,7 +57,7 @@
 public class SeekableAnimatedVectorDrawableTest {
 
     @ClassRule
-    public static AnimationTestRule animationRule = new AnimationTestRule();
+    public static AnimatorTestRule sAnimatorTestRule = new AnimatorTestRule();
 
     @Rule
     public ExpectedException expectedException = ExpectedException.none();
@@ -141,7 +141,7 @@
         assertThat(started.get()).isFalse();
         avd.start();
         assertThat(started.get()).isTrue();
-        animationRule.advanceTimeBy(40L);
+        sAnimatorTestRule.advanceTimeBy(40L);
 
         assertThat(paused.get()).isFalse();
         avd.pause();
@@ -152,7 +152,7 @@
         assertThat(resumed.get()).isTrue();
 
         assertThat(ended.get()).isFalse();
-        animationRule.advanceTimeBy(1000L);
+        sAnimatorTestRule.advanceTimeBy(1000L);
         assertThat(ended.get()).isTrue();
         assertThat(updated.get()).isTrue();
     }
@@ -164,7 +164,7 @@
         avd.registerAnimationCallback(createFailingCallback());
         avd.clearAnimationCallbacks();
         avd.start();
-        animationRule.advanceTimeBy(1000L);
+        sAnimatorTestRule.advanceTimeBy(1000L);
     }
 
     @Test
@@ -176,7 +176,7 @@
         final boolean removed = avd.unregisterAnimationCallback(callback);
         assertThat(removed).isTrue();
         avd.start();
-        animationRule.advanceTimeBy(1000L);
+        sAnimatorTestRule.advanceTimeBy(1000L);
     }
 
     @Test
@@ -223,7 +223,7 @@
         // Now compare the following frames with the 1st frames. Expect some minor difference like
         // Anti-Aliased edges, so the compare is fuzzy.
         for (int i = 0; i < 5; i++) {
-            animationRule.advanceTimeBy(16L);
+            sAnimatorTestRule.advanceTimeBy(16L);
             bitmap.eraseColor(0);
             avd.draw(canvas);
             compareImages(firstFrame, bitmap);
@@ -253,7 +253,7 @@
 
         final ArrayList<Integer> historicalRed = new ArrayList<>();
         for (int i = 0; i < 10; i++) {
-            animationRule.advanceTimeBy(100L);
+            sAnimatorTestRule.advanceTimeBy(100L);
             avd.draw(canvas);
             final int strokeColor = bitmap.getPixel(0, 0);
             assertThat(Color.blue(strokeColor)).isEqualTo(0);
@@ -304,7 +304,7 @@
         avd.start();
         assertThat(avd.isRunning()).isTrue();
         assertThat(avd.isPaused()).isFalse();
-        animationRule.advanceTimeBy(100L);
+        sAnimatorTestRule.advanceTimeBy(100L);
         avd.draw(canvas);
         final int pausedColor = bitmap.getPixel(0, 0);
         assertThat(Color.red(pausedColor)).isLessThan(0xff);
@@ -312,14 +312,14 @@
         avd.pause();
         assertThat(avd.isRunning()).isTrue();
         assertThat(avd.isPaused()).isTrue();
-        animationRule.advanceTimeBy(1000L);
+        sAnimatorTestRule.advanceTimeBy(1000L);
         avd.draw(canvas);
         assertThat(bitmap.getPixel(0, 0)).isEqualTo(pausedColor);
 
         avd.resume();
         assertThat(avd.isRunning()).isTrue();
         assertThat(avd.isPaused()).isFalse();
-        animationRule.advanceTimeBy(100L);
+        sAnimatorTestRule.advanceTimeBy(100L);
         avd.draw(canvas);
         assertThat(Color.red(bitmap.getPixel(0, 0))).isLessThan(Color.red(pausedColor));
     }
@@ -422,7 +422,7 @@
         });
 
         avd.start();
-        animationRule.advanceTimeBy(1000L);
+        sAnimatorTestRule.advanceTimeBy(1000L);
         assertThat(ended.get()).isTrue();
         bitmap.eraseColor(0);
         avd.draw(canvas);