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

Commit 5995498a authored by Chilun's avatar Chilun Committed by Wale Ogunwale
Browse files

Mock resolveSecondaryHomeActivity for test

Some devices may not support multi-display and don't have secondary
launcher.
Mock resolveSecondaryHomeActivity to let the test can pass on these
devices.

Bug: 131171158
Test: atest RootActivityContainerTests#testStartHomeOnAllDisplays
Change-Id: I0df9050e26aa6a47d16e0c592ae3a8d02660e75d
parent e1f57593
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -502,6 +502,7 @@ public class RootActivityContainerTests extends ActivityTestsBase {
    @Test
    public void testStartHomeOnAllDisplays() {
        mockResolveHomeActivity();
        mockResolveSecondaryHomeActivity();

        // Create secondary displays.
        final TestActivityDisplay secondDisplay = spy(createNewActivityDisplay());
@@ -817,7 +818,7 @@ public class RootActivityContainerTests extends ActivityTestsBase {
    }

    /**
     * Mock {@link RootActivityContainerTests#resolveHomeActivity} for returning consistent activity
     * Mock {@link RootActivityContainer#resolveHomeActivity} for returning consistent activity
     * info for test cases (the original implementation will resolve from the real package manager).
     */
    private ActivityInfo mockResolveHomeActivity() {
@@ -830,4 +831,20 @@ public class RootActivityContainerTests extends ActivityTestsBase {
                refEq(homeIntent));
        return aInfoDefault;
    }

    /**
     * Mock {@link RootActivityContainer#resolveSecondaryHomeActivity} for returning consistent
     * activity info for test cases (the original implementation will resolve from the real package
     * manager).
     */
    private void mockResolveSecondaryHomeActivity() {
        final Intent secondaryHomeIntent = mService
                .getSecondaryHomeIntent(null /* preferredPackage */);
        final ActivityInfo aInfoSecondary = new ActivityInfo();
        aInfoSecondary.name = "fakeSecondaryHomeActivity";
        aInfoSecondary.applicationInfo = new ApplicationInfo();
        aInfoSecondary.applicationInfo.packageName = "fakeSecondaryHomePackage";
        doReturn(Pair.create(aInfoSecondary, secondaryHomeIntent)).when(mRootActivityContainer)
                .resolveSecondaryHomeActivity(anyInt(), anyInt());
    }
}