Merge "Merge WindowTestUtils into base class"

This commit is contained in:
TreeHugger Robot
2020-08-10 03:21:11 +00:00
committed by Android (Google) Code Review
17 changed files with 181 additions and 260 deletions

View File

@@ -1506,7 +1506,7 @@ public class ActivityRecordTests extends WindowTestsBase {
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_APPLICATION_STARTING);
params.width = params.height = WindowManager.LayoutParams.MATCH_PARENT;
final WindowTestUtils.TestWindowState w = new WindowTestUtils.TestWindowState(
final TestWindowState w = new TestWindowState(
mAtm.mWindowManager, mock(Session.class), new TestIWindow(), params, mActivity);
mActivity.addWindow(w);

View File

@@ -133,10 +133,10 @@ public class AppTransitionControllerTest extends WindowTestsBase {
// [DisplayContent] -+- [TaskStack1] - [Task1] - [ActivityRecord1] (opening, visible)
// +- [TaskStack2] - [Task2] - [ActivityRecord2] (closing, invisible)
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(stack1);
final ActivityRecord activity1 = createTestActivityRecord(stack1);
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(stack2);
final ActivityRecord activity2 = createTestActivityRecord(stack2);
activity2.setVisible(false);
activity2.mVisibleRequested = false;
@@ -162,13 +162,13 @@ public class AppTransitionControllerTest extends WindowTestsBase {
// [DisplayContent] -+- [TaskStack1] - [Task1] - [ActivityRecord1] (closing, invisible)
// +- [TaskStack2] - [Task2] - [ActivityRecord2] (opening, visible)
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(stack1);
final ActivityRecord activity1 = createTestActivityRecord(stack1);
activity1.setVisible(true);
activity1.mVisibleRequested = true;
activity1.mRequestForceTransition = true;
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(stack2);
final ActivityRecord activity2 = createTestActivityRecord(stack2);
activity2.setVisible(false);
activity2.mVisibleRequested = false;
activity2.mRequestForceTransition = true;
@@ -193,10 +193,10 @@ public class AppTransitionControllerTest extends WindowTestsBase {
@Test
public void testGetAnimationTargets_exitingBeforeTransition() {
// Create another non-empty task so the animation target won't promote to task display area.
WindowTestUtils.createTestActivityRecord(
createTestActivityRecord(
mDisplayContent.getDefaultTaskDisplayArea().getOrCreateRootHomeTask());
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(stack);
final ActivityRecord activity = createTestActivityRecord(stack);
activity.setVisible(false);
activity.mIsExiting = true;
@@ -218,20 +218,20 @@ public class AppTransitionControllerTest extends WindowTestsBase {
// +- [TaskStack2] - [Task2] - [ActivityRecord2] (closing, invisible)
// +- [AppWindow2] (being-replaced)
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(stack1);
final ActivityRecord activity1 = createTestActivityRecord(stack1);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
TYPE_BASE_APPLICATION);
attrs.setTitle("AppWindow1");
final WindowTestUtils.TestWindowState appWindow1 = createWindowState(attrs, activity1);
final TestWindowState appWindow1 = createWindowState(attrs, activity1);
appWindow1.mWillReplaceWindow = true;
activity1.addWindow(appWindow1);
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(stack2);
final ActivityRecord activity2 = createTestActivityRecord(stack2);
activity2.setVisible(false);
activity2.mVisibleRequested = false;
attrs.setTitle("AppWindow2");
final WindowTestUtils.TestWindowState appWindow2 = createWindowState(attrs, activity2);
final TestWindowState appWindow2 = createWindowState(attrs, activity2);
appWindow2.mWillReplaceWindow = true;
activity2.addWindow(appWindow2);
@@ -262,21 +262,17 @@ public class AppTransitionControllerTest extends WindowTestsBase {
// +- [ActivityRecord4] (invisible)
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task1);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
activity1.setVisible(false);
activity1.mVisibleRequested = true;
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task1);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task1);
activity2.setVisible(false);
activity2.mVisibleRequested = false;
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
final Task task2 = createTaskInStack(stack2, 0 /* userId */);
final ActivityRecord activity3 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task2);
final ActivityRecord activity4 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task2);
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task2);
final ActivityRecord activity4 = createActivityRecordInTask(mDisplayContent, task2);
activity4.setVisible(false);
activity4.mVisibleRequested = false;
@@ -303,12 +299,10 @@ public class AppTransitionControllerTest extends WindowTestsBase {
// +- [ActivityRecord2] (closing, visible)
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task);
activity1.setVisible(false);
activity1.mVisibleRequested = true;
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task);
final ArraySet<ActivityRecord> opening = new ArraySet<>();
opening.add(activity1);
@@ -337,22 +331,18 @@ public class AppTransitionControllerTest extends WindowTestsBase {
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task1);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
activity1.setVisible(false);
activity1.mVisibleRequested = true;
activity1.setOccludesParent(false);
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task1);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task1);
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
final Task task2 = createTaskInStack(stack2, 0 /* userId */);
final ActivityRecord activity3 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task2);
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task2);
activity3.setOccludesParent(false);
final ActivityRecord activity4 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task2);
final ActivityRecord activity4 = createActivityRecordInTask(mDisplayContent, task2);
final ArraySet<ActivityRecord> opening = new ArraySet<>();
opening.add(activity1);
@@ -381,24 +371,20 @@ public class AppTransitionControllerTest extends WindowTestsBase {
final Task stack1 = createTaskStackOnDisplay(mDisplayContent);
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task1);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
activity1.setVisible(false);
activity1.mVisibleRequested = true;
activity1.setOccludesParent(false);
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task1);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task1);
activity2.setVisible(false);
activity2.mVisibleRequested = true;
final Task stack2 = createTaskStackOnDisplay(mDisplayContent);
final Task task2 = createTaskInStack(stack2, 0 /* userId */);
final ActivityRecord activity3 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task2);
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task2);
activity3.setOccludesParent(false);
final ActivityRecord activity4 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task2);
final ActivityRecord activity4 = createActivityRecordInTask(mDisplayContent, task2);
final ArraySet<ActivityRecord> opening = new ArraySet<>();
opening.add(activity1);
@@ -425,13 +411,11 @@ public class AppTransitionControllerTest extends WindowTestsBase {
// +- [Task2] - [ActivityRecord2] (closing, visible)
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final Task task1 = createTaskInStack(stack, 0 /* userId */);
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task1);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
activity1.setVisible(false);
activity1.mVisibleRequested = true;
final Task task2 = createTaskInStack(stack, 0 /* userId */);
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(
mDisplayContent, task2);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task2);
final ArraySet<ActivityRecord> opening = new ArraySet<>();
opening.add(activity1);

View File

@@ -151,8 +151,7 @@ public class AppTransitionTests extends WindowTestsBase {
final Task stack1 = createTaskStackOnDisplay(dc1);
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
final ActivityRecord activity1 =
WindowTestUtils.createTestActivityRecord(dc1);
final ActivityRecord activity1 = createTestActivityRecord(dc1);
task1.addChild(activity1, 0);
// Simulate same app is during opening / closing transition set stage.

View File

@@ -92,7 +92,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
public void setUp() throws Exception {
mStack = createTaskStackOnDisplay(mDisplayContent);
mTask = createTaskInStack(mStack, 0 /* userId */);
mActivity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
mActivity = createTestActivityRecord(mDisplayContent);
mTask.addChild(mActivity, 0);
}
@@ -165,7 +165,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
TYPE_BASE_APPLICATION);
attrs.setTitle("AppWindow");
final WindowTestUtils.TestWindowState appWindow = createWindowState(attrs, mActivity);
final TestWindowState appWindow = createWindowState(attrs, mActivity);
mActivity.addWindow(appWindow);
// Set initial orientation and update.
@@ -198,7 +198,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(
TYPE_BASE_APPLICATION);
attrs.setTitle("RotationByPolicy");
final WindowTestUtils.TestWindowState appWindow = createWindowState(attrs, mActivity);
final TestWindowState appWindow = createWindowState(attrs, mActivity);
mActivity.addWindow(appWindow);
// Set initial orientation and update.
@@ -244,7 +244,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
TYPE_BASE_APPLICATION);
attrs.flags |= FLAG_SHOW_WHEN_LOCKED | FLAG_DISMISS_KEYGUARD;
attrs.setTitle("AppWindow");
final WindowTestUtils.TestWindowState appWindow = createWindowState(attrs, mActivity);
final TestWindowState appWindow = createWindowState(attrs, mActivity);
// Add window with show when locked flag
mActivity.addWindow(appWindow);
@@ -307,7 +307,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
assertEquals(Configuration.ORIENTATION_PORTRAIT, displayConfig.orientation);
assertEquals(Configuration.ORIENTATION_PORTRAIT, activityConfig.orientation);
final ActivityRecord topActivity = WindowTestUtils.createTestActivityRecord(mStack);
final ActivityRecord topActivity = createTestActivityRecord(mStack);
topActivity.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
assertEquals(Configuration.ORIENTATION_LANDSCAPE, displayConfig.orientation);
@@ -490,8 +490,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
}
private ActivityRecord createTestActivityRecordForGivenTask(Task task) {
final ActivityRecord activity =
WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
task.addChild(activity, 0);
waitUntilHandlersIdle();
return activity;
@@ -562,7 +561,7 @@ public class AppWindowTokenTests extends WindowTestsBase {
public void testHasStartingWindow() {
final WindowManager.LayoutParams attrs =
new WindowManager.LayoutParams(TYPE_APPLICATION_STARTING);
final WindowTestUtils.TestWindowState startingWindow = createWindowState(attrs, mActivity);
final TestWindowState startingWindow = createWindowState(attrs, mActivity);
mActivity.startingDisplayed = true;
mActivity.addWindow(startingWindow);
assertTrue("Starting window should be present", mActivity.hasStartingWindow());

View File

@@ -326,7 +326,7 @@ public class DisplayContentTests extends WindowTestsBase {
assertEquals(dc, stack.getDisplayContent());
final Task task = createTaskInStack(stack, 0 /* userId */);
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(dc);
final ActivityRecord activity = createTestActivityRecord(dc);
task.addChild(activity, 0);
assertEquals(dc, task.getDisplayContent());
assertEquals(dc, activity.getDisplayContent());
@@ -397,16 +397,14 @@ public class DisplayContentTests extends WindowTestsBase {
// Add stack with activity.
final Task stack0 = createTaskStackOnDisplay(dc0);
final Task task0 = createTaskInStack(stack0, 0 /* userId */);
final ActivityRecord activity =
WindowTestUtils.createTestActivityRecord(dc0);
final ActivityRecord activity = createTestActivityRecord(dc0);
task0.addChild(activity, 0);
dc0.configureDisplayPolicy();
assertNotNull(dc0.mTapDetector);
final Task stack1 = createTaskStackOnDisplay(dc1);
final Task task1 = createTaskInStack(stack1, 0 /* userId */);
final ActivityRecord activity1 =
WindowTestUtils.createTestActivityRecord(dc0);
final ActivityRecord activity1 = createTestActivityRecord(dc0);
task1.addChild(activity1, 0);
dc1.configureDisplayPolicy();
assertNotNull(dc1.mTapDetector);
@@ -1296,7 +1294,7 @@ public class DisplayContentTests extends WindowTestsBase {
final ActivityRecord pinnedActivity = createActivityRecord(displayContent,
WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD);
final Task pinnedTask = pinnedActivity.getRootTask();
final ActivityRecord homeActivity = WindowTestUtils.createTestActivityRecord(
final ActivityRecord homeActivity = createTestActivityRecord(
displayContent.getDefaultTaskDisplayArea().getOrCreateRootHomeTask());
if (displayConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
homeActivity.setOrientation(SCREEN_ORIENTATION_PORTRAIT);

View File

@@ -95,8 +95,7 @@ public class DragDropControllerTests extends WindowTestsBase {
* Creates a window state which can be used as a drop target.
*/
private WindowState createDropTargetWindow(String name, int ownerId) {
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(
mDisplayContent);
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
final Task stack = createTaskStackOnDisplay(
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, mDisplayContent);
final Task task = createTaskInStack(stack, ownerId);

View File

@@ -568,7 +568,7 @@ public class SizeCompatTests extends WindowTestsBase {
private static WindowState addWindowToActivity(ActivityRecord activity) {
final WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.type = WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
final WindowTestUtils.TestWindowState w = new WindowTestUtils.TestWindowState(
final TestWindowState w = new TestWindowState(
activity.mWmService, mock(Session.class), new TestIWindow(), params, activity);
WindowTestsBase.makeWindowVisible(w);
w.mWinAnimator.mDrawState = WindowStateAnimator.HAS_DRAWN;
@@ -581,7 +581,7 @@ public class SizeCompatTests extends WindowTestsBase {
doReturn(true).when(displayPolicy).hasStatusBar();
displayPolicy.onConfigurationChanged();
final WindowTestUtils.TestWindowToken token = WindowTestUtils.createTestWindowToken(
final TestWindowToken token = createTestWindowToken(
WindowManager.LayoutParams.TYPE_STATUS_BAR, displayContent);
final WindowManager.LayoutParams attrs =
new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_STATUS_BAR);
@@ -589,7 +589,7 @@ public class SizeCompatTests extends WindowTestsBase {
attrs.layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
attrs.setFitInsetsTypes(0 /* types */);
final WindowTestUtils.TestWindowState statusBar = new WindowTestUtils.TestWindowState(
final TestWindowState statusBar = new TestWindowState(
displayContent.mWmService, mock(Session.class), new TestIWindow(), attrs, token);
token.addWindow(statusBar);
statusBar.setRequestedSize(displayContent.mBaseDisplayWidth,

View File

@@ -76,8 +76,7 @@ public class TaskDisplayAreaTests extends WindowTestsBase {
// Stack should contain visible app window to be considered visible.
final Task pinnedTask = createTaskInStack(mPinnedStack, 0 /* userId */);
assertFalse(mPinnedStack.isVisible());
final ActivityRecord pinnedApp =
WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord pinnedApp = createTestActivityRecord(mDisplayContent);
pinnedTask.addChild(pinnedApp, 0 /* addPos */);
assertTrue(mPinnedStack.isVisible());
}
@@ -92,7 +91,7 @@ public class TaskDisplayAreaTests extends WindowTestsBase {
final Task stack = createTaskStackOnDisplay(
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
task.addChild(activity, 0 /* addPos */);
final TaskDisplayArea taskDisplayArea = activity.getDisplayArea();
activity.mNeedsAnimationBoundsLayer = true;

View File

@@ -85,14 +85,12 @@ public class TaskStackTests extends WindowTestsBase {
public void testClosingAppDifferentStackOrientation() {
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final Task task1 = createTaskInStack(stack, 0 /* userId */);
ActivityRecord activity1 =
WindowTestUtils.createTestActivityRecord(mDisplayContent);
ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
task1.addChild(activity1, 0);
activity1.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
final Task task2 = createTaskInStack(stack, 1 /* userId */);
ActivityRecord activity2=
WindowTestUtils.createTestActivityRecord(mDisplayContent);
ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
task2.addChild(activity2, 0);
activity2.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
@@ -105,14 +103,12 @@ public class TaskStackTests extends WindowTestsBase {
public void testMoveTaskToBackDifferentStackOrientation() {
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final Task task1 = createTaskInStack(stack, 0 /* userId */);
ActivityRecord activity1 =
WindowTestUtils.createTestActivityRecord(mDisplayContent);
ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
task1.addChild(activity1, 0);
activity1.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
final Task task2 = createTaskInStack(stack, 1 /* userId */);
ActivityRecord activity2 =
WindowTestUtils.createTestActivityRecord(mDisplayContent);
ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
task2.addChild(activity2, 0);
activity2.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
assertEquals(SCREEN_ORIENTATION_PORTRAIT, stack.getOrientation());
@@ -221,7 +217,7 @@ public class TaskStackTests extends WindowTestsBase {
public void testActivityAndTaskGetsProperType() {
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final Task task1 = createTaskInStack(stack, 0 /* userId */);
ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
// First activity should become standard
task1.addChild(activity1, 0);
@@ -229,7 +225,7 @@ public class TaskStackTests extends WindowTestsBase {
assertEquals(WindowConfiguration.ACTIVITY_TYPE_STANDARD, task1.getActivityType());
// Second activity should also become standard
ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
task1.addChild(activity2, WindowContainer.POSITION_TOP);
assertEquals(WindowConfiguration.ACTIVITY_TYPE_STANDARD, activity2.getActivityType());
assertEquals(WindowConfiguration.ACTIVITY_TYPE_STANDARD, task1.getActivityType());

View File

@@ -56,8 +56,7 @@ public class TaskTests extends WindowTestsBase {
public void testRemoveContainer() {
final Task stackController1 = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stackController1, 0 /* userId */);
final ActivityRecord activity =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity = createActivityRecordInTask(mDisplayContent, task);
task.removeIfPossible();
// Assert that the container was removed.
@@ -70,8 +69,7 @@ public class TaskTests extends WindowTestsBase {
public void testRemoveContainer_deferRemoval() {
final Task stackController1 = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stackController1, 0 /* userId */);
final ActivityRecord activity =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity = createActivityRecordInTask(mDisplayContent, task);
doReturn(true).when(task).shouldDeferRemoval();
@@ -153,10 +151,8 @@ public class TaskTests extends WindowTestsBase {
public void testIsInStack() {
final Task task1 = createTaskStackOnDisplay(mDisplayContent);
final Task task2 = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity1 =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task1);
final ActivityRecord activity2 =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task2);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task1);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task2);
assertEquals(activity1, task1.isInTask(activity1));
assertNull(task1.isInTask(activity2));
}
@@ -165,12 +161,9 @@ public class TaskTests extends WindowTestsBase {
public void testRemoveChildForOverlayTask() {
final Task task = createTaskStackOnDisplay(mDisplayContent);
final int taskId = task.mTaskId;
final ActivityRecord activity1 =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity2 =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity3 =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity3 = createActivityRecordInTask(mDisplayContent, task);
activity1.setTaskOverlay(true);
activity2.setTaskOverlay(true);
activity3.setTaskOverlay(true);

View File

@@ -44,7 +44,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
@Test
public void testFlow() {
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
mDisplayContent.mUnknownAppVisibilityController.notifyAppResumedFinished(activity);
mDisplayContent.mUnknownAppVisibilityController.notifyRelayouted(activity);
@@ -56,8 +56,8 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
@Test
public void testMultiple() {
final ActivityRecord activity1 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity2 = WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity1 = createTestActivityRecord(mDisplayContent);
final ActivityRecord activity2 = createTestActivityRecord(mDisplayContent);
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity1);
mDisplayContent.mUnknownAppVisibilityController.notifyAppResumedFinished(activity1);
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity2);
@@ -72,7 +72,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
@Test
public void testClear() {
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
mDisplayContent.mUnknownAppVisibilityController.clear();
assertTrue(mDisplayContent.mUnknownAppVisibilityController.allResolved());
@@ -80,7 +80,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
@Test
public void testRemoveFinishingInvisibleActivityFromUnknown() {
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
activity.finishing = true;
activity.mVisibleRequested = true;
@@ -90,7 +90,7 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
@Test
public void testAppRemoved() {
final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
final ActivityRecord activity = createTestActivityRecord(mDisplayContent);
mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
mDisplayContent.mUnknownAppVisibilityController.appRemovedOrHidden(activity);
assertTrue(mDisplayContent.mUnknownAppVisibilityController.allResolved());

View File

@@ -810,8 +810,7 @@ public class WindowContainerTests extends WindowTestsBase {
public void testOnDisplayChanged() {
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
final ActivityRecord activity =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity = createActivityRecordInTask(mDisplayContent, task);
final DisplayContent newDc = createNewDisplay();
stack.getDisplayArea().removeStack(stack);
@@ -854,19 +853,17 @@ public class WindowContainerTests extends WindowTestsBase {
public void testTaskCanApplyAnimation() {
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
final ActivityRecord activity2 =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity1 =
WindowTestUtils.createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent, task);
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent, task);
verifyWindowContainerApplyAnimation(task, activity1, activity2);
}
@Test
public void testStackCanApplyAnimation() {
final Task stack = createTaskStackOnDisplay(mDisplayContent);
final ActivityRecord activity2 = WindowTestUtils.createActivityRecordInTask(mDisplayContent,
final ActivityRecord activity2 = createActivityRecordInTask(mDisplayContent,
createTaskInStack(stack, 0 /* userId */));
final ActivityRecord activity1 = WindowTestUtils.createActivityRecordInTask(mDisplayContent,
final ActivityRecord activity1 = createActivityRecordInTask(mDisplayContent,
createTaskInStack(stack, 0 /* userId */));
verifyWindowContainerApplyAnimation(stack, activity1, activity2);
}

View File

@@ -931,8 +931,7 @@ public class WindowOrganizerTests extends WindowTestsBase {
final Task stack = createStack();
final Task task = createTask(stack);
final ActivityRecord record = WindowTestUtils.createActivityRecordInTask(
stack.mDisplayContent, task);
final ActivityRecord record = createActivityRecordInTask(stack.mDisplayContent, task);
stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
record.setTaskDescription(new ActivityManager.TaskDescription("TestDescription"));
@@ -966,8 +965,7 @@ public class WindowOrganizerTests extends WindowTestsBase {
public void testInterceptBackPressedOnTaskRoot() throws RemoteException {
final Task stack = createStack();
final Task task = createTask(stack);
final ActivityRecord activity = WindowTestUtils.createActivityRecordInTask(
stack.mDisplayContent, task);
final ActivityRecord activity = createActivityRecordInTask(stack.mDisplayContent, task);
final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
// Setup the task to be controlled by the MW mode organizer

View File

@@ -357,8 +357,7 @@ public class WindowStateTests extends WindowTestsBase {
// Call prepareWindowToDisplayDuringRelayout for a windows that are not children of an
// activity. Both windows have the FLAG_TURNS_SCREEN_ON so both should call wakeup
final WindowToken windowToken = WindowTestUtils.createTestWindowToken(FIRST_SUB_WINDOW,
mDisplayContent);
final WindowToken windowToken = createTestWindowToken(FIRST_SUB_WINDOW, mDisplayContent);
final WindowState firstWindow = createWindow(null, TYPE_APPLICATION, windowToken,
"firstWindow");
final WindowState secondWindow = createWindow(null, TYPE_APPLICATION, windowToken,

View File

@@ -1,134 +0,0 @@
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.server.wm;
import static android.app.AppOpsManager.OP_NONE;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
import static com.android.server.wm.WindowContainer.POSITION_TOP;
import android.os.IBinder;
import android.view.IWindow;
import android.view.WindowManager;
import com.android.server.wm.WindowTestsBase.ActivityBuilder;
/**
* A collection of static functions that provide access to WindowManager related test functionality.
*/
class WindowTestUtils {
/** Creates a {@link Task} and adds it to the specified {@link Task}. */
static Task createTaskInStack(WindowManagerService service, Task stack, int userId) {
final Task task = new WindowTestsBase.TaskBuilder(stack.mStackSupervisor)
.setUserId(userId)
.setStack(stack)
.build();
return task;
}
/** Creates an {@link ActivityRecord} and adds it to the specified {@link Task}. */
static ActivityRecord createActivityRecordInTask(DisplayContent dc, Task task) {
final ActivityRecord activity = createTestActivityRecord(dc);
task.addChild(activity, POSITION_TOP);
return activity;
}
static ActivityRecord createTestActivityRecord(Task stack) {
final ActivityRecord activity = new ActivityBuilder(stack.mAtmService)
.setStack(stack)
.setCreateTask(true)
.build();
postCreateActivitySetup(activity, stack.getDisplayContent());
return activity;
}
static ActivityRecord createTestActivityRecord(DisplayContent dc) {
final ActivityRecord activity = new ActivityBuilder(dc.mWmService.mAtmService).build();
postCreateActivitySetup(activity, dc);
return activity;
}
private static void postCreateActivitySetup(ActivityRecord activity, DisplayContent dc) {
activity.onDisplayChanged(dc);
activity.setOccludesParent(true);
activity.setVisible(true);
activity.mVisibleRequested = true;
}
static TestWindowToken createTestWindowToken(int type, DisplayContent dc) {
return createTestWindowToken(type, dc, false /* persistOnEmpty */);
}
static TestWindowToken createTestWindowToken(int type, DisplayContent dc,
boolean persistOnEmpty) {
SystemServicesTestRule.checkHoldsLock(dc.mWmService.mGlobalLock);
return new TestWindowToken(type, dc, persistOnEmpty);
}
/* Used so we can gain access to some protected members of the {@link WindowToken} class */
static class TestWindowToken extends WindowToken {
private TestWindowToken(int type, DisplayContent dc, boolean persistOnEmpty) {
super(dc.mWmService, mock(IBinder.class), type, persistOnEmpty, dc,
false /* ownerCanManageAppTokens */);
}
int getWindowsCount() {
return mChildren.size();
}
boolean hasWindow(WindowState w) {
return mChildren.contains(w);
}
}
/** Used to track resize reports. */
static class TestWindowState extends WindowState {
boolean mResizeReported;
TestWindowState(WindowManagerService service, Session session, IWindow window,
WindowManager.LayoutParams attrs, WindowToken token) {
super(service, session, window, token, null, OP_NONE, 0, attrs, 0, 0, 0,
false /* ownerCanAddInternalSystemWindow */);
}
@Override
void reportResized() {
super.reportResized();
mResizeReported = true;
}
@Override
public boolean isGoneForLayoutLw() {
return false;
}
@Override
void updateResizingWindowIfNeeded() {
// Used in AppWindowTokenTests#testLandscapeSeascapeRotationRelayout to deceive
// the system that it can actually update the window.
boolean hadSurface = mHasSurface;
mHasSurface = true;
super.updateResizingWindowIfNeeded();
mHasSurface = hadSurface;
}
}
}

View File

@@ -47,6 +47,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
import static com.android.server.wm.WindowContainer.POSITION_TOP;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -66,6 +67,7 @@ import android.content.res.Configuration;
import android.hardware.display.DisplayManager;
import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.UserHandle;
import android.service.voice.IVoiceInteractionSession;
@@ -239,7 +241,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
private WindowToken createWindowToken(
DisplayContent dc, int windowingMode, int activityType, int type) {
if (type < FIRST_APPLICATION_WINDOW || type > LAST_APPLICATION_WINDOW) {
return WindowTestUtils.createTestWindowToken(type, dc);
return createTestWindowToken(type, dc);
}
return createActivityRecord(dc, windowingMode, activityType);
@@ -249,10 +251,39 @@ class WindowTestsBase extends SystemServiceTestsBase {
return createTestActivityRecord(dc, windowingMode, activityType);
}
ActivityRecord createTestActivityRecord(DisplayContent dc, int
windowingMode, int activityType) {
ActivityRecord createTestActivityRecord(DisplayContent dc, int windowingMode,
int activityType) {
final Task stack = createTaskStackOnDisplay(windowingMode, activityType, dc);
return WindowTestUtils.createTestActivityRecord(stack);
return createTestActivityRecord(stack);
}
/** Creates an {@link ActivityRecord} and adds it to the specified {@link Task}. */
static ActivityRecord createActivityRecordInTask(DisplayContent dc, Task task) {
final ActivityRecord activity = createTestActivityRecord(dc);
task.addChild(activity, POSITION_TOP);
return activity;
}
static ActivityRecord createTestActivityRecord(DisplayContent dc) {
final ActivityRecord activity = new ActivityBuilder(dc.mWmService.mAtmService).build();
postCreateActivitySetup(activity, dc);
return activity;
}
static ActivityRecord createTestActivityRecord(Task stack) {
final ActivityRecord activity = new ActivityBuilder(stack.mAtmService)
.setStack(stack)
.setCreateTask(true)
.build();
postCreateActivitySetup(activity, stack.getDisplayContent());
return activity;
}
private static void postCreateActivitySetup(ActivityRecord activity, DisplayContent dc) {
activity.onDisplayChanged(dc);
activity.setOccludesParent(true);
activity.setVisible(true);
activity.mVisibleRequested = true;
}
WindowState createWindow(WindowState parent, int type, String name) {
@@ -274,8 +305,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
}
WindowState createAppWindow(Task task, int type, String name) {
final ActivityRecord activity =
WindowTestUtils.createTestActivityRecord(task.getDisplayContent());
final ActivityRecord activity = createTestActivityRecord(task.getDisplayContent());
task.addChild(activity, 0);
return createWindow(null, type, activity, name);
}
@@ -390,7 +420,11 @@ class WindowTestsBase extends SystemServiceTestsBase {
/** Creates a {@link Task} and adds it to the specified {@link Task}. */
Task createTaskInStack(Task stack, int userId) {
return WindowTestUtils.createTaskInStack(mWm, stack, userId);
final Task task = new TaskBuilder(stack.mStackSupervisor)
.setUserId(userId)
.setStack(stack)
.build();
return task;
}
/** Creates a {@link DisplayContent} that supports IME and adds it to the system. */
@@ -432,12 +466,11 @@ class WindowTestsBase extends SystemServiceTestsBase {
return createNewDisplay(displayInfo, true /* supportIme */);
}
/** Creates a {@link com.android.server.wm.WindowTestUtils.TestWindowState} */
WindowTestUtils.TestWindowState createWindowState(WindowManager.LayoutParams attrs,
WindowToken token) {
/** Creates a {@link TestWindowState} */
TestWindowState createWindowState(WindowManager.LayoutParams attrs, WindowToken token) {
SystemServicesTestRule.checkHoldsLock(mWm.mGlobalLock);
return new WindowTestUtils.TestWindowState(mWm, mMockSession, mIWindow, attrs, token);
return new TestWindowState(mWm, mMockSession, mIWindow, attrs, token);
}
/** Creates a {@link DisplayContent} as parts of simulate display info for test. */
@@ -1055,4 +1088,66 @@ class WindowTestsBase extends SystemServiceTestsBase {
public void onBackPressedOnTaskRoot(ActivityManager.RunningTaskInfo taskInfo) {
}
}
static TestWindowToken createTestWindowToken(int type, DisplayContent dc) {
return createTestWindowToken(type, dc, false /* persistOnEmpty */);
}
static TestWindowToken createTestWindowToken(int type, DisplayContent dc,
boolean persistOnEmpty) {
SystemServicesTestRule.checkHoldsLock(dc.mWmService.mGlobalLock);
return new TestWindowToken(type, dc, persistOnEmpty);
}
/** Used so we can gain access to some protected members of the {@link WindowToken} class */
static class TestWindowToken extends WindowToken {
private TestWindowToken(int type, DisplayContent dc, boolean persistOnEmpty) {
super(dc.mWmService, mock(IBinder.class), type, persistOnEmpty, dc,
false /* ownerCanManageAppTokens */);
}
int getWindowsCount() {
return mChildren.size();
}
boolean hasWindow(WindowState w) {
return mChildren.contains(w);
}
}
/** Used to track resize reports. */
static class TestWindowState extends WindowState {
boolean mResizeReported;
TestWindowState(WindowManagerService service, Session session, IWindow window,
WindowManager.LayoutParams attrs, WindowToken token) {
super(service, session, window, token, null, OP_NONE, 0, attrs, 0, 0, 0,
false /* ownerCanAddInternalSystemWindow */);
}
@Override
void reportResized() {
super.reportResized();
mResizeReported = true;
}
@Override
public boolean isGoneForLayoutLw() {
return false;
}
@Override
void updateResizingWindowIfNeeded() {
// Used in AppWindowTokenTests#testLandscapeSeascapeRotationRelayout to deceive
// the system that it can actually update the window.
boolean hadSurface = mHasSurface;
mHasSurface = true;
super.updateResizingWindowIfNeeded();
mHasSurface = hadSurface;
}
}
}

View File

@@ -58,8 +58,7 @@ public class WindowTokenTests extends WindowTestsBase {
@Test
public void testAddWindow() {
final WindowTestUtils.TestWindowToken token =
WindowTestUtils.createTestWindowToken(0, mDisplayContent);
final TestWindowToken token = createTestWindowToken(0, mDisplayContent);
assertEquals(0, token.getWindowsCount());
@@ -93,7 +92,7 @@ public class WindowTokenTests extends WindowTestsBase {
@Test
public void testChildRemoval() {
final DisplayContent dc = mDisplayContent;
final WindowTestUtils.TestWindowToken token = WindowTestUtils.createTestWindowToken(0, dc);
final TestWindowToken token = createTestWindowToken(0, dc);
assertEquals(token, dc.getWindowToken(token.token));
@@ -116,7 +115,7 @@ public class WindowTokenTests extends WindowTestsBase {
*/
@Test
public void testTokenRemovalProcess() {
final WindowTestUtils.TestWindowToken token = WindowTestUtils.createTestWindowToken(
final TestWindowToken token = createTestWindowToken(
TYPE_TOAST, mDisplayContent, true /* persistOnEmpty */);
// Verify that the token is on the display