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

Commit 7a4047f5 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Migrate to androidx.test.espresso

This CL is a followup of Ia65c4f643961afaa01c2c8d4b271712e574eb45c.

References to Espresso library are migrated to androidx.test.espresso.

Exempt-From-Owner-Approval: Large-scale refactor
Test: Pass all affected tests
  $ atest FrameworksCoreTests:android.animation
  $ atest FrameworksCoreTests:android.hardware.hdmi.HdmiUtilsTest \
          FrameworksCoreTests:android.view.AccessibilityInteractionControllerTest \
          FrameworksCoreTests:android.view.ScaleGestureDetectorTest \
          FrameworksCoreTests:android.widget.EditorCursorTest \
          FrameworksCoreTests:android.widget.SuggestionsPopupWindowTest \
          FrameworksCoreTests:com.android.internal.app.ResolverActivityTest \
          FrameworksCoreTests:com.android.internal.os.KernelCpuThreadReaderEndToEndTest \
          FrameworksCoreTests:com.android.internal.statusbar.NotificationVisibilityTest
Test: Pass all non-flaky presubmit tests in FrameworksCoreTests
  $ tradefed.sh run commandAndExit FrameworksCoreTests \
        --include-annotation android.platform.test.annotations.Presubmit \
        --exclude-annotation androidx.test.filters.FlakyTest
  433 tests pass.
Fixes: 123776176
Fixes: 70384237
Change-Id: Iaaa58a1943b25646f00a57e2fc5e3a5f41da92a3
parent 7343460c
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -36,12 +36,11 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
    frameworks-core-util-lib \
    mockwebserver \
    guava \
    androidx.test.runner \
    androidx.test.espresso.core \
    androidx.test.ext.junit \
    androidx.test.runner \
    androidx.test.rules \
    androidx.test.espresso.core \
    mockito-target-minus-junit4 \
    espresso-core \
    ub-uiautomator \
    platform-test-annotations \
    truth-prebuilt \
+18 −11
Original line number Diff line number Diff line
@@ -16,22 +16,28 @@

package android.animation;

import android.test.ActivityInstrumentationTestCase2;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;

import androidx.test.filters.LargeTest;
import androidx.test.rule.ActivityTestRule;

import com.android.frameworks.coretests.R;

import org.junit.Rule;
import org.junit.Test;

import java.util.HashSet;
import java.util.Set;

@LargeTest
public class AnimatorInflaterTest extends ActivityInstrumentationTestCase2<BasicAnimatorActivity>  {
    Set<Integer> identityHashes = new HashSet<Integer>();
public class AnimatorInflaterTest {
    @Rule
    public final ActivityTestRule<BasicAnimatorActivity> mActivityRule =
            new ActivityTestRule<>(BasicAnimatorActivity.class);

    public AnimatorInflaterTest() {
        super(BasicAnimatorActivity.class);
    }
    private final Set<Integer> mIdentityHashes = new HashSet<>();

    private void assertUnique(Object object) {
        assertUnique(object, "");
@@ -39,15 +45,16 @@ public class AnimatorInflaterTest extends ActivityInstrumentationTestCase2<Basic

    private void assertUnique(Object object, String msg) {
        final int code = System.identityHashCode(object);
        assertTrue("object should be unique " + msg + ", obj:" + object, identityHashes.add(code));

        assertTrue("object should be unique " + msg + ", obj:" + object, mIdentityHashes.add(code));
    }

    @Test
    public void testLoadStateListAnimator() {
        StateListAnimator sla1 = AnimatorInflater.loadStateListAnimator(getActivity(),
        final BasicAnimatorActivity activity = mActivityRule.getActivity();
        StateListAnimator sla1 = AnimatorInflater.loadStateListAnimator(activity,
                R.anim.test_state_anim);
        sla1.setTarget(getActivity().mAnimatingButton);
        StateListAnimator sla2 = AnimatorInflater.loadStateListAnimator(getActivity(),
        sla1.setTarget(activity.mAnimatingButton);
        StateListAnimator sla2 = AnimatorInflater.loadStateListAnimator(activity,
                R.anim.test_state_anim);
        assertNull(sla2.getTarget());
        for (StateListAnimator sla : new StateListAnimator[]{sla1, sla2}) {
+132 −188
Original line number Diff line number Diff line
@@ -16,27 +16,38 @@

package android.animation;

import android.test.ActivityInstrumentationTestCase2;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import android.view.View;

import androidx.test.annotation.UiThreadTest;
import androidx.test.filters.SmallTest;
import androidx.test.rule.ActivityTestRule;

import com.android.frameworks.coretests.R;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

import java.util.ArrayList;

public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<AnimatorSetActivity> {
@SmallTest
public class AnimatorSetActivityTest {

    @Rule
    public final ActivityTestRule<AnimatorSetActivity> mActivityRule =
            new ActivityTestRule<>(AnimatorSetActivity.class);

    private static final long POLL_INTERVAL = 100; // ms
    private AnimatorSetActivity mActivity;
    private ObjectAnimator a1,a2,a3;
    private ValueAnimator a4,a5;

    public AnimatorSetActivityTest() {
        super(AnimatorSetActivity.class);
    }

    static class MyListener implements Animator.AnimatorListener {
        boolean startIsCalled = false;
        boolean endIsCalled = false;
@@ -63,10 +74,9 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        }
    }

    @Override
    @Before
    public void setUp() throws Exception {
        super.setUp();
        mActivity = getActivity();
        mActivity = mActivityRule.getActivity();

        View square1 = mActivity.findViewById(R.id.square1);
        View square2 = mActivity.findViewById(R.id.square2);
@@ -78,7 +88,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        a5 = ValueAnimator.ofFloat(10f, 5f).setDuration(850);
    }

    @Override
    @After
    public void tearDown() throws Exception {
        mActivity = null;
        a1 = null;
@@ -86,10 +96,9 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        a3 = null;
        a4 = null;
        a5 = null;
        super.tearDown();
    }

    @SmallTest
    @Test
    public void testGetChildAnimations() {
        AnimatorSet s1 = new AnimatorSet();
        s1.playTogether(a1, a2, a3);
@@ -129,7 +138,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        }
    }

    @SmallTest
    @Test
    public void testTotalDuration() {
        ArrayList<Animator> list = getAnimatorList();

@@ -192,7 +201,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An

    }

    @SmallTest
    @Test
    public void testGetDuration() {
        AnimatorSet s = new AnimatorSet();
        assertTrue(s.getDuration() < 0);
@@ -205,8 +214,8 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An

    }

    @SmallTest
    @UiThreadTest
    @Test
    public void testSetDuration() {
        AnimatorSet s = getSequentialSet();
        assertTrue(s.getDuration() < 0);
@@ -224,7 +233,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        assertEquals(duration, a5.getDuration());
    }

    @SmallTest
    @Test
    public void testAddListener() throws InterruptedException {
        // Verify that the listener is added to the list of listeners in the AnimatorSet
        // and that newly added listener gets callback for lifecycle events of the animator
@@ -241,13 +250,10 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        assertFalse(listener.endIsCalled);

        try {
            runTestOnUiThread(new Runnable() {
                @Override
                public void run() {
            mActivityRule.runOnUiThread(() -> {
                s.start();
                assertTrue(listener.startIsCalled);
                assertFalse(listener.endIsCalled);
                }
            });
        } catch (Throwable throwable) {
            throwable.printStackTrace();
@@ -258,18 +264,13 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        assertTrue(listener.endIsCalled);
    }

    @SmallTest
    @Test
    public void testRemoveListener() throws Throwable {
        final AnimatorSet s = new AnimatorSet();
        s.playTogether(a1, a2, a3, a4);
        MyListener listener = new MyListener();
        s.addListener(listener);
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                s.start();
            }
        });
        mActivityRule.runOnUiThread(s::start);

        Thread.sleep(s.getTotalDuration() + 100);
        assertTrue(listener.startIsCalled);
@@ -282,18 +283,13 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        listener.startIsCalled = false;
        listener.endIsCalled = false;

        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                s.start();
            }
        });
        mActivityRule.runOnUiThread(s::start);
        Thread.sleep(s.getTotalDuration() + 100);
        assertFalse(listener.startIsCalled);
        assertFalse(listener.endIsCalled);
    }

    @SmallTest
    @Test
    public void testEnd() throws Throwable {
        // End animator set
        final AnimatorSet s = new AnimatorSet();
@@ -301,21 +297,16 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        final MyListener listener = new MyListener();
        s.addListener(listener);
        assertFalse(listener.endIsCalled);
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            s.start();
            assertTrue(s.isStarted());
            assertTrue(listener.startIsCalled);
            assertFalse(listener.endIsCalled);
            }
        });

        Thread.sleep(a2.getTotalDuration());

        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            s.end();
            assertTrue(listener.startIsCalled);
            assertTrue(listener.endIsCalled);
@@ -326,12 +317,10 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
            assertFalse(a2.isStarted());
            assertFalse(a3.isStarted());
            assertFalse(a4.isStarted());
            }
        });

    }

    @SmallTest
    @Test
    public void testStart() throws Throwable {
        final AnimatorSet s = new AnimatorSet();
        ArrayList<Animator> animators = getAnimatorList();
@@ -355,12 +344,9 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
            assertFalse(l.endIsCalled);
        }

        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            s.start();
            assertTrue(l.startIsCalled);
            }
        });

        long timeout = s.getTotalDuration() * 2;
@@ -383,7 +369,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        }
    }

    @SmallTest
    @Test
    public void testCancel() throws Throwable {
        // Check whether cancel would trigger onAnimationCanceled and cancel all the unfinished
        // animations
@@ -411,19 +397,12 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
            assertFalse(l.endIsCalled);
        }

        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                s.start();
            }
        });
        mActivityRule.runOnUiThread(s::start);

        Thread.sleep(a1.getTotalDuration());
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            assertTrue(s.isStarted());
                ArrayList<Integer> runningAnimIds = new ArrayList<Integer>();
            ArrayList<Integer> runningAnimIds = new ArrayList<>();
            for (int i = 0; i < animators.size(); i++) {
                if (animators.get(i).isStarted()) {
                    runningAnimIds.add(i);
@@ -441,12 +420,10 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
                }
                assertTrue(listeners.get(i).endIsCalled);
            }
            }
        });

    }

    @SmallTest
    @Test
    public void testIsRunning() throws Throwable {
        final AnimatorSet s = new AnimatorSet();
        final long startDelay = 500;
@@ -455,12 +432,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        s.setStartDelay(startDelay);
        MyListener listener = new MyListener();
        s.addListener(listener);
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                s.start();
            }
        });
        mActivityRule.runOnUiThread(s::start);

        while (!listener.endIsCalled) {
            boolean passedStartDelay = a1.isStarted() || a2.isStarted() || a3.isStarted() ||
@@ -471,35 +443,29 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        assertFalse(s.isRunning());
    }

    @SmallTest
    @Test
    public void testPauseAndResume() throws Throwable {
        final AnimatorSet set = getSequentialSet();
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            // Calling pause before start should have no effect, per documentation
            set.pause();
            set.start();
            assertFalse(set.isPaused());
            }
        });

        while (!a2.isStarted()) {
            Thread.sleep(50);
        }
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            assertFalse(set.isPaused());
            set.pause();
            assertTrue(set.isPaused());
            set.resume();
            assertFalse(set.isPaused());
            }
        });
    }

    @SmallTest
    @Test
    public void testClone() throws Throwable {
        // Set up an AnimatorSet and two clones, add one listener to each. When the clones animate,
        // listeners of both the clone and the animator being cloned should receive animation
@@ -535,14 +501,11 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An

        // Start the animation, and make the first clone during its run and the second clone once
        // it ends.
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            assertFalse(l1.startIsCalled);
            assertFalse(l1.endIsCalled);

            s1.start();
            }
        });

        // Make the first clone, during the animation's run.
@@ -552,20 +515,12 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        s2.addListener(l2);

        Thread.sleep(POLL_INTERVAL);
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                s1.end();
            }
        });
        mActivityRule.runOnUiThread(s1::end);

        Thread.sleep(POLL_INTERVAL);
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            assertTrue(l1.startIsCalled);
            assertTrue(l1.endIsCalled);
            }
        });
        Thread.sleep(POLL_INTERVAL);

@@ -574,9 +529,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        final MyListener l3 = new MyListener();
        s3.addListener(l3);

        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            // Checking the fields before animations start.
            assertFalse(l2.startIsCalled);
            assertFalse(l2.cancelIsCalled);
@@ -587,13 +540,10 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An

            s2.start();
            s3.start();
            }
        });

        Thread.sleep(POLL_INTERVAL);
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            // Make sure the listeners receive the callbacks
            // At this time only onAnimationStart() should be called.
            assertTrue(l2.startIsCalled);
@@ -605,12 +555,9 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An

            s2.end();
            s3.cancel();
            }
        });
        Thread.sleep(POLL_INTERVAL);
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            // Check that the new listeners for the new animations gets called for the events.
            assertTrue(l2.startIsCalled);
            assertFalse(l2.cancelIsCalled);
@@ -624,9 +571,7 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
            assertTrue(onlyContains(startedAnimators, s1, s2, s3));
            assertTrue(onlyContains(canceledAnimators, s3));
            assertTrue(onlyContains(endedAnimators, s1, s2, s3));
            }
        });

    }

    /**
@@ -663,5 +608,4 @@ public class AnimatorSetActivityTest extends ActivityInstrumentationTestCase2<An
        list.add(a5);
        return list;
    }

}
+14 −14
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ import androidx.test.filters.MediumTest;

import com.android.frameworks.coretests.R;

import org.junit.Test;

import java.util.concurrent.TimeUnit;

/**
@@ -36,7 +38,7 @@ public class AnimatorSetEventsTest extends EventsTest {

    @Override
    public void setUp() throws Exception {
        button = (Button) getActivity().findViewById(R.id.animatingButton);
        button =  mActivityRule.getActivity().findViewById(R.id.animatingButton);
        mAnimator = new AnimatorSet();
        ((AnimatorSet)mAnimator).playSequentially(xAnim, yAnim);
        super.setUp();
@@ -53,14 +55,13 @@ public class AnimatorSetEventsTest extends EventsTest {
     * its children
     */
    @MediumTest
    public void testPlayingCancelDuringChildDelay() throws Exception {
    @Test
    public void testPlayingCancelDuringChildDelay() throws Throwable {
        yAnim.setStartDelay(500);
        final AnimatorSet animSet = new AnimatorSet();
        animSet.playSequentially(xAnim, yAnim);
        mFutureListener = new FutureReleaseListener(mFuture);
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            try {
                Handler handler = new Handler();
                animSet.addListener(mFutureListener);
@@ -70,7 +71,6 @@ public class AnimatorSetEventsTest extends EventsTest {
            } catch (junit.framework.AssertionFailedError e) {
                mFuture.setException(new RuntimeException(e));
            }
            }
        });
        mFuture.get(getTimeout(), TimeUnit.MILLISECONDS);
    }
+40 −44
Original line number Diff line number Diff line
@@ -16,15 +16,24 @@

package android.animation;

import static org.junit.Assert.assertTrue;

import android.os.Handler;
import android.test.ActivityInstrumentationTestCase2;

import androidx.test.filters.SmallTest;
import androidx.test.rule.ActivityTestRule;

import org.junit.Rule;
import org.junit.Test;

import java.util.HashMap;
import java.util.concurrent.TimeUnit;

public class AutoCancelTest extends ActivityInstrumentationTestCase2<BasicAnimatorActivity> {
public class AutoCancelTest {

    @Rule
    public final ActivityTestRule<BasicAnimatorActivity> mActivityRule =
            new ActivityTestRule<>(BasicAnimatorActivity.class);

    boolean mAnimX1Canceled = false;
    boolean mAnimXY1Canceled = false;
@@ -37,10 +46,6 @@ public class AutoCancelTest extends ActivityInstrumentationTestCase2<BasicAnimat

    HashMap<Animator, Boolean> mCanceledMap = new HashMap<Animator, Boolean>();

    public AutoCancelTest() {
        super(BasicAnimatorActivity.class);
    }

    ObjectAnimator setupAnimator(long startDelay, String... properties) {
        ObjectAnimator returnVal;
        if (properties.length == 1) {
@@ -58,8 +63,7 @@ public class AutoCancelTest extends ActivityInstrumentationTestCase2<BasicAnimat
        return returnVal;
    }

    private void setupAnimators(long startDelay, boolean startLater, final FutureWaiter future)
    throws Exception {
    private void setupAnimators(long startDelay, boolean startLater, final FutureWaiter future) {
        // Animators to be auto-canceled
        final ObjectAnimator animX1 = setupAnimator(startDelay, "x");
        final ObjectAnimator animY1 = setupAnimator(startDelay, "y");
@@ -123,65 +127,57 @@ public class AutoCancelTest extends ActivityInstrumentationTestCase2<BasicAnimat
    }

    @SmallTest
    public void testAutoCancel() throws Exception {
    @Test
    public void testAutoCancel() throws Throwable {
        final FutureWaiter future = new FutureWaiter();
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            try {
                setupAnimators(0, false, future);
            } catch (Exception e) {
                future.setException(e);
            }
            }
        });
        assertTrue(future.get(FUTURE_TIMEOUT, TimeUnit.MILLISECONDS));
    }

    @SmallTest
    public void testAutoCancelDelayed() throws Exception {
    @Test
    public void testAutoCancelDelayed() throws Throwable {
        final FutureWaiter future = new FutureWaiter();
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            try {
                setupAnimators(START_DELAY, false, future);
            } catch (Exception e) {
                future.setException(e);
            }
            }
        });
        assertTrue(future.get(FUTURE_TIMEOUT, TimeUnit.MILLISECONDS));
    }

    @SmallTest
    public void testAutoCancelTestLater() throws Exception {
    @Test
    public void testAutoCancelTestLater() throws Throwable {
        final FutureWaiter future = new FutureWaiter();
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            try {
                setupAnimators(0, true, future);
            } catch (Exception e) {
                future.setException(e);
            }
            }
        });
        assertTrue(future.get(FUTURE_TIMEOUT, TimeUnit.MILLISECONDS));
    }

    @SmallTest
    public void testAutoCancelDelayedTestLater() throws Exception {
    @Test
    public void testAutoCancelDelayedTestLater() throws Throwable {
        final FutureWaiter future = new FutureWaiter();
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
        mActivityRule.runOnUiThread(() -> {
            try {
                setupAnimators(START_DELAY, true, future);
            } catch (Exception e) {
                future.setException(e);
            }
            }
        });
        assertTrue(future.get(FUTURE_TIMEOUT, TimeUnit.MILLISECONDS));
    }
Loading