Merge "Convert TestActivityDisplay.create to Builder"

This commit is contained in:
TreeHugger Robot
2019-11-22 20:26:56 +00:00
committed by Android (Google) Code Review
10 changed files with 31 additions and 102 deletions

View File

@@ -134,10 +134,9 @@ public class ActivityDisplayTests extends ActivityTestsBase {
public void testNotResumeHomeStackOnRemovingDisplay() {
// Create a display which supports system decoration and allows reparenting stacks to
// another display when the display is removed.
final ActivityDisplay display = createNewActivityDisplay();
final ActivityDisplay display = new TestActivityDisplay.Builder(
mService, 1000, 1500).setSystemDecorations(true).build();
doReturn(false).when(display).shouldDestroyContentOnRemove();
doReturn(true).when(display).supportsSystemDecorations();
mRootActivityContainer.addChild(display, ActivityDisplay.POSITION_TOP);
// Put home stack on the display.
final ActivityStack homeStack = new StackBuilder(mRootActivityContainer)

View File

@@ -760,8 +760,9 @@ public class ActivityStarterTests extends ActivityTestsBase {
false /* mockGetLaunchStack */);
// Create a secondary display at bottom.
final TestActivityDisplay secondaryDisplay = createNewActivityDisplay();
mRootActivityContainer.addChild(secondaryDisplay, POSITION_BOTTOM);
final TestActivityDisplay secondaryDisplay =
new TestActivityDisplay.Builder(mService, 1000, 1500)
.setPosition(POSITION_BOTTOM).build();
final ActivityStack stack = secondaryDisplay.createStack(WINDOWING_MODE_FULLSCREEN,
ACTIVITY_TYPE_STANDARD, true /* onTop */);
@@ -798,7 +799,8 @@ public class ActivityStarterTests extends ActivityTestsBase {
false /* mockGetLaunchStack */);
// Create a secondary display with an activity.
final TestActivityDisplay secondaryDisplay = createNewActivityDisplay();
final TestActivityDisplay secondaryDisplay =
new TestActivityDisplay.Builder(mService, 1000, 1500).build();
mRootActivityContainer.addChild(secondaryDisplay, POSITION_TOP);
final ActivityRecord singleTaskActivity = createSingleTaskActivityOn(
secondaryDisplay.createStack(WINDOWING_MODE_FULLSCREEN,

View File

@@ -43,7 +43,6 @@ import android.content.res.Configuration;
import android.os.Build;
import android.os.UserHandle;
import android.service.voice.IVoiceInteractionSession;
import android.view.DisplayInfo;
import com.android.server.AttributeCache;
@@ -78,27 +77,9 @@ class ActivityTestsBase extends SystemServiceTestsBase {
mRootActivityContainer = mService.mRootActivityContainer;
}
/** Creates a {@link TestActivityDisplay}. */
TestActivityDisplay createNewActivityDisplay() {
return TestActivityDisplay.create(mSupervisor);
}
TestActivityDisplay createNewActivityDisplay(DisplayInfo info) {
return TestActivityDisplay.create(mSupervisor, info);
}
/** Creates and adds a {@link TestActivityDisplay} to supervisor at the given position. */
TestActivityDisplay addNewActivityDisplayAt(int position) {
final TestActivityDisplay display = createNewActivityDisplay();
mRootActivityContainer.addChild(display, position);
return display;
}
/** Creates and adds a {@link TestActivityDisplay} to supervisor at the given position. */
TestActivityDisplay addNewActivityDisplayAt(DisplayInfo info, int position) {
final TestActivityDisplay display = createNewActivityDisplay(info);
mRootActivityContainer.addChild(display, position);
return display;
return new TestActivityDisplay.Builder(mService, 1000, 1500).setPosition(position).build();
}
/** Sets the default minimum task size to 1 so that tests can use small task sizes */

View File

@@ -36,7 +36,6 @@ import android.content.pm.PackageManagerInternal;
import android.graphics.Rect;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;
import android.view.DisplayInfo;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.MediumTest;
@@ -103,11 +102,8 @@ public class LaunchParamsPersisterTests extends ActivityTestsBase {
deleteRecursively(mFolder);
mDisplayUniqueId = "test:" + Integer.toString(sNextUniqueId++);
final DisplayInfo info = new DisplayInfo();
mService.mContext.getDisplay().getDisplayInfo(info);
info.uniqueId = mDisplayUniqueId;
mTestDisplay = createNewActivityDisplay(info);
mRootActivityContainer.addChild(mTestDisplay, ActivityDisplay.POSITION_TOP);
mTestDisplay = new TestActivityDisplay.Builder(mService, 1000, 1500)
.setUniqueId(mDisplayUniqueId).build();
when(mRootActivityContainer.getActivityDisplay(eq(mDisplayUniqueId)))
.thenReturn(mTestDisplay);

View File

@@ -35,7 +35,6 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE;
@@ -61,7 +60,6 @@ import android.content.res.Resources;
import android.graphics.Rect;
import android.platform.test.annotations.Presubmit;
import android.util.Pair;
import android.view.DisplayInfo;
import androidx.test.filters.MediumTest;
@@ -518,9 +516,9 @@ public class RootActivityContainerTests extends ActivityTestsBase {
mockResolveSecondaryHomeActivity();
// Create secondary displays.
final TestActivityDisplay secondDisplay = createNewActivityDisplay();
mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
doReturn(true).when(secondDisplay).supportsSystemDecorations();
final TestActivityDisplay secondDisplay =
new TestActivityDisplay.Builder(mService, 1000, 1500)
.setSystemDecorations(true).build();
doReturn(true).when(mRootActivityContainer)
.ensureVisibilityAndConfig(any(), anyInt(), anyBoolean(), anyBoolean());
@@ -585,10 +583,10 @@ public class RootActivityContainerTests extends ActivityTestsBase {
@Test
public void testStartSecondaryHomeOnDisplayWithUserKeyLocked() {
// Create secondary displays.
final TestActivityDisplay secondDisplay = createNewActivityDisplay();
mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
final TestActivityDisplay secondDisplay =
new TestActivityDisplay.Builder(mService, 1000, 1500)
.setSystemDecorations(true).build();
doReturn(true).when(secondDisplay).supportsSystemDecorations();
// Use invalid user id to let StorageManager.isUserKeyUnlocked() return false.
final int currentUser = mRootActivityContainer.mCurrentUser;
mRootActivityContainer.mCurrentUser = -1;
@@ -611,9 +609,9 @@ public class RootActivityContainerTests extends ActivityTestsBase {
@Test
public void testStartSecondaryHomeOnDisplayWithoutSysDecorations() {
// Create secondary displays.
final TestActivityDisplay secondDisplay = createNewActivityDisplay();
mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
doReturn(false).when(secondDisplay).supportsSystemDecorations();
final TestActivityDisplay secondDisplay =
new TestActivityDisplay.Builder(mService, 1000, 1500)
.setSystemDecorations(false).build();
mRootActivityContainer.startHomeOnDisplay(0 /* userId */, "testStartSecondaryHome",
secondDisplay.mDisplayId, true /* allowInstrumenting */, true /* fromHomeKey */);
@@ -834,12 +832,9 @@ public class RootActivityContainerTests extends ActivityTestsBase {
@Test
public void testGetLaunchStackWithRealCallerId() {
// Create a non-system owned virtual display.
final DisplayInfo info = new DisplayInfo();
mSupervisor.mService.mContext.getDisplay().getDisplayInfo(info);
info.type = TYPE_VIRTUAL;
info.ownerUid = 100;
final TestActivityDisplay secondaryDisplay = TestActivityDisplay.create(mSupervisor, info);
mRootActivityContainer.addChild(secondaryDisplay, POSITION_TOP);
final TestActivityDisplay secondaryDisplay =
new TestActivityDisplay.Builder(mService, 1000, 1500)
.setType(TYPE_VIRTUAL).setOwnerUid(100).build();
// Create an activity with specify the original launch pid / uid.
final ActivityRecord r = new ActivityBuilder(mService).setLaunchedFromPid(200)

View File

@@ -18,7 +18,6 @@ package com.android.server.wm;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.view.Display.DEFAULT_DISPLAY;
import static com.google.common.truth.Truth.assertThat;
@@ -59,13 +58,15 @@ public class RunningTasksTest extends ActivityTestsBase {
public void testCollectTasksByLastActiveTime() {
// Create a number of stacks with tasks (of incrementing active time)
final ArrayList<ActivityDisplay> displays = new ArrayList<>();
final ActivityDisplay display = TestActivityDisplay.create(mSupervisor, DEFAULT_DISPLAY);
final ActivityDisplay display =
new TestActivityDisplay.Builder(mService, 1000, 2500).build();
displays.add(display);
final int numStacks = 2;
for (int stackIndex = 0; stackIndex < numStacks; stackIndex++) {
final ActivityStack stack = new StackBuilder(mRootActivityContainer)
.setCreateActivity(false)
.setDisplay(display)
.setOnTop(false)
.build();
}

View File

@@ -37,7 +37,6 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static com.android.server.policy.WindowManagerPolicy.USER_ROTATION_FREE;
import static com.android.server.wm.DisplayRotation.FIXED_TO_USER_ROTATION_ENABLED;
import static com.android.server.wm.WindowContainer.POSITION_TOP;
import static com.google.common.truth.Truth.assertThat;
@@ -266,11 +265,8 @@ public class TaskRecordTests extends ActivityTestsBase {
public void testFullscreenBoundsForcedOrientation() {
final Rect fullScreenBounds = new Rect(0, 0, 1920, 1080);
final Rect fullScreenBoundsPort = new Rect(0, 0, 1080, 1920);
DisplayInfo info = new DisplayInfo();
mService.mContext.getDisplay().getDisplayInfo(info);
info.logicalWidth = fullScreenBounds.width();
info.logicalHeight = fullScreenBounds.height();
ActivityDisplay display = addNewActivityDisplayAt(info, POSITION_TOP);
ActivityDisplay display = new TestActivityDisplay.Builder(
mService, fullScreenBounds.width(), fullScreenBounds.height()).build();
assertTrue(mRootActivityContainer.getActivityDisplay(display.mDisplayId) != null);
// Fix the display orientation to landscape which is the natural rotation (0) for the test
// display.
@@ -332,11 +328,8 @@ public class TaskRecordTests extends ActivityTestsBase {
@Test
public void testIgnoresForcedOrientationWhenParentHandles() {
final Rect fullScreenBounds = new Rect(0, 0, 1920, 1080);
DisplayInfo info = new DisplayInfo();
mService.mContext.getDisplay().getDisplayInfo(info);
info.logicalWidth = fullScreenBounds.width();
info.logicalHeight = fullScreenBounds.height();
ActivityDisplay display = addNewActivityDisplayAt(info, POSITION_TOP);
ActivityDisplay display = new TestActivityDisplay.Builder(
mService, fullScreenBounds.width(), fullScreenBounds.height()).build();
display.getRequestedOverrideConfiguration().orientation =
Configuration.ORIENTATION_LANDSCAPE;

View File

@@ -17,7 +17,6 @@
package com.android.server.wm;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.DisplayAdjustments.DEFAULT_DISPLAY_ADJUSTMENTS;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
@@ -39,36 +38,6 @@ import android.view.DisplayInfo;
class TestActivityDisplay extends ActivityDisplay {
private final ActivityStackSupervisor mSupervisor;
static TestActivityDisplay create(ActivityStackSupervisor supervisor) {
return create(supervisor, SystemServicesTestRule.sNextDisplayId++);
}
static TestActivityDisplay create(ActivityStackSupervisor supervisor, DisplayInfo info) {
return create(supervisor, SystemServicesTestRule.sNextDisplayId++, info);
}
static TestActivityDisplay create(ActivityStackSupervisor supervisor, int displayId) {
final DisplayInfo info = new DisplayInfo();
supervisor.mService.mContext.getDisplay().getDisplayInfo(info);
return create(supervisor, displayId, info);
}
static TestActivityDisplay create(ActivityStackSupervisor supervisor, int displayId,
DisplayInfo info) {
if (displayId == DEFAULT_DISPLAY) {
synchronized (supervisor.mService.mGlobalLock) {
return new TestActivityDisplay(supervisor,
supervisor.mRootActivityContainer.mDisplayManager.getDisplay(displayId));
}
}
final Display display = new Display(DisplayManagerGlobal.getInstance(), displayId,
info, DEFAULT_DISPLAY_ADJUSTMENTS);
synchronized (supervisor.mService.mGlobalLock) {
return new TestActivityDisplay(supervisor, display);
}
}
private TestActivityDisplay(ActivityStackSupervisor supervisor, Display display) {
super(supervisor.mService.mRootActivityContainer, display);
// Normally this comes from display-properties as exposed by WM. Without that, just

View File

@@ -18,8 +18,6 @@ package com.android.server.wm;
import static android.view.Display.INVALID_DISPLAY;
import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -132,8 +130,6 @@ public class WindowProcessControllerTests extends ActivityTestsBase {
}
private TestActivityDisplay createTestActivityDisplayInContainer() {
final TestActivityDisplay testActivityDisplay = createNewActivityDisplay();
mRootActivityContainer.addChild(testActivityDisplay, POSITION_TOP);
return testActivityDisplay;
return new TestActivityDisplay.Builder(mService, 1000, 1500).build();
}
}

View File

@@ -36,8 +36,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
import static org.mockito.Mockito.mock;
import android.content.Context;
@@ -343,8 +341,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
/** Creates a {@link DisplayContent} and adds it to the system. */
DisplayContent createNewDisplay(DisplayInfo info) {
final ActivityDisplay display =
TestActivityDisplay.create(mWm.mAtmService.mStackSupervisor, info);
mWm.mAtmService.mRootActivityContainer.addChild(display, POSITION_TOP);
new TestActivityDisplay.Builder(mWm.mAtmService, info).build();
return display.mDisplayContent;
}