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

Commit d4ba6d04 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Reduce creating unnecessary display for unit test

This adds a new annotation SetupWindows to support the same
functionality as UseTestDisplay, but for default display.

This may reduce total test time about 1 min.

Bug: 159102753
Test: atest WmTests

Change-Id: I711ce07ac5e4566e7b188cdb8df7d3cd1c0378e3
parent 0bb9c2bb
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -2415,7 +2415,7 @@ public class ActivityRecordTests extends WindowTestsBase {
        activity.removeImmediately();
    }

    @UseTestDisplay(addWindows = W_ACTIVITY)
    @SetupWindows(addWindows = W_ACTIVITY)
    @Test
    public void testLandscapeSeascapeRotationByApp() {
        final Task task = new TaskBuilder(mSupervisor)
@@ -2448,14 +2448,14 @@ public class ActivityRecordTests extends WindowTestsBase {
        appWindow.removeImmediately();
    }

    @UseTestDisplay(addWindows = W_ACTIVITY)
    @SetupWindows(addWindows = W_ACTIVITY)
    @Test
    public void testLandscapeSeascapeRotationByPolicy() {
        final Task task = new TaskBuilder(mSupervisor)
                .setDisplay(mDisplayContent).setCreateActivity(true).build();
        final ActivityRecord activity = task.getTopNonFinishingActivity();
        // This instance has been spied in {@link TestDisplayContent}.
        final DisplayRotation displayRotation = mDisplayContent.getDisplayRotation();
        spyOn(displayRotation);

        final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
                TYPE_BASE_APPLICATION);
@@ -2572,7 +2572,6 @@ public class ActivityRecordTests extends WindowTestsBase {
        mWm.mDisplayFrozen = false;
    }

    @UseTestDisplay
    @Test
    public void testRespectTopFullscreenOrientation() {
        final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build();
@@ -2595,7 +2594,6 @@ public class ActivityRecordTests extends WindowTestsBase {
        assertEquals(Configuration.ORIENTATION_LANDSCAPE, activityConfig.orientation);
    }

    @UseTestDisplay
    @Test
    public void testReportOrientationChange() {
        final Task task = new TaskBuilder(mSupervisor)
@@ -3119,7 +3117,7 @@ public class ActivityRecordTests extends WindowTestsBase {
        assertFalse(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testImeInsetsFrozenFlag_resetWhenResized() {
        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
@@ -3137,7 +3135,7 @@ public class ActivityRecordTests extends WindowTestsBase {
        assertFalse(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testImeInsetsFrozenFlag_resetWhenNoImeFocusableInActivity() {
        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
@@ -3165,7 +3163,7 @@ public class ActivityRecordTests extends WindowTestsBase {
        assertFalse(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testImeInsetsFrozenFlag_resetWhenReportedToBeImeInputTarget() {
        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
@@ -3202,7 +3200,7 @@ public class ActivityRecordTests extends WindowTestsBase {
        assertEquals(state.getSource(ITYPE_IME).getFrame(), imeSource.getFrame());
    }

    @UseTestDisplay(addWindows = {W_ACTIVITY, W_INPUT_METHOD})
    @SetupWindows(addWindows = { W_ACTIVITY, W_INPUT_METHOD })
    @Test
    public void testImeInsetsFrozenFlag_noDispatchVisibleInsetsWhenAppNotRequest()
            throws RemoteException {
+27 −24
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ import java.util.List;
@RunWith(WindowTestRunner.class)
public class DisplayContentTests extends WindowTestsBase {

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testForAllWindows() {
        final WindowState exitingAppWindow = createWindow(null, TYPE_BASE_APPLICATION,
@@ -203,7 +203,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertForAllWindowsOrder(windows);
    }

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testForAllWindows_WithAppImeTarget() {
        final WindowState imeAppTarget =
@@ -225,7 +225,7 @@ public class DisplayContentTests extends WindowTestsBase {
                mNavBarWindow));
    }

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testForAllWindows_WithChildWindowImeTarget() throws Exception {
        mDisplayContent.setImeLayeringTarget(mChildAppWindowAbove);
@@ -243,7 +243,7 @@ public class DisplayContentTests extends WindowTestsBase {
                mNavBarWindow));
    }

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testForAllWindows_WithStatusBarImeTarget() throws Exception {
        mDisplayContent.setImeLayeringTarget(mStatusBarWindow);
@@ -261,7 +261,7 @@ public class DisplayContentTests extends WindowTestsBase {
                mNavBarWindow));
    }

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testForAllWindows_WithNotificationShadeImeTarget() throws Exception {
        mDisplayContent.setImeLayeringTarget(mNotificationShadeWindow);
@@ -279,7 +279,7 @@ public class DisplayContentTests extends WindowTestsBase {
                mNavBarWindow));
    }

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testForAllWindows_WithInBetweenWindowToken() {
        // This window is set-up to be z-ordered between some windows that go in the same token like
@@ -301,7 +301,7 @@ public class DisplayContentTests extends WindowTestsBase {
                mNavBarWindow));
    }

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testComputeImeTarget() {
        // Verify that an app window can be an ime target.
@@ -321,7 +321,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertEquals(childWin, imeTarget);
    }

    @UseTestDisplay(addAllCommonWindows = true)
    @SetupWindows(addAllCommonWindows = true)
    @Test
    public void testComputeImeTarget_startingWindow() {
        ActivityRecord activity = createActivityRecord(mDisplayContent);
@@ -985,7 +985,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertFalse(isOptionsPanelAtRight(landscapeDisplay.getDisplayId()));
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testInputMethodTargetUpdateWhenSwitchingOnDisplays() {
        final DisplayContent newDisplay = createNewDisplay();
@@ -1020,7 +1020,7 @@ public class DisplayContentTests extends WindowTestsBase {
                mDisplayContent.getImeTarget(IME_TARGET_LAYERING));
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testInputMethodSet_listenOnDisplayAreaConfigurationChanged() {
        spyOn(mAtm);
@@ -1159,7 +1159,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent());
    }

    @UseTestDisplay(addWindows = W_ACTIVITY)
    @SetupWindows(addWindows = W_ACTIVITY)
    @Test
    public void testComputeImeParent_app_notMatchParentBounds() {
        spyOn(mAppWindow.mActivityRecord);
@@ -1178,7 +1178,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent());
    }

    @UseTestDisplay(addWindows = W_ACTIVITY)
    @SetupWindows(addWindows = W_ACTIVITY)
    @Test
    public void testComputeImeParent_inputTargetNotUpdate() throws Exception {
        WindowState app1 = createWindow(null, TYPE_BASE_APPLICATION, "app1");
@@ -1193,7 +1193,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertNull(mDisplayContent.computeImeParent());
    }

    @UseTestDisplay(addWindows = W_ACTIVITY)
    @SetupWindows(addWindows = W_ACTIVITY)
    @Test
    public void testComputeImeParent_updateParentWhenTargetNotUseIme() throws Exception {
        WindowState overlay = createWindow(null, TYPE_APPLICATION_OVERLAY, "overlay");
@@ -1268,7 +1268,7 @@ public class DisplayContentTests extends WindowTestsBase {
                dc.computeImeControlTarget());
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testImeSecureFlagGetUpdatedAfterImeInputTarget() {
        // Verify IME window can get up-to-date secure flag update when the IME input target
@@ -1282,7 +1282,7 @@ public class DisplayContentTests extends WindowTestsBase {
        verify(t).setSecure(eq(mDisplayContent.mInputMethodWindow.mSurfaceControl), eq(true));
    }

    @UseTestDisplay(addWindows = W_ACTIVITY)
    @SetupWindows(addWindows = W_ACTIVITY)
    @Test
    public void testComputeImeControlTarget_notMatchParentBounds() throws Exception {
        spyOn(mAppWindow.mActivityRecord);
@@ -1426,7 +1426,7 @@ public class DisplayContentTests extends WindowTestsBase {
        win.setHasSurface(false);
    }

    @UseTestDisplay(addWindows = { W_ABOVE_ACTIVITY, W_ACTIVITY})
    @SetupWindows(addWindows = { W_ABOVE_ACTIVITY, W_ACTIVITY })
    @Test
    public void testRequestResizeForEmptyFrames() {
        final WindowState win = mChildAppWindowAbove;
@@ -1501,11 +1501,12 @@ public class DisplayContentTests extends WindowTestsBase {
        assertNull(displayContent.getAsyncRotationController());
    }

    @UseTestDisplay(addWindows = { W_ACTIVITY, W_WALLPAPER, W_STATUS_BAR, W_NAVIGATION_BAR,
    @SetupWindows(addWindows = { W_ACTIVITY, W_WALLPAPER, W_STATUS_BAR, W_NAVIGATION_BAR,
            W_INPUT_METHOD, W_NOTIFICATION_SHADE })
    @Test
    public void testApplyTopFixedRotationTransform() {
        final DisplayPolicy displayPolicy = mDisplayContent.getDisplayPolicy();
        spyOn(displayPolicy);
        // Only non-movable (gesture) navigation bar will be animated by fixed rotation animation.
        doReturn(false).when(displayPolicy).navigationBarCanMove();
        displayPolicy.addWindowLw(mStatusBarWindow, mStatusBarWindow.mAttrs);
@@ -1624,6 +1625,8 @@ public class DisplayContentTests extends WindowTestsBase {
        // The display should be rotated after the launch is finished.
        doReturn(false).when(app).isAnimating(anyInt(), anyInt());
        mDisplayContent.mAppTransition.notifyAppTransitionFinishedLocked(app.token);
        mStatusBarWindow.finishSeamlessRotation(t);
        mNavBarWindow.finishSeamlessRotation(t);

        // The fixed rotation should be cleared and the new rotation is applied to display.
        assertFalse(app.hasFixedRotationTransform());
@@ -1655,7 +1658,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertFalse(mDisplayContent.hasTopFixedRotationLaunchingApp());
    }

    @UseTestDisplay(addWindows = W_ACTIVITY)
    @SetupWindows(addWindows = W_ACTIVITY)
    @Test
    public void testRotateSeamlesslyWithFixedRotation() {
        final DisplayRotation displayRotation = mDisplayContent.getDisplayRotation();
@@ -2081,7 +2084,7 @@ public class DisplayContentTests extends WindowTestsBase {
        verifySizes(dc, forcedWidth, forcedHeight, forcedDensity);
    }

    @UseTestDisplay(addWindows = { W_ACTIVITY, W_INPUT_METHOD })
    @SetupWindows(addWindows = { W_ACTIVITY, W_INPUT_METHOD })
    @Test
    public void testComputeImeTarget_shouldNotCheckOutdatedImeTargetLayerWhenRemoved() {
        final WindowState child1 = createWindow(mAppWindow, FIRST_SUB_WINDOW, "child1");
@@ -2104,7 +2107,7 @@ public class DisplayContentTests extends WindowTestsBase {
        verify(child1, never()).needsRelativeLayeringToIme();
    }

    @UseTestDisplay(addWindows = {W_INPUT_METHOD}, addAllCommonWindows = true)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testAttachAndShowImeScreenshotOnTarget() {
        // Preparation: Simulate screen state is on.
@@ -2155,7 +2158,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertNotNull(mDisplayContent.mImeScreenshot);
    }

    @UseTestDisplay(addWindows = {W_INPUT_METHOD}, addAllCommonWindows = true)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testShowImeScreenshot() {
        final Task rootTask = createTask(mDisplayContent);
@@ -2181,7 +2184,7 @@ public class DisplayContentTests extends WindowTestsBase {
        verify(mDisplayContent, never()).showImeScreenshot();
    }

    @UseTestDisplay(addWindows = {W_INPUT_METHOD})
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testShowImeScreenshot_removeCurSnapshotBeforeCreateNext() {
        final Task rootTask = createTask(mDisplayContent);
@@ -2471,7 +2474,7 @@ public class DisplayContentTests extends WindowTestsBase {
                ACTIVITY_TYPE_STANDARD));
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testImeChildWindowFocusWhenImeLayeringTargetChanges() {
        final WindowState imeChildWindow =
@@ -2496,7 +2499,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertNotEquals(imeChildWindow, mDisplayContent.findFocusedWindow());
    }

    @UseTestDisplay(addWindows = W_INPUT_METHOD)
    @SetupWindows(addWindows = W_INPUT_METHOD)
    @Test
    public void testImeMenuDialogFocusWhenImeLayeringTargetChanges() {
        final WindowState imeMenuDialog =
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ import org.junit.runner.RunWith;

@SmallTest
@Presubmit
@WindowTestsBase.UseTestDisplay(
@WindowTestsBase.SetupWindows(
        addWindows = { WindowTestsBase.W_STATUS_BAR, WindowTestsBase.W_NAVIGATION_BAR })
@RunWith(WindowTestRunner.class)
public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {
+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ import java.io.StringWriter;
 */
@SmallTest
@Presubmit
@WindowTestsBase.UseTestDisplay(
@WindowTestsBase.SetupWindows(
        addWindows = { WindowTestsBase.W_STATUS_BAR, WindowTestsBase.W_NAVIGATION_BAR })
@RunWith(WindowTestRunner.class)
public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
+4 −4
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ public class DisplayPolicyTests extends WindowTestsBase {
                dimmingNonImTarget, imeNonDrawNavBar, NAV_BAR_BOTTOM));
    }

    @UseTestDisplay(addWindows = { W_NAVIGATION_BAR })
    @SetupWindows(addWindows = W_NAVIGATION_BAR)
    @Test
    public void testUpdateLightNavigationBarLw() {
        DisplayPolicy displayPolicy = mDisplayContent.getDisplayPolicy();
@@ -204,7 +204,7 @@ public class DisplayPolicyTests extends WindowTestsBase {
                APPEARANCE_LIGHT_NAVIGATION_BARS, opaqueLightNavBar));
    }

    @UseTestDisplay(addWindows = {W_ACTIVITY, W_STATUS_BAR})
    @SetupWindows(addWindows = { W_ACTIVITY, W_STATUS_BAR })
    @Test
    public void testComputeTopFullscreenOpaqueWindow() {
        final WindowManager.LayoutParams attrs = mAppWindow.mAttrs;
@@ -292,7 +292,7 @@ public class DisplayPolicyTests extends WindowTestsBase {
        return win;
    }

    @UseTestDisplay(addWindows = { W_NAVIGATION_BAR, W_INPUT_METHOD })
    @SetupWindows(addWindows = { W_NAVIGATION_BAR, W_INPUT_METHOD })
    @Test
    public void testImeMinimalSourceFrame() {
        final DisplayPolicy displayPolicy = mDisplayContent.getDisplayPolicy();
@@ -328,7 +328,7 @@ public class DisplayPolicyTests extends WindowTestsBase {
        assertTrue(imeSource.getFrame().contains(navBarSource.getFrame()));
    }

    @UseTestDisplay(addWindows = { W_NAVIGATION_BAR })
    @SetupWindows(addWindows = W_NAVIGATION_BAR)
    @Test
    public void testInsetsGivenContentFrame() {
        final DisplayPolicy displayPolicy = mDisplayContent.getDisplayPolicy();
Loading