Reduce use of static variables in window manager unit tests

This was causing test cross-contamination since different test might
expect different states from the variables.

Bug: 37682538
Test: tons of it!
Change-Id: Ie8a1ea400695b6346d7dfa3369b5c44bb467a33d
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 9d6e033..87c8ac6 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -4313,7 +4313,10 @@
                     if (mWaitingForConfig) {
                         mWaitingForConfig = false;
                         mLastFinishedFreezeSource = "config-unchanged";
-                        mRoot.getDisplayContent(displayId).setLayoutNeeded();
+                        final DisplayContent dc = mRoot.getDisplayContent(displayId);
+                        if (dc != null) {
+                            dc.setLayoutNeeded();
+                        }
                         mWindowPlacerLocked.performSurfacePlacement();
                     }
                 }
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java b/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java
index f68e06a..a599427 100644
--- a/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java
@@ -19,7 +19,6 @@
 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 @@
      */
     @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 @@
      */
     @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 @@
     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)
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java
index d206407..dcbedb6 100644
--- a/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java
@@ -48,14 +48,14 @@
                 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 @@
         // 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 @@
         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 @@
                 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 @@
                 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 @@
         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 @@
     }
 
     private WindowTestUtils.TestAppWindowContainerController createAppWindowController() {
-        return createAppWindowController(new WindowTestUtils.TestTaskWindowContainerController());
+        return createAppWindowController(
+                new WindowTestUtils.TestTaskWindowContainerController(this));
     }
 
     private WindowTestUtils.TestAppWindowContainerController createAppWindowController(
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java b/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java
index 7a7ca3f..876008b 100644
--- a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java
@@ -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 @@
     @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 @@
     @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 @@
         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 @@
 
         // 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 @@
     @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);
diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
index 837ce56..e8dc69f 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
@@ -52,74 +52,74 @@
     @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 @@
         // 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 @@
                 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 @@
         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 @@
      */
     @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 @@
         sWm.setNewDisplayOverrideConfiguration(newOverrideConfig, displayId);
 
         // Check that override config is applied.
-        assertEquals(newOverrideConfig, sDisplayContent.getOverrideConfiguration());
+        assertEquals(newOverrideConfig, mDisplayContent.getOverrideConfiguration());
     }
 
     /**
@@ -214,7 +214,7 @@
      */
     @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 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 @@
         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 @@
      */
     @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 @@
         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 @@
         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());
diff --git a/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java
index 61f7f57..d9b99ee 100644
--- a/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java
@@ -42,7 +42,7 @@
     @Test
     public void testRemoveContainer() throws Exception {
         final StackWindowController stackController =
-                createStackControllerOnDisplay(sDisplayContent);
+                createStackControllerOnDisplay(mDisplayContent);
         final WindowTestUtils.TestTaskWindowContainerController taskController =
                 new WindowTestUtils.TestTaskWindowContainerController(stackController);
 
@@ -62,7 +62,7 @@
     @Test
     public void testRemoveContainer_deferRemoval() throws Exception {
         final StackWindowController stackController =
-                createStackControllerOnDisplay(sDisplayContent);
+                createStackControllerOnDisplay(mDisplayContent);
         final WindowTestUtils.TestTaskWindowContainerController taskController =
                 new WindowTestUtils.TestTaskWindowContainerController(stackController);
 
@@ -89,7 +89,7 @@
     public void testReparent() throws Exception {
         // Create first stack on primary display.
         final StackWindowController stack1Controller =
-                createStackControllerOnDisplay(sDisplayContent);
+                createStackControllerOnDisplay(mDisplayContent);
         final TaskStack stack1 = stack1Controller.mContainer;
         final WindowTestUtils.TestTaskWindowContainerController taskController =
                 new WindowTestUtils.TestTaskWindowContainerController(stack1Controller);
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java
index e6975e7..887def7 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java
@@ -22,16 +22,12 @@
 import org.junit.runner.RunWith;
 
 import android.graphics.Rect;
-import android.os.Binder;
-import android.platform.test.annotations.Presubmit;
-import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.Display;
 
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static com.android.server.wm.TaskPositioner.MIN_ASPECT;
 import static com.android.server.wm.WindowManagerService.dipToPixel;
 import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_HEIGHT_IN_DP;
@@ -61,7 +57,7 @@
     @Before
     public void setUp() throws Exception {
         super.setUp();
-        final Display display = sDisplayContent.getDisplay();
+        final Display display = mDisplayContent.getDisplay();
         final DisplayMetrics dm = new DisplayMetrics();
         display.getMetrics(dm);
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java
index c61076d..a23a6b22 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java
@@ -16,28 +16,13 @@
 
 package com.android.server.wm;
 
-import static android.graphics.GraphicBuffer.USAGE_HW_TEXTURE;
-import static android.graphics.GraphicBuffer.USAGE_SW_READ_NEVER;
-import static android.graphics.GraphicBuffer.USAGE_SW_READ_RARELY;
-import static android.graphics.GraphicBuffer.USAGE_SW_WRITE_NEVER;
-import static android.graphics.GraphicBuffer.create;
 import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertNull;
 
-import android.app.ActivityManager.TaskSnapshot;
-import android.content.res.Configuration;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.GraphicBuffer;
-import android.graphics.PixelFormat;
-import android.graphics.Rect;
-import android.os.Debug;
-import android.platform.test.annotations.Presubmit;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java
index 2752340..2b4d9fb 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java
@@ -75,12 +75,12 @@
     @Test
     public void testGetSnapshotMode() throws Exception {
         final WindowState disabledWindow = createWindow(null,
-                FIRST_APPLICATION_WINDOW, sDisplayContent, "disabledWindow");
+                FIRST_APPLICATION_WINDOW, mDisplayContent, "disabledWindow");
         disabledWindow.mAppToken.setDisablePreviewSnapshots(true);
         assertEquals(SNAPSHOT_MODE_APP_THEME,
                 sWm.mTaskSnapshotController.getSnapshotMode(disabledWindow.getTask()));
         final WindowState normalWindow = createWindow(null,
-                FIRST_APPLICATION_WINDOW, sDisplayContent, "normalWindow");
+                FIRST_APPLICATION_WINDOW, mDisplayContent, "normalWindow");
         assertEquals(SNAPSHOT_MODE_REAL,
                 sWm.mTaskSnapshotController.getSnapshotMode(normalWindow.getTask()));
     }
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java
index 82ea2313..5feda41 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java
@@ -51,12 +51,13 @@
     public void setUp() throws Exception {
         super.setUp();
         mPinnedStack = new StackWindowController(PINNED_STACK_ID, null,
-                sDisplayContent.getDisplayId(), true /* onTop */, new Rect(), sWm).mContainer;
+                mDisplayContent.getDisplayId(), true /* onTop */, new Rect(), sWm).mContainer;
 
         // Stack should contain visible app window to be considered visible.
         final Task pinnedTask = createTaskInStack(mPinnedStack, 0 /* userId */);
         assertFalse(mPinnedStack.isVisible());
-        final WindowTestUtils.TestAppWindowToken pinnedApp = new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+        final WindowTestUtils.TestAppWindowToken pinnedApp = new WindowTestUtils.TestAppWindowToken(
+                mDisplayContent);
         pinnedTask.addChild(pinnedApp, 0 /* addPos */);
         assertTrue(mPinnedStack.isVisible());
     }
@@ -69,8 +70,8 @@
     @Test
     public void testStackPositionChildAt() throws Exception {
         // Test that always-on-top stack can't be moved to position other than top.
-        final TaskStack stack1 = createTaskStackOnDisplay(sDisplayContent);
-        final TaskStack stack2 = createTaskStackOnDisplay(sDisplayContent);
+        final TaskStack stack1 = createTaskStackOnDisplay(mDisplayContent);
+        final TaskStack stack2 = createTaskStackOnDisplay(mDisplayContent);
 
         final WindowContainer taskStackContainer = stack1.getParent();
 
@@ -94,7 +95,7 @@
     @Test
     public void testStackPositionBelowPinnedStack() throws Exception {
         // Test that no stack can be above pinned stack.
-        final TaskStack stack1 = createTaskStackOnDisplay(sDisplayContent);
+        final TaskStack stack1 = createTaskStackOnDisplay(mDisplayContent);
 
         final WindowContainer taskStackContainer = stack1.getParent();
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java
index 267e5f7..b846fd0 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java
@@ -45,7 +45,7 @@
 
     @Test
     public void testStackPositionChildAt() throws Exception {
-        final TaskStack stack = createTaskStackOnDisplay(sDisplayContent);
+        final TaskStack stack = createTaskStackOnDisplay(mDisplayContent);
         final Task task1 = createTaskInStack(stack, 0 /* userId */);
         final Task task2 = createTaskInStack(stack, 1 /* userId */);
 
@@ -62,16 +62,16 @@
 
     @Test
     public void testClosingAppDifferentStackOrientation() throws Exception {
-        final TaskStack stack = createTaskStackOnDisplay(sDisplayContent);
+        final TaskStack stack = createTaskStackOnDisplay(mDisplayContent);
         final Task task1 = createTaskInStack(stack, 0 /* userId */);
         WindowTestUtils.TestAppWindowToken appWindowToken1 =
-                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+                new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         task1.addChild(appWindowToken1, 0);
         appWindowToken1.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
 
         final Task task2 = createTaskInStack(stack, 1 /* userId */);
         WindowTestUtils.TestAppWindowToken appWindowToken2 =
-                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+                new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         task2.addChild(appWindowToken2, 0);
         appWindowToken2.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
 
@@ -82,16 +82,16 @@
 
     @Test
     public void testMoveTaskToBackDifferentStackOrientation() throws Exception {
-        final TaskStack stack = createTaskStackOnDisplay(sDisplayContent);
+        final TaskStack stack = createTaskStackOnDisplay(mDisplayContent);
         final Task task1 = createTaskInStack(stack, 0 /* userId */);
         WindowTestUtils.TestAppWindowToken appWindowToken1 =
-                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+                new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         task1.addChild(appWindowToken1, 0);
         appWindowToken1.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
 
         final Task task2 = createTaskInStack(stack, 1 /* userId */);
         WindowTestUtils.TestAppWindowToken appWindowToken2 =
-                new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+                new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         task2.addChild(appWindowToken2, 0);
         appWindowToken2.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
 
@@ -102,17 +102,17 @@
 
     @Test
     public void testStackRemoveImmediately() throws Exception {
-        final TaskStack stack = createTaskStackOnDisplay(sDisplayContent);
+        final TaskStack stack = createTaskStackOnDisplay(mDisplayContent);
         final Task task = createTaskInStack(stack, 0 /* userId */);
         assertEquals(stack, task.mStack);
-        assertTrue(sDisplayContent.mDimLayerController.hasDimLayerUser(stack));
-        assertTrue(sDisplayContent.mDimLayerController.hasDimLayerUser(task));
+        assertTrue(mDisplayContent.mDimLayerController.hasDimLayerUser(stack));
+        assertTrue(mDisplayContent.mDimLayerController.hasDimLayerUser(task));
 
         // Remove stack and check if its child is also removed.
         stack.removeImmediately();
         assertNull(stack.getDisplayContent());
         assertNull(task.mStack);
-        assertFalse(sDisplayContent.mDimLayerController.hasDimLayerUser(stack));
-        assertFalse(sDisplayContent.mDimLayerController.hasDimLayerUser(task));
+        assertFalse(mDisplayContent.mDimLayerController.hasDimLayerUser(stack));
+        assertFalse(mDisplayContent.mDimLayerController.hasDimLayerUser(task));
     }
 }
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
index 98d20a2..1dd9365 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
@@ -41,7 +41,7 @@
     @Test
     public void testRemoveContainer() throws Exception {
         final WindowTestUtils.TestTaskWindowContainerController taskController =
-                new WindowTestUtils.TestTaskWindowContainerController();
+                new WindowTestUtils.TestTaskWindowContainerController(this);
         final WindowTestUtils.TestAppWindowContainerController appController =
                 new WindowTestUtils.TestAppWindowContainerController(taskController);
 
@@ -54,7 +54,7 @@
     @Test
     public void testRemoveContainer_deferRemoval() throws Exception {
         final WindowTestUtils.TestTaskWindowContainerController taskController =
-                new WindowTestUtils.TestTaskWindowContainerController();
+                new WindowTestUtils.TestTaskWindowContainerController(this);
         final WindowTestUtils.TestAppWindowContainerController appController =
                 new WindowTestUtils.TestAppWindowContainerController(taskController);
 
@@ -79,11 +79,11 @@
     @Test
     public void testReparent() throws Exception {
         final StackWindowController stackController1 =
-                createStackControllerOnDisplay(sDisplayContent);
+                createStackControllerOnDisplay(mDisplayContent);
         final WindowTestUtils.TestTaskWindowContainerController taskController =
                 new WindowTestUtils.TestTaskWindowContainerController(stackController1);
         final StackWindowController stackController2 =
-                createStackControllerOnDisplay(sDisplayContent);
+                createStackControllerOnDisplay(mDisplayContent);
         final WindowTestUtils.TestTaskWindowContainerController taskController2 =
                 new WindowTestUtils.TestTaskWindowContainerController(stackController2);
 
@@ -96,7 +96,7 @@
         assertTrue("Should not be able to reparent to the same parent", gotException);
 
         final StackWindowController stackController3 =
-                createStackControllerOnDisplay(sDisplayContent);
+                createStackControllerOnDisplay(mDisplayContent);
         stackController3.setContainer(null);
         gotException = false;
         try {
@@ -117,13 +117,13 @@
     public void testReparent_BetweenDisplays() throws Exception {
         // Create first stack on primary display.
         final StackWindowController stack1Controller =
-                createStackControllerOnDisplay(sDisplayContent);
+                createStackControllerOnDisplay(mDisplayContent);
         final TaskStack stack1 = stack1Controller.mContainer;
         final WindowTestUtils.TestTaskWindowContainerController taskController =
                 new WindowTestUtils.TestTaskWindowContainerController(stack1Controller);
         final WindowTestUtils.TestTask task1 = (WindowTestUtils.TestTask) taskController.mContainer;
         task1.mOnDisplayChangedCalled = false;
-        assertEquals(sDisplayContent, stack1.getDisplayContent());
+        assertEquals(mDisplayContent, stack1.getDisplayContent());
 
         // Create second display and put second stack on it.
         final DisplayContent dc = createNewDisplay();
diff --git a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java
index 9392e8e..be53667 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java
+++ b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java
@@ -23,7 +23,6 @@
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.doAnswer;
 
-import android.content.pm.ActivityInfo;
 import android.os.PowerSaveState;
 import org.mockito.invocation.InvocationOnMock;
 
@@ -199,7 +198,7 @@
         final com.android.server.wm.WindowState window;
         final AppWindowToken atoken;
         synchronized (sWm.mWindowMap) {
-            atoken = WindowTestsBase.sDisplayContent.getAppWindowToken(appToken);
+            atoken = sWm.mRoot.getAppWindowToken(appToken);
             window = WindowTestsBase.createWindow(null, TYPE_APPLICATION_STARTING, atoken,
                     "Starting window");
             atoken.startingWindow = window;
diff --git a/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java b/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
index 0eaf5bc..5a4bb27 100644
--- a/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
@@ -36,8 +36,6 @@
 @RunWith(AndroidJUnit4.class)
 public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
 
-    private WindowManagerService mWm;
-
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -46,7 +44,7 @@
 
     @Test
     public void testFlow() throws Exception {
-        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         sWm.mUnknownAppVisibilityController.notifyLaunched(token);
         sWm.mUnknownAppVisibilityController.notifyAppResumedFinished(token);
         sWm.mUnknownAppVisibilityController.notifyRelayouted(token);
@@ -58,8 +56,8 @@
 
     @Test
     public void testMultiple() throws Exception {
-        final AppWindowToken token1 = new WindowTestUtils.TestAppWindowToken(sDisplayContent);
-        final AppWindowToken token2 = new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+        final AppWindowToken token1 = new WindowTestUtils.TestAppWindowToken(mDisplayContent);
+        final AppWindowToken token2 = new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         sWm.mUnknownAppVisibilityController.notifyLaunched(token1);
         sWm.mUnknownAppVisibilityController.notifyAppResumedFinished(token1);
         sWm.mUnknownAppVisibilityController.notifyLaunched(token2);
@@ -74,7 +72,7 @@
 
     @Test
     public void testClear() throws Exception {
-        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         sWm.mUnknownAppVisibilityController.notifyLaunched(token);
         sWm.mUnknownAppVisibilityController.clear();;
         assertTrue(sWm.mUnknownAppVisibilityController.allResolved());
@@ -82,7 +80,7 @@
 
     @Test
     public void testAppRemoved() throws Exception {
-        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         sWm.mUnknownAppVisibilityController.notifyLaunched(token);
         sWm.mUnknownAppVisibilityController.appRemoved(token);
         assertTrue(sWm.mUnknownAppVisibilityController.allResolved());
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java
index 956735c..f1e15d9 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java
@@ -17,7 +17,6 @@
 package com.android.server.wm;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import android.platform.test.annotations.Presubmit;
 import android.support.test.filters.SmallTest;
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
index a2aa058..8fe4116 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
@@ -96,8 +96,7 @@
 
     @Before
     public void setUp() throws Exception {
-        final Context context = InstrumentationRegistry.getTargetContext();
-        sWm = TestWindowManagerPolicy.getWindowManagerService(context);
+        super.setUp();
 
         // Just any non zero value.
         sWm.mSystemDecorLayer = 10000;
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java
index d5e6b6d..e1f318d 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java
@@ -45,45 +45,45 @@
     @Test
     public void testAssignWindowLayers_ForImeWithNoTarget() throws Exception {
         sWm.mInputMethodTarget = null;
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
 
         // The Ime has an higher base layer than app windows and lower base layer than system
         // windows, so it should be above app windows and below system windows if there isn't an IME
         // target.
-        assertWindowLayerGreaterThan(sImeWindow, sChildAppWindowAbove);
-        assertWindowLayerGreaterThan(sImeWindow, sAppWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sDockedDividerWindow);
-        assertWindowLayerGreaterThan(sNavBarWindow, sImeWindow);
-        assertWindowLayerGreaterThan(sStatusBarWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mChildAppWindowAbove);
+        assertWindowLayerGreaterThan(mImeWindow, mAppWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mDockedDividerWindow);
+        assertWindowLayerGreaterThan(mNavBarWindow, mImeWindow);
+        assertWindowLayerGreaterThan(mStatusBarWindow, mImeWindow);
 
         // And, IME dialogs should always have an higher layer than the IME.
-        assertWindowLayerGreaterThan(sImeDialogWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeDialogWindow, mImeWindow);
     }
 
     @Test
     public void testAssignWindowLayers_ForImeWithAppTarget() throws Exception {
         final WindowState imeAppTarget =
-                createWindow(null, TYPE_BASE_APPLICATION, sDisplayContent, "imeAppTarget");
+                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "imeAppTarget");
         sWm.mInputMethodTarget = imeAppTarget;
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
 
         // Ime should be above all app windows and below system windows if it is targeting an app
         // window.
-        assertWindowLayerGreaterThan(sImeWindow, imeAppTarget);
-        assertWindowLayerGreaterThan(sImeWindow, sChildAppWindowAbove);
-        assertWindowLayerGreaterThan(sImeWindow, sAppWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sDockedDividerWindow);
-        assertWindowLayerGreaterThan(sNavBarWindow, sImeWindow);
-        assertWindowLayerGreaterThan(sStatusBarWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeWindow, imeAppTarget);
+        assertWindowLayerGreaterThan(mImeWindow, mChildAppWindowAbove);
+        assertWindowLayerGreaterThan(mImeWindow, mAppWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mDockedDividerWindow);
+        assertWindowLayerGreaterThan(mNavBarWindow, mImeWindow);
+        assertWindowLayerGreaterThan(mStatusBarWindow, mImeWindow);
 
         // And, IME dialogs should always have an higher layer than the IME.
-        assertWindowLayerGreaterThan(sImeDialogWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeDialogWindow, mImeWindow);
     }
 
     @Test
     public void testAssignWindowLayers_ForImeWithAppTargetWithChildWindows() throws Exception {
         final WindowState imeAppTarget =
-                createWindow(null, TYPE_BASE_APPLICATION, sDisplayContent, "imeAppTarget");
+                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "imeAppTarget");
         final WindowState imeAppTargetChildAboveWindow = createWindow(imeAppTarget,
                 TYPE_APPLICATION_ATTACHED_DIALOG, imeAppTarget.mToken,
                 "imeAppTargetChildAboveWindow");
@@ -92,84 +92,84 @@
                 "imeAppTargetChildBelowWindow");
 
         sWm.mInputMethodTarget = imeAppTarget;
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
 
         // Ime should be above all app windows except for child windows that are z-ordered above it
         // and below system windows if it is targeting an app window.
-        assertWindowLayerGreaterThan(sImeWindow, imeAppTarget);
-        assertWindowLayerGreaterThan(imeAppTargetChildAboveWindow, sImeWindow);
-        assertWindowLayerGreaterThan(sImeWindow, imeAppTargetChildBelowWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sChildAppWindowAbove);
-        assertWindowLayerGreaterThan(sImeWindow, sAppWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sDockedDividerWindow);
-        assertWindowLayerGreaterThan(sNavBarWindow, sImeWindow);
-        assertWindowLayerGreaterThan(sStatusBarWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeWindow, imeAppTarget);
+        assertWindowLayerGreaterThan(imeAppTargetChildAboveWindow, mImeWindow);
+        assertWindowLayerGreaterThan(mImeWindow, imeAppTargetChildBelowWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mChildAppWindowAbove);
+        assertWindowLayerGreaterThan(mImeWindow, mAppWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mDockedDividerWindow);
+        assertWindowLayerGreaterThan(mNavBarWindow, mImeWindow);
+        assertWindowLayerGreaterThan(mStatusBarWindow, mImeWindow);
 
         // And, IME dialogs should always have an higher layer than the IME.
-        assertWindowLayerGreaterThan(sImeDialogWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeDialogWindow, mImeWindow);
     }
 
     @Test
     public void testAssignWindowLayers_ForImeWithAppTargetAndAppAbove() throws Exception {
         final WindowState appBelowImeTarget =
-                createWindow(null, TYPE_BASE_APPLICATION, sDisplayContent, "appBelowImeTarget");
+                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "appBelowImeTarget");
         final WindowState imeAppTarget =
-                createWindow(null, TYPE_BASE_APPLICATION, sDisplayContent, "imeAppTarget");
+                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "imeAppTarget");
         final WindowState appAboveImeTarget =
-                createWindow(null, TYPE_BASE_APPLICATION, sDisplayContent, "appAboveImeTarget");
+                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "appAboveImeTarget");
 
         sWm.mInputMethodTarget = imeAppTarget;
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
 
         // Ime should be above all app windows except for non-fullscreen app window above it and
         // below system windows if it is targeting an app window.
-        assertWindowLayerGreaterThan(sImeWindow, imeAppTarget);
-        assertWindowLayerGreaterThan(sImeWindow, appBelowImeTarget);
-        assertWindowLayerGreaterThan(appAboveImeTarget, sImeWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sChildAppWindowAbove);
-        assertWindowLayerGreaterThan(sImeWindow, sAppWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sDockedDividerWindow);
-        assertWindowLayerGreaterThan(sNavBarWindow, sImeWindow);
-        assertWindowLayerGreaterThan(sStatusBarWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeWindow, imeAppTarget);
+        assertWindowLayerGreaterThan(mImeWindow, appBelowImeTarget);
+        assertWindowLayerGreaterThan(appAboveImeTarget, mImeWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mChildAppWindowAbove);
+        assertWindowLayerGreaterThan(mImeWindow, mAppWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mDockedDividerWindow);
+        assertWindowLayerGreaterThan(mNavBarWindow, mImeWindow);
+        assertWindowLayerGreaterThan(mStatusBarWindow, mImeWindow);
 
         // And, IME dialogs should always have an higher layer than the IME.
-        assertWindowLayerGreaterThan(sImeDialogWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeDialogWindow, mImeWindow);
     }
 
     @Test
     public void testAssignWindowLayers_ForImeNonAppImeTarget() throws Exception {
         final WindowState imeSystemOverlayTarget = createWindow(null, TYPE_SYSTEM_OVERLAY,
-                sDisplayContent, "imeSystemOverlayTarget",
+                mDisplayContent, "imeSystemOverlayTarget",
                 true /* ownerCanAddInternalSystemWindow */);
 
         sWm.mInputMethodTarget = imeSystemOverlayTarget;
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
 
         // The IME target base layer is higher than all window except for the nav bar window, so the
         // IME should be above all windows except for the nav bar.
-        assertWindowLayerGreaterThan(sImeWindow, imeSystemOverlayTarget);
-        assertWindowLayerGreaterThan(sImeWindow, sChildAppWindowAbove);
-        assertWindowLayerGreaterThan(sImeWindow, sAppWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sDockedDividerWindow);
-        assertWindowLayerGreaterThan(sImeWindow, sStatusBarWindow);
-        assertWindowLayerGreaterThan(sNavBarWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeWindow, imeSystemOverlayTarget);
+        assertWindowLayerGreaterThan(mImeWindow, mChildAppWindowAbove);
+        assertWindowLayerGreaterThan(mImeWindow, mAppWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mDockedDividerWindow);
+        assertWindowLayerGreaterThan(mImeWindow, mStatusBarWindow);
+        assertWindowLayerGreaterThan(mNavBarWindow, mImeWindow);
 
         // And, IME dialogs should always have an higher layer than the IME.
-        assertWindowLayerGreaterThan(sImeDialogWindow, sImeWindow);
+        assertWindowLayerGreaterThan(mImeDialogWindow, mImeWindow);
     }
 
     @Test
     public void testStackLayers() throws Exception {
         WindowState pinnedStackWindow = createWindowOnStack(null, PINNED_STACK_ID,
-                TYPE_BASE_APPLICATION, sDisplayContent, "pinnedStackWindow");
+                TYPE_BASE_APPLICATION, mDisplayContent, "pinnedStackWindow");
         WindowState dockedStackWindow = createWindowOnStack(null, DOCKED_STACK_ID,
-                TYPE_BASE_APPLICATION, sDisplayContent, "dockedStackWindow");
+                TYPE_BASE_APPLICATION, mDisplayContent, "dockedStackWindow");
         WindowState assistantStackWindow = createWindowOnStack(null, ASSISTANT_STACK_ID,
-                TYPE_BASE_APPLICATION, sDisplayContent, "assistantStackWindow");
+                TYPE_BASE_APPLICATION, mDisplayContent, "assistantStackWindow");
 
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
 
-        assertWindowLayerGreaterThan(dockedStackWindow, sAppWindow);
+        assertWindowLayerGreaterThan(dockedStackWindow, mAppWindow);
         assertWindowLayerGreaterThan(assistantStackWindow, dockedStackWindow);
         assertWindowLayerGreaterThan(pinnedStackWindow, assistantStackWindow);
     }
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTestUtils.java b/services/tests/servicestests/src/com/android/server/wm/WindowTestUtils.java
index ae3eb52..47ced99 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowTestUtils.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowTestUtils.java
@@ -92,7 +92,7 @@
     public static class TestAppWindowToken extends AppWindowToken {
 
         TestAppWindowToken(DisplayContent dc) {
-            super(WindowTestsBase.sWm, null, false, dc, true /* fillsParent */,
+            super(dc.mService, null, false, dc, true /* fillsParent */,
                     null /* overrideConfig */, null /* bounds */);
         }
 
@@ -137,7 +137,7 @@
         }
 
         TestWindowToken(int type, DisplayContent dc, boolean persistOnEmpty) {
-            super(WindowTestsBase.sWm, mock(IBinder.class), type, persistOnEmpty, dc,
+            super(dc.mService, mock(IBinder.class), type, persistOnEmpty, dc,
                     false /* ownerCanManageAppTokens */);
         }
 
@@ -201,8 +201,8 @@
      */
     public static class TestTaskWindowContainerController extends TaskWindowContainerController {
 
-        TestTaskWindowContainerController() {
-            this(WindowTestsBase.createStackControllerOnDisplay(WindowTestsBase.sDisplayContent));
+        TestTaskWindowContainerController(WindowTestsBase testsBase) {
+            this(testsBase.createStackControllerOnDisplay(testsBase.mDisplayContent));
         }
 
         TestTaskWindowContainerController(StackWindowController stackController) {
@@ -219,7 +219,8 @@
                     }, stackController, 0 /* userId */, null /* bounds */,
                     EMPTY /* overrideConfig*/, RESIZE_MODE_UNRESIZEABLE,
                     false /* supportsPictureInPicture */, false /* homeTask*/, true /* toTop*/,
-                    true /* showForAllUsers */, new ActivityManager.TaskDescription(), WindowTestsBase.sWm);
+                    true /* showForAllUsers */, new ActivityManager.TaskDescription(),
+                    stackController.mService);
         }
 
         @Override
@@ -246,8 +247,8 @@
                     true /* showForAllUsers */, 0 /* configChanges */, false /* voiceInteraction */,
                     false /* launchTaskBehind */, false /* alwaysFocusable */,
                     0 /* targetSdkVersion */, 0 /* rotationAnimationHint */,
-                    0 /* inputDispatchingTimeoutNanos */, WindowTestsBase.sWm, null /* overrideConfig */,
-                    null /* bounds */);
+                    0 /* inputDispatchingTimeoutNanos */, taskController.mService,
+                    null /* overrideConfig */, null /* bounds */);
             mToken = token;
         }
 
@@ -265,8 +266,8 @@
                     controller, overrideConfig, bounds);
         }
 
-        AppWindowToken getAppWindowToken() {
-            return (AppWindowToken) WindowTestsBase.sDisplayContent.getWindowToken(mToken.asBinder());
+        AppWindowToken getAppWindowToken(DisplayContent dc) {
+            return (AppWindowToken) dc.getWindowToken(mToken.asBinder());
         }
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
index 218af73..0167654 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
@@ -16,9 +16,9 @@
 
 package com.android.server.wm;
 
+import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.View.VISIBLE;
 
-import android.app.ActivityManager.TaskDescription;
 import android.graphics.Rect;
 import android.hardware.display.DisplayManagerGlobal;
 import android.view.Display;
@@ -61,85 +61,67 @@
  */
 class WindowTestsBase {
     static WindowManagerService sWm = null;
-    static TestWindowManagerPolicy sPolicy = null;
-    private final static IWindow sIWindow = new TestIWindow();
-    private final static Session sMockSession = mock(Session.class);
+    private static final IWindow sIWindow = new TestIWindow();
+    private static final Session sMockSession = mock(Session.class);
     // The default display is removed in {@link #setUp} and then we iterate over all displays to
     // make sure we don't collide with any existing display. If we run into no other display, the
     // added display should be treated as default. This cannot be the default display
-    private static int sNextDisplayId = Display.DEFAULT_DISPLAY + 1;
+    private static int sNextDisplayId = DEFAULT_DISPLAY + 1;
     private static int sNextStackId = FIRST_DYNAMIC_STACK_ID;
 
     private static boolean sOneTimeSetupDone = false;
-    static DisplayContent sDisplayContent;
-    static DisplayInfo sDisplayInfo = new DisplayInfo();
-    static WindowLayersController sLayersController;
-    static WindowState sWallpaperWindow;
-    static WindowState sImeWindow;
-    static WindowState sImeDialogWindow;
-    static WindowState sStatusBarWindow;
-    static WindowState sDockedDividerWindow;
-    static WindowState sNavBarWindow;
-    static WindowState sAppWindow;
-    static WindowState sChildAppWindowAbove;
-    static WindowState sChildAppWindowBelow;
-    static HashSet<WindowState> sCommonWindows;
+    DisplayContent mDisplayContent;
+    DisplayInfo mDisplayInfo = new DisplayInfo();
+    WindowLayersController mLayersController;
+    WindowState mWallpaperWindow;
+    WindowState mImeWindow;
+    WindowState mImeDialogWindow;
+    WindowState mStatusBarWindow;
+    WindowState mDockedDividerWindow;
+    WindowState mNavBarWindow;
+    WindowState mAppWindow;
+    WindowState mChildAppWindowAbove;
+    WindowState mChildAppWindowBelow;
+    HashSet<WindowState> mCommonWindows;
 
     @Before
     public void setUp() throws Exception {
-        if (sOneTimeSetupDone) {
-            return;
+        if (!sOneTimeSetupDone) {
+            sOneTimeSetupDone = true;
+            MockitoAnnotations.initMocks(this);
         }
-        sOneTimeSetupDone = true;
-        MockitoAnnotations.initMocks(this);
+
         final Context context = InstrumentationRegistry.getTargetContext();
         AttributeCache.init(context);
         sWm = TestWindowManagerPolicy.getWindowManagerService(context);
-        sPolicy = (TestWindowManagerPolicy) sWm.mPolicy;
-        sLayersController = new WindowLayersController(sWm);
+        mLayersController = new WindowLayersController(sWm);
 
-        // Make sure that display ids don't overlap, so there won't be several displays with same
-        // ids among RootWindowContainer children.
-        for (DisplayContent dc : sWm.mRoot.mChildren) {
-            if (dc.getDisplayId() >= sNextDisplayId) {
-                sNextDisplayId = dc.getDisplayId() + 1;
-            }
-
-            // The default display must be preserved as some tests require it to function
-            // (such as policy rotation).
-            if (dc.getDisplayId() != Display.DEFAULT_DISPLAY) {
-                // It is safe to remove these displays as new displays will always be created with
-                // new ids.
-                dc.removeImmediately();
-            }
-        }
-
-        context.getDisplay().getDisplayInfo(sDisplayInfo);
-        sDisplayContent = createNewDisplay();
+        context.getDisplay().getDisplayInfo(mDisplayInfo);
+        mDisplayContent = createNewDisplay();
         sWm.mDisplayEnabled = true;
         sWm.mDisplayReady = true;
 
         // Set-up some common windows.
-        sCommonWindows = new HashSet();
-        sWallpaperWindow = createCommonWindow(null, TYPE_WALLPAPER, "wallpaperWindow");
-        sImeWindow = createCommonWindow(null, TYPE_INPUT_METHOD, "sImeWindow");
-        sWm.mInputMethodWindow = sImeWindow;
-        sImeDialogWindow = createCommonWindow(null, TYPE_INPUT_METHOD_DIALOG, "sImeDialogWindow");
-        sStatusBarWindow = createCommonWindow(null, TYPE_STATUS_BAR, "sStatusBarWindow");
-        sNavBarWindow = createCommonWindow(null, TYPE_NAVIGATION_BAR, "sNavBarWindow");
-        sDockedDividerWindow = createCommonWindow(null, TYPE_DOCK_DIVIDER, "sDockedDividerWindow");
-        sAppWindow = createCommonWindow(null, TYPE_BASE_APPLICATION, "sAppWindow");
-        sChildAppWindowAbove = createCommonWindow(sAppWindow, TYPE_APPLICATION_ATTACHED_DIALOG,
-                "sChildAppWindowAbove");
-        sChildAppWindowBelow = createCommonWindow(sAppWindow, TYPE_APPLICATION_MEDIA_OVERLAY,
-                "sChildAppWindowBelow");
+        mCommonWindows = new HashSet();
+        mWallpaperWindow = createCommonWindow(null, TYPE_WALLPAPER, "wallpaperWindow");
+        mImeWindow = createCommonWindow(null, TYPE_INPUT_METHOD, "mImeWindow");
+        sWm.mInputMethodWindow = mImeWindow;
+        mImeDialogWindow = createCommonWindow(null, TYPE_INPUT_METHOD_DIALOG, "mImeDialogWindow");
+        mStatusBarWindow = createCommonWindow(null, TYPE_STATUS_BAR, "mStatusBarWindow");
+        mNavBarWindow = createCommonWindow(null, TYPE_NAVIGATION_BAR, "mNavBarWindow");
+        mDockedDividerWindow = createCommonWindow(null, TYPE_DOCK_DIVIDER, "mDockedDividerWindow");
+        mAppWindow = createCommonWindow(null, TYPE_BASE_APPLICATION, "mAppWindow");
+        mChildAppWindowAbove = createCommonWindow(mAppWindow, TYPE_APPLICATION_ATTACHED_DIALOG,
+                "mChildAppWindowAbove");
+        mChildAppWindowBelow = createCommonWindow(mAppWindow, TYPE_APPLICATION_MEDIA_OVERLAY,
+                "mChildAppWindowBelow");
     }
 
     @After
     public void tearDown() throws Exception {
         final LinkedList<WindowState> nonCommonWindows = new LinkedList();
         sWm.mRoot.forAllWindows(w -> {
-            if (!sCommonWindows.contains(w)) {
+            if (!mCommonWindows.contains(w)) {
                 nonCommonWindows.addLast(w);
             }
         }, true /* traverseTopToBottom */);
@@ -148,12 +130,13 @@
             nonCommonWindows.pollLast().removeImmediately();
         }
 
+        mDisplayContent.removeImmediately();
         sWm.mInputMethodTarget = null;
     }
 
-    private static WindowState createCommonWindow(WindowState parent, int type, String name) {
+    private WindowState createCommonWindow(WindowState parent, int type, String name) {
         final WindowState win = createWindow(parent, type, name);
-        sCommonWindows.add(win);
+        mCommonWindows.add(win);
         // Prevent common windows from been IMe targets
         win.mAttrs.flags |= FLAG_NOT_FOCUSABLE;
         return win;
@@ -172,7 +155,7 @@
         sWm.mAnimationHandler.runWithScissors(() -> { }, 0);
     }
 
-    private static WindowToken createWindowToken(DisplayContent dc, int stackId, int type) {
+    private WindowToken createWindowToken(DisplayContent dc, int stackId, int type) {
         if (type < FIRST_APPLICATION_WINDOW || type > LAST_APPLICATION_WINDOW) {
             return new WindowTestUtils.TestWindowToken(type, dc);
         }
@@ -186,30 +169,30 @@
         return token;
     }
 
-    static WindowState createWindow(WindowState parent, int type, String name) {
+    WindowState createWindow(WindowState parent, int type, String name) {
         return (parent == null)
-                ? createWindow(parent, type, sDisplayContent, name)
+                ? createWindow(parent, type, mDisplayContent, name)
                 : createWindow(parent, type, parent.mToken, name);
     }
 
-    static WindowState createWindowOnStack(WindowState parent, int stackId, int type,
+    WindowState createWindowOnStack(WindowState parent, int stackId, int type,
             DisplayContent dc, String name) {
         final WindowToken token = createWindowToken(dc, stackId, type);
         return createWindow(parent, type, token, name);
     }
 
     WindowState createAppWindow(Task task, int type, String name) {
-        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(sDisplayContent);
+        final AppWindowToken token = new WindowTestUtils.TestAppWindowToken(mDisplayContent);
         task.addChild(token, 0);
         return createWindow(null, type, token, name);
     }
 
-    static WindowState createWindow(WindowState parent, int type, DisplayContent dc, String name) {
+    WindowState createWindow(WindowState parent, int type, DisplayContent dc, String name) {
         final WindowToken token = createWindowToken(dc, INVALID_STACK_ID, type);
         return createWindow(parent, type, token, name);
     }
 
-    static WindowState createWindow(WindowState parent, int type, DisplayContent dc, String name,
+    WindowState createWindow(WindowState parent, int type, DisplayContent dc, String name,
             boolean ownerCanAddInternalSystemWindow) {
         final WindowToken token = createWindowToken(dc, INVALID_STACK_ID, type);
         return createWindow(parent, type, token, name, ownerCanAddInternalSystemWindow);
@@ -233,23 +216,23 @@
     }
 
     /** Creates a {@link TaskStack} and adds it to the specified {@link DisplayContent}. */
-    static TaskStack createTaskStackOnDisplay(DisplayContent dc) {
+    TaskStack createTaskStackOnDisplay(DisplayContent dc) {
         return createStackControllerOnDisplay(dc).mContainer;
     }
 
-    static StackWindowController createStackControllerOnDisplay(DisplayContent dc) {
+    StackWindowController createStackControllerOnDisplay(DisplayContent dc) {
         final int stackId = ++sNextStackId;
         return createStackControllerOnStackOnDisplay(stackId, dc);
     }
 
-    static StackWindowController createStackControllerOnStackOnDisplay(int stackId,
+    StackWindowController createStackControllerOnStackOnDisplay(int stackId,
             DisplayContent dc) {
         return new StackWindowController(stackId, null, dc.getDisplayId(),
                 true /* onTop */, new Rect(), sWm);
     }
 
     /** Creates a {@link Task} and adds it to the specified {@link TaskStack}. */
-    static Task createTaskInStack(TaskStack stack, int userId) {
+    Task createTaskInStack(TaskStack stack, int userId) {
         return WindowTestUtils.createTaskInStack(sWm, stack, userId);
     }
 
@@ -257,8 +240,8 @@
     DisplayContent createNewDisplay() {
         final int displayId = sNextDisplayId++;
         final Display display = new Display(DisplayManagerGlobal.getInstance(), displayId,
-                sDisplayInfo, DEFAULT_DISPLAY_ADJUSTMENTS);
-        return new DisplayContent(display, sWm, sLayersController, new WallpaperController(sWm));
+                mDisplayInfo, DEFAULT_DISPLAY_ADJUSTMENTS);
+        return new DisplayContent(display, sWm, mLayersController, new WallpaperController(sWm));
     }
 
     /** Creates a {@link com.android.server.wm.WindowTestUtils.TestWindowState} */
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java
index 4f7ad41..692e08b 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java
@@ -47,7 +47,7 @@
     @Test
     public void testAddWindow() throws Exception {
         final WindowTestUtils.TestWindowToken token =
-                new WindowTestUtils.TestWindowToken(0, sDisplayContent);
+                new WindowTestUtils.TestWindowToken(0, mDisplayContent);
 
         assertEquals(0, token.getWindowsCount());
 
@@ -76,7 +76,7 @@
 
     @Test
     public void testChildRemoval() throws Exception {
-        final DisplayContent dc = sDisplayContent;
+        final DisplayContent dc = mDisplayContent;
         final WindowTestUtils.TestWindowToken token = new WindowTestUtils.TestWindowToken(0, dc);
 
         assertEquals(token, dc.getWindowToken(token.token));
@@ -97,7 +97,7 @@
     @Test
     public void testAdjustAnimLayer() throws Exception {
         final WindowTestUtils.TestWindowToken token =
-                new WindowTestUtils.TestWindowToken(0, sDisplayContent);
+                new WindowTestUtils.TestWindowToken(0, mDisplayContent);
         final WindowState window1 = createWindow(null, TYPE_APPLICATION, token, "window1");
         final WindowState window11 = createWindow(window1, FIRST_SUB_WINDOW, token, "window11");
         final WindowState window12 = createWindow(window1, FIRST_SUB_WINDOW, token, "window12");
@@ -109,7 +109,7 @@
 
         // We assign layers once, to get the base values computed by
         // the controller.
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
 
         final int window1StartLayer = window1.mWinAnimator.mAnimLayer;
         final int window11StartLayer = window11.mWinAnimator.mAnimLayer;
@@ -120,7 +120,7 @@
         // Then we set an adjustment, and assign them again, they should
         // be offset.
         int adj = token.adj = 50;
-        sLayersController.assignWindowLayers(sDisplayContent);
+        mLayersController.assignWindowLayers(mDisplayContent);
         final int highestLayer = token.getHighestAnimLayer();
 
         assertEquals(window1StartLayer + adj, window1.mWinAnimator.mAnimLayer);
@@ -138,18 +138,18 @@
     @Test
     public void testTokenRemovalProcess() throws Exception {
         final WindowTestUtils.TestWindowToken token =
-                new WindowTestUtils.TestWindowToken(TYPE_TOAST, sDisplayContent,
+                new WindowTestUtils.TestWindowToken(TYPE_TOAST, mDisplayContent,
                         true /* persistOnEmpty */);
 
         // Verify that the token is on the display
-        assertNotNull(sDisplayContent.getWindowToken(token.token));
+        assertNotNull(mDisplayContent.getWindowToken(token.token));
 
         final WindowState window1 = createWindow(null, TYPE_TOAST, token, "window1");
         final WindowState window2 = createWindow(null, TYPE_TOAST, token, "window2");
 
-        sDisplayContent.removeWindowToken(token.token);
+        mDisplayContent.removeWindowToken(token.token);
         // Verify that the token is no longer mapped on the display
-        assertNull(sDisplayContent.getWindowToken(token.token));
+        assertNull(mDisplayContent.getWindowToken(token.token));
         // Verify that the token is still attached to its parent
         assertNotNull(token.getParent());
         // Verify that the token windows are still around.