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

Commit 2fcba5d9 authored by Wale Ogunwale's avatar Wale Ogunwale Committed by android-build-merger
Browse files

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

am: 0f876448

Change-Id: Ia10f8954ec3524cd76f0327f8edc0bb04f90915d
parents eaecc439 0f876448
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