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

Commit 0f876448 authored by Wale Ogunwale's avatar Wale Ogunwale Committed by Android (Google) Code Review
Browse files

Merge "Reduce use of static variables in window manager unit tests" into oc-dev

parents c38e2af0 11cc516a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -4318,7 +4318,10 @@ public class WindowManagerService extends IWindowManager.Stub
                    if (mWaitingForConfig) {
                        mWaitingForConfig = false;
                        mLastFinishedFreezeSource = "config-unchanged";
                        mRoot.getDisplayContent(displayId).setLayoutNeeded();
                        final DisplayContent dc = mRoot.getDisplayContent(displayId);
                        if (dc != null) {
                            dc.setLayoutNeeded();
                        }
                        mWindowPlacerLocked.performSurfacePlacement();
                    }
                }
+8 −9
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.server.wm;
import android.app.ActivityManager;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.Debug;
import android.view.DisplayInfo;
import org.junit.Test;

@@ -53,11 +52,11 @@ public class AppBoundsTests extends WindowTestsBase {
     */
    @Test
    public void testRootConfigurationBounds() throws Exception {
        final DisplayInfo info = sDisplayContent.getDisplayInfo();
        final DisplayInfo info = mDisplayContent.getDisplayInfo();
        info.appWidth = 1024;
        info.appHeight = 768;

        final Configuration config = sWm.computeNewConfiguration(sDisplayContent.getDisplayId());
        final Configuration config = sWm.computeNewConfiguration(mDisplayContent.getDisplayId());
        // The bounds should always be positioned in the top left.
        assertEquals(config.appBounds.left, 0);
        assertEquals(config.appBounds.top, 0);
@@ -116,8 +115,8 @@ public class AppBoundsTests extends WindowTestsBase {
     */
    @Test
    public void testFullScreenFreeFormBounds() throws Exception {
        final Rect fullScreenBounds = new Rect(0, 0, sDisplayInfo.logicalWidth,
                sDisplayInfo.logicalHeight);
        final Rect fullScreenBounds = new Rect(0, 0, mDisplayInfo.logicalWidth,
                mDisplayInfo.logicalHeight);
        testStackBoundsConfiguration(null /*stackId*/, mParentBounds, fullScreenBounds,
                mParentBounds);
    }
@@ -126,16 +125,16 @@ public class AppBoundsTests extends WindowTestsBase {
    private void testStackBoundsConfiguration(Integer stackId, Rect parentBounds, Rect bounds,
            Rect expectedConfigBounds) {
        final StackWindowController stackController = stackId != null ?
                createStackControllerOnStackOnDisplay(stackId, sDisplayContent)
                : createStackControllerOnDisplay(sDisplayContent);
                createStackControllerOnStackOnDisplay(stackId, mDisplayContent)
                : createStackControllerOnDisplay(mDisplayContent);

        final Configuration parentConfig = sDisplayContent.getConfiguration();
        final Configuration parentConfig = mDisplayContent.getConfiguration();
        parentConfig.setAppBounds(parentBounds);

        final Configuration config = new Configuration();
        stackController.adjustConfigurationForBounds(bounds, null /*insetBounds*/,
                new Rect() /*nonDecorBounds*/, new Rect() /*stableBounds*/, false /*overrideWidth*/,
                false /*overrideHeight*/, sDisplayInfo.logicalDensityDpi, config, parentConfig);
                false /*overrideHeight*/, mDisplayInfo.logicalDensityDpi, config, parentConfig);
        // Assert that both expected and actual are null or are equal to each other

        assertTrue((expectedConfigBounds == null && config.appBounds == null)
+14 −13
Original line number Diff line number Diff line
@@ -48,14 +48,14 @@ public class AppWindowContainerControllerTests extends WindowTestsBase {
                createAppWindowController();

        // Assert token was added to display.
        assertNotNull(sDisplayContent.getWindowToken(controller.mToken.asBinder()));
        assertNotNull(mDisplayContent.getWindowToken(controller.mToken.asBinder()));
        // Assert that the container was created and linked.
        assertNotNull(controller.mContainer);

        controller.removeContainer(sDisplayContent.getDisplayId());
        controller.removeContainer(mDisplayContent.getDisplayId());

        // Assert token was remove from display.
        assertNull(sDisplayContent.getWindowToken(controller.mToken.asBinder()));
        assertNull(mDisplayContent.getWindowToken(controller.mToken.asBinder()));
        // Assert that the container was removed.
        assertNull(controller.mContainer);
    }
@@ -68,11 +68,11 @@ public class AppWindowContainerControllerTests extends WindowTestsBase {
        // Assert orientation is unspecified to start.
        assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, controller.getOrientation());

        controller.setOrientation(SCREEN_ORIENTATION_LANDSCAPE, sDisplayContent.getDisplayId(),
        controller.setOrientation(SCREEN_ORIENTATION_LANDSCAPE, mDisplayContent.getDisplayId(),
                EMPTY /* displayConfig */, false /* freezeScreenIfNeeded */);
        assertEquals(SCREEN_ORIENTATION_LANDSCAPE, controller.getOrientation());

        controller.removeContainer(sDisplayContent.getDisplayId());
        controller.removeContainer(mDisplayContent.getDisplayId());
        // Assert orientation is unspecified to after container is removed.
        assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, controller.getOrientation());

@@ -99,7 +99,7 @@ public class AppWindowContainerControllerTests extends WindowTestsBase {
        controller.addStartingWindow(InstrumentationRegistry.getContext().getPackageName(),
                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true);
        waitUntilHandlersIdle();
        final AppWindowToken atoken = controller.getAppWindowToken();
        final AppWindowToken atoken = controller.getAppWindowToken(mDisplayContent);
        assertHasStartingWindow(atoken);
        controller.removeStartingWindow();
        waitUntilHandlersIdle();
@@ -119,8 +119,8 @@ public class AppWindowContainerControllerTests extends WindowTestsBase {
                android.R.style.Theme, null, "Test", 0, 0, 0, 0, controller1.mToken.asBinder(),
                true, true, false, true);
        waitUntilHandlersIdle();
        assertNoStartingWindow(controller1.getAppWindowToken());
        assertHasStartingWindow(controller2.getAppWindowToken());
        assertNoStartingWindow(controller1.getAppWindowToken(mDisplayContent));
        assertHasStartingWindow(controller2.getAppWindowToken(mDisplayContent));
    }

    @Test
@@ -129,7 +129,7 @@ public class AppWindowContainerControllerTests extends WindowTestsBase {
                createAppWindowController();
        final WindowTestUtils.TestAppWindowContainerController controller2 =
                createAppWindowController();
        sPolicy.setRunnableWhenAddingSplashScreen(() -> {
        ((TestWindowManagerPolicy) sWm.mPolicy).setRunnableWhenAddingSplashScreen(() -> {

            // Surprise, ...! Transfer window in the middle of the creation flow.
            controller2.addStartingWindow(InstrumentationRegistry.getContext().getPackageName(),
@@ -139,14 +139,14 @@ public class AppWindowContainerControllerTests extends WindowTestsBase {
        controller1.addStartingWindow(InstrumentationRegistry.getContext().getPackageName(),
                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true);
        waitUntilHandlersIdle();
        assertNoStartingWindow(controller1.getAppWindowToken());
        assertHasStartingWindow(controller2.getAppWindowToken());
        assertNoStartingWindow(controller1.getAppWindowToken(mDisplayContent));
        assertHasStartingWindow(controller2.getAppWindowToken(mDisplayContent));
    }

    @Test
    public void testReparent() throws Exception {
        final StackWindowController stackController =
            createStackControllerOnDisplay(sDisplayContent);
            createStackControllerOnDisplay(mDisplayContent);
        final WindowTestUtils.TestTaskWindowContainerController taskController1 =
                new WindowTestUtils.TestTaskWindowContainerController(stackController);
        final WindowTestUtils.TestAppWindowContainerController appWindowController1 =
@@ -183,7 +183,8 @@ public class AppWindowContainerControllerTests extends WindowTestsBase {
    }

    private WindowTestUtils.TestAppWindowContainerController createAppWindowController() {
        return createAppWindowController(new WindowTestUtils.TestTaskWindowContainerController());
        return createAppWindowController(
                new WindowTestUtils.TestTaskWindowContainerController(this));
    }

    private WindowTestUtils.TestAppWindowContainerController createAppWindowController(
+11 −12
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.server.wm;

import org.junit.Test;
import org.junit.Ignore;
import org.junit.runner.RunWith;

import android.platform.test.annotations.Presubmit;
@@ -52,7 +51,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
    @Test
    public void testAddWindow_Order() throws Exception {
        final WindowTestUtils.TestAppWindowToken token =
                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
                new WindowTestUtils.TestAppWindowToken(mDisplayContent);

        assertEquals(0, token.getWindowsCount());

@@ -80,7 +79,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
    @Test
    public void testFindMainWindow() throws Exception {
        final WindowTestUtils.TestAppWindowToken token =
                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
                new WindowTestUtils.TestAppWindowToken(mDisplayContent);

        assertNull(token.findMainWindow());

@@ -102,10 +101,10 @@ public class AppWindowTokenTests extends WindowTestsBase {
        sWm.mDisplayEnabled = true;

        // Create an app window with token on a display.
        final TaskStack stack = createTaskStackOnDisplay(sDisplayContent);
        final TaskStack stack = createTaskStackOnDisplay(mDisplayContent);
        final Task task = createTaskInStack(stack, 0 /* userId */);
        final WindowTestUtils.TestAppWindowToken appWindowToken =
                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
                new WindowTestUtils.TestAppWindowToken(mDisplayContent);
        task.addChild(appWindowToken, 0);
        final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
                TYPE_BASE_APPLICATION);
@@ -115,17 +114,17 @@ public class AppWindowTokenTests extends WindowTestsBase {

        // Set initial orientation and update.
        appWindowToken.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
        sWm.updateOrientationFromAppTokens(sDisplayContent.getOverrideConfiguration(), null,
                sDisplayContent.getDisplayId());
        assertEquals(SCREEN_ORIENTATION_LANDSCAPE, sDisplayContent.getLastOrientation());
        sWm.updateOrientationFromAppTokens(mDisplayContent.getOverrideConfiguration(), null,
                mDisplayContent.getDisplayId());
        assertEquals(SCREEN_ORIENTATION_LANDSCAPE, mDisplayContent.getLastOrientation());
        appWindow.resizeReported = false;

        // Update the orientation to perform 180 degree rotation and check that resize was reported.
        appWindowToken.setOrientation(SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
        sWm.updateOrientationFromAppTokens(sDisplayContent.getOverrideConfiguration(), null,
                sDisplayContent.getDisplayId());
        sWm.updateOrientationFromAppTokens(mDisplayContent.getOverrideConfiguration(), null,
                mDisplayContent.getDisplayId());
        sWm.mRoot.performSurfacePlacement(false /* recoveringMemory */);
        assertEquals(SCREEN_ORIENTATION_REVERSE_LANDSCAPE, sDisplayContent.getLastOrientation());
        assertEquals(SCREEN_ORIENTATION_REVERSE_LANDSCAPE, mDisplayContent.getLastOrientation());
        assertTrue(appWindow.resizeReported);
        appWindow.removeImmediately();
    }
@@ -170,7 +169,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
    @Test
    public void testGetOrientation() throws Exception {
        final WindowTestUtils.TestAppWindowToken token =
                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
                new WindowTestUtils.TestAppWindowToken(mDisplayContent);
        token.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);

        token.setFillsParent(false);
+81 −81
Original line number Diff line number Diff line
@@ -52,74 +52,74 @@ public class DisplayContentTests extends WindowTestsBase {
    @Test
    public void testForAllWindows() throws Exception {
        final WindowState exitingAppWindow = createWindow(null, TYPE_BASE_APPLICATION,
                sDisplayContent, "exiting app");
                mDisplayContent, "exiting app");
        final AppWindowToken exitingAppToken = exitingAppWindow.mAppToken;
        exitingAppToken.mIsExiting = true;
        exitingAppToken.getTask().mStack.mExitingAppTokens.add(exitingAppToken);

        assertForAllWindowsOrder(Arrays.asList(
                sWallpaperWindow,
                mWallpaperWindow,
                exitingAppWindow,
                sChildAppWindowBelow,
                sAppWindow,
                sChildAppWindowAbove,
                sDockedDividerWindow,
                sStatusBarWindow,
                sNavBarWindow,
                sImeWindow,
                sImeDialogWindow));
                mChildAppWindowBelow,
                mAppWindow,
                mChildAppWindowAbove,
                mDockedDividerWindow,
                mStatusBarWindow,
                mNavBarWindow,
                mImeWindow,
                mImeDialogWindow));
    }

    @Test
    public void testForAllWindows_WithAppImeTarget() throws Exception {
        final WindowState imeAppTarget =
                createWindow(null, TYPE_BASE_APPLICATION, sDisplayContent, "imeAppTarget");
                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "imeAppTarget");

        sWm.mInputMethodTarget = imeAppTarget;

        assertForAllWindowsOrder(Arrays.asList(
                sWallpaperWindow,
                sChildAppWindowBelow,
                sAppWindow,
                sChildAppWindowAbove,
                mWallpaperWindow,
                mChildAppWindowBelow,
                mAppWindow,
                mChildAppWindowAbove,
                imeAppTarget,
                sImeWindow,
                sImeDialogWindow,
                sDockedDividerWindow,
                sStatusBarWindow,
                sNavBarWindow));
                mImeWindow,
                mImeDialogWindow,
                mDockedDividerWindow,
                mStatusBarWindow,
                mNavBarWindow));
    }

    @Test
    public void testForAllWindows_WithChildWindowImeTarget() throws Exception {
        sWm.mInputMethodTarget = sChildAppWindowAbove;
        sWm.mInputMethodTarget = mChildAppWindowAbove;

        assertForAllWindowsOrder(Arrays.asList(
                sWallpaperWindow,
                sChildAppWindowBelow,
                sAppWindow,
                sChildAppWindowAbove,
                sImeWindow,
                sImeDialogWindow,
                sDockedDividerWindow,
                sStatusBarWindow,
                sNavBarWindow));
                mWallpaperWindow,
                mChildAppWindowBelow,
                mAppWindow,
                mChildAppWindowAbove,
                mImeWindow,
                mImeDialogWindow,
                mDockedDividerWindow,
                mStatusBarWindow,
                mNavBarWindow));
    }

    @Test
    public void testForAllWindows_WithStatusBarImeTarget() throws Exception {
        sWm.mInputMethodTarget = sStatusBarWindow;
        sWm.mInputMethodTarget = mStatusBarWindow;

        assertForAllWindowsOrder(Arrays.asList(
                sWallpaperWindow,
                sChildAppWindowBelow,
                sAppWindow,
                sChildAppWindowAbove,
                sDockedDividerWindow,
                sStatusBarWindow,
                sImeWindow,
                sImeDialogWindow,
                sNavBarWindow));
                mWallpaperWindow,
                mChildAppWindowBelow,
                mAppWindow,
                mChildAppWindowAbove,
                mDockedDividerWindow,
                mStatusBarWindow,
                mImeWindow,
                mImeDialogWindow,
                mNavBarWindow));
    }

    @Test
@@ -127,28 +127,28 @@ public class DisplayContentTests extends WindowTestsBase {
        // This window is set-up to be z-ordered between some windows that go in the same token like
        // the nav bar and status bar.
        final WindowState voiceInteractionWindow = createWindow(null, TYPE_VOICE_INTERACTION,
                sDisplayContent, "voiceInteractionWindow");
                mDisplayContent, "voiceInteractionWindow");

        assertForAllWindowsOrder(Arrays.asList(
                sWallpaperWindow,
                sChildAppWindowBelow,
                sAppWindow,
                sChildAppWindowAbove,
                sDockedDividerWindow,
                mWallpaperWindow,
                mChildAppWindowBelow,
                mAppWindow,
                mChildAppWindowAbove,
                mDockedDividerWindow,
                voiceInteractionWindow,
                sStatusBarWindow,
                sNavBarWindow,
                sImeWindow,
                sImeDialogWindow));
                mStatusBarWindow,
                mNavBarWindow,
                mImeWindow,
                mImeDialogWindow));
    }

    @Test
    public void testComputeImeTarget() throws Exception {
        // Verify that an app window can be an ime target.
        final WindowState appWin = createWindow(null, TYPE_APPLICATION, sDisplayContent, "appWin");
        final WindowState appWin = createWindow(null, TYPE_APPLICATION, mDisplayContent, "appWin");
        appWin.setHasSurface(true);
        assertTrue(appWin.canBeImeTarget());
        WindowState imeTarget = sDisplayContent.computeImeTarget(false /* updateImeTarget */);
        WindowState imeTarget = mDisplayContent.computeImeTarget(false /* updateImeTarget */);
        assertEquals(appWin, imeTarget);

        // Verify that an child window can be an ime target.
@@ -156,7 +156,7 @@ public class DisplayContentTests extends WindowTestsBase {
                TYPE_APPLICATION_ATTACHED_DIALOG, "childWin");
        childWin.setHasSurface(true);
        assertTrue(childWin.canBeImeTarget());
        imeTarget = sDisplayContent.computeImeTarget(false /* updateImeTarget */);
        imeTarget = mDisplayContent.computeImeTarget(false /* updateImeTarget */);
        assertEquals(childWin, imeTarget);
    }

@@ -182,12 +182,12 @@ public class DisplayContentTests extends WindowTestsBase {
        assertEquals(dc, token.getDisplayContent());

        // Move stack to first display.
        sDisplayContent.moveStackToDisplay(stack, true /* onTop */);
        assertEquals(sDisplayContent.getDisplayId(), stack.getDisplayContent().getDisplayId());
        assertEquals(sDisplayContent, stack.getParent().getParent());
        assertEquals(sDisplayContent, stack.getDisplayContent());
        assertEquals(sDisplayContent, task.getDisplayContent());
        assertEquals(sDisplayContent, token.getDisplayContent());
        mDisplayContent.moveStackToDisplay(stack, true /* onTop */);
        assertEquals(mDisplayContent.getDisplayId(), stack.getDisplayContent().getDisplayId());
        assertEquals(mDisplayContent, stack.getParent().getParent());
        assertEquals(mDisplayContent, stack.getDisplayContent());
        assertEquals(mDisplayContent, task.getDisplayContent());
        assertEquals(mDisplayContent, token.getDisplayContent());
    }

    /**
@@ -195,8 +195,8 @@ public class DisplayContentTests extends WindowTestsBase {
     */
    @Test
    public void testDisplayOverrideConfigUpdate() throws Exception {
        final int displayId = sDisplayContent.getDisplayId();
        final Configuration currentOverrideConfig = sDisplayContent.getOverrideConfiguration();
        final int displayId = mDisplayContent.getDisplayId();
        final Configuration currentOverrideConfig = mDisplayContent.getOverrideConfiguration();

        // Create new, slightly changed override configuration and apply it to the display.
        final Configuration newOverrideConfig = new Configuration(currentOverrideConfig);
@@ -206,7 +206,7 @@ public class DisplayContentTests extends WindowTestsBase {
        sWm.setNewDisplayOverrideConfiguration(newOverrideConfig, displayId);

        // Check that override config is applied.
        assertEquals(newOverrideConfig, sDisplayContent.getOverrideConfiguration());
        assertEquals(newOverrideConfig, mDisplayContent.getOverrideConfiguration());
    }

    /**
@@ -214,7 +214,7 @@ public class DisplayContentTests extends WindowTestsBase {
     */
    @Test
    public void testDefaultDisplayOverrideConfigUpdate() throws Exception {
        final Configuration currentConfig = sDisplayContent.getConfiguration();
        final Configuration currentConfig = mDisplayContent.getConfiguration();

        // Create new, slightly changed override configuration and apply it to the display.
        final Configuration newOverrideConfig = new Configuration(currentConfig);
@@ -239,7 +239,7 @@ public class DisplayContentTests extends WindowTestsBase {
    public void testFocusedWindowMultipleDisplays() throws Exception {
        // Create a focusable window and check that focus is calcualted correctly
        final WindowState window1 =
                createWindow(null, TYPE_BASE_APPLICATION, sDisplayContent, "window1");
                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "window1");
        assertEquals(window1, sWm.mRoot.computeFocusedWindow());

        // Check that a new display doesn't affect focus
@@ -264,30 +264,30 @@ public class DisplayContentTests extends WindowTestsBase {
        final int baseHeight = 2560;
        final int baseDensity = 300;

        sDisplayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity);
        mDisplayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity);

        final int maxWidth = 300;
        final int resultingHeight = (maxWidth * baseHeight) / baseWidth;
        final int resultingDensity = (maxWidth * baseDensity) / baseWidth;

        sDisplayContent.setMaxUiWidth(maxWidth);
        verifySizes(sDisplayContent, maxWidth, resultingHeight, resultingDensity);
        mDisplayContent.setMaxUiWidth(maxWidth);
        verifySizes(mDisplayContent, maxWidth, resultingHeight, resultingDensity);

        // Assert setting values again does not change;
        sDisplayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity);
        verifySizes(sDisplayContent, maxWidth, resultingHeight, resultingDensity);
        mDisplayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity);
        verifySizes(mDisplayContent, maxWidth, resultingHeight, resultingDensity);

        final int smallerWidth = 200;
        final int smallerHeight = 400;
        final int smallerDensity = 100;

        // Specify smaller dimension, verify that it is honored
        sDisplayContent.updateBaseDisplayMetrics(smallerWidth, smallerHeight, smallerDensity);
        verifySizes(sDisplayContent, smallerWidth, smallerHeight, smallerDensity);
        mDisplayContent.updateBaseDisplayMetrics(smallerWidth, smallerHeight, smallerDensity);
        verifySizes(mDisplayContent, smallerWidth, smallerHeight, smallerDensity);

        // Verify that setting the max width to a greater value than the base width has no effect
        sDisplayContent.setMaxUiWidth(maxWidth);
        verifySizes(sDisplayContent, smallerWidth, smallerHeight, smallerDensity);
        mDisplayContent.setMaxUiWidth(maxWidth);
        verifySizes(mDisplayContent, smallerWidth, smallerHeight, smallerDensity);
    }

    /**
@@ -295,17 +295,17 @@ public class DisplayContentTests extends WindowTestsBase {
     */
    @Test
    public void testPinnedStackLocation() {
        createStackControllerOnStackOnDisplay(PINNED_STACK_ID, sDisplayContent);
        final int initialStackCount = sDisplayContent.getStackCount();
        createStackControllerOnStackOnDisplay(PINNED_STACK_ID, mDisplayContent);
        final int initialStackCount = mDisplayContent.getStackCount();
        // Ensure that the pinned stack was placed at the end
        assertEquals(initialStackCount - 1, sDisplayContent.getStaskPosById(PINNED_STACK_ID));
        assertEquals(initialStackCount - 1, mDisplayContent.getStaskPosById(PINNED_STACK_ID));
        // By default, this should try to create a new stack on top
        createTaskStackOnDisplay(sDisplayContent);
        final int afterStackCount = sDisplayContent.getStackCount();
        createTaskStackOnDisplay(mDisplayContent);
        final int afterStackCount = mDisplayContent.getStackCount();
        // Make sure the stack count has increased
        assertEquals(initialStackCount + 1, afterStackCount);
        // Ensure that the pinned stack is still on top
        assertEquals(afterStackCount - 1, sDisplayContent.getStaskPosById(PINNED_STACK_ID));
        assertEquals(afterStackCount - 1, mDisplayContent.getStaskPosById(PINNED_STACK_ID));
    }

    private static void verifySizes(DisplayContent displayContent, int expectedBaseWidth,
@@ -319,7 +319,7 @@ public class DisplayContentTests extends WindowTestsBase {
        final LinkedList<WindowState> actualWindows = new LinkedList();

        // Test forward traversal.
        sDisplayContent.forAllWindows(actualWindows::addLast, false /* traverseTopToBottom */);
        mDisplayContent.forAllWindows(actualWindows::addLast, false /* traverseTopToBottom */);
        assertEquals(expectedWindows.size(), actualWindows.size());
        for (WindowState w : expectedWindows) {
            assertEquals(w, actualWindows.pollFirst());
@@ -327,7 +327,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertTrue(actualWindows.isEmpty());

        // Test backward traversal.
        sDisplayContent.forAllWindows(actualWindows::addLast, true /* traverseTopToBottom */);
        mDisplayContent.forAllWindows(actualWindows::addLast, true /* traverseTopToBottom */);
        assertEquals(expectedWindows.size(), actualWindows.size());
        for (WindowState w : expectedWindows) {
            assertEquals(w, actualWindows.pollLast());
Loading