Loading services/tests/wmtests/src/com/android/server/wm/AppCompatActivityRobot.java +27 −36 Original line number Diff line number Diff line Loading @@ -80,18 +80,32 @@ class AppCompatActivityRobot { @Nullable private Consumer<ActivityRecord> mOnPostActivityCreation; @Nullable private Consumer<DisplayContent> mOnPostDisplayContentCreation; AppCompatActivityRobot(@NonNull WindowManagerService wm, @NonNull ActivityTaskManagerService atm, @NonNull ActivityTaskSupervisor supervisor, int displayWidth, int displayHeight) { int displayWidth, int displayHeight, @Nullable Consumer<ActivityRecord> onPostActivityCreation, @Nullable Consumer<DisplayContent> onPostDisplayContentCreation) { mAtm = atm; mSupervisor = supervisor; mDisplayWidth = displayWidth; mDisplayHeight = displayHeight; mActivityStack = new TestComponentStack<>(); mTaskStack = new TestComponentStack<>(); mOnPostActivityCreation = onPostActivityCreation; mOnPostDisplayContentCreation = onPostDisplayContentCreation; createNewDisplay(); } AppCompatActivityRobot(@NonNull WindowManagerService wm, @NonNull ActivityTaskManagerService atm, @NonNull ActivityTaskSupervisor supervisor, int displayWidth, int displayHeight) { this(wm, atm, supervisor, displayWidth, displayHeight, /* onPostActivityCreation */ null, /* onPostDisplayContentCreation */ null); } AppCompatActivityRobot(@NonNull WindowManagerService wm, @NonNull ActivityTaskManagerService atm, @NonNull ActivityTaskSupervisor supervisor) { this(wm, atm, supervisor, DEFAULT_DISPLAY_WIDTH, DEFAULT_DISPLAY_HEIGHT); Loading @@ -114,7 +128,6 @@ class AppCompatActivityRobot { createActivityWithComponentInNewTask(/* inNewTask */ true, /* inNewDisplay */ true); } void configureTopActivity(float minAspect, float maxAspect, int screenOrientation, boolean isUnresizable) { prepareLimitedBounds(mActivityStack.top(), minAspect, maxAspect, screenOrientation, Loading Loading @@ -260,21 +273,20 @@ class AppCompatActivityRobot { void createNewDisplay() { mDisplayContent = new TestDisplayContent.Builder(mAtm, mDisplayWidth, mDisplayHeight) .build(); spyOn(mDisplayContent); spyOnAppCompatCameraPolicy(); onPostDisplayContentCreation(mDisplayContent); } void createNewTask() { final Task newTask = new WindowTestsBase.TaskBuilder(mSupervisor) .setDisplay(mDisplayContent).build(); pushTask(newTask); mTaskStack.push(newTask); } void createNewTaskWithBaseActivity() { final Task newTask = new WindowTestsBase.TaskBuilder(mSupervisor) .setCreateActivity(true) .setDisplay(mDisplayContent).build(); pushTask(newTask); mTaskStack.push(newTask); pushActivity(newTask.getTopNonFinishingActivity()); } Loading Loading @@ -408,7 +420,6 @@ class AppCompatActivityRobot { */ @CallSuper void onPostActivityCreation(@NonNull ActivityRecord activity) { spyOn(activity); spyOn(activity.mLetterboxUiController); if (mOnPostActivityCreation != null) { mOnPostActivityCreation.accept(activity); Loading @@ -416,14 +427,17 @@ class AppCompatActivityRobot { } /** * Each Robot can specify its own set of operation to execute on a newly created * {@link ActivityRecord}. Most common the use of spyOn(). * Specific Robots can override this method to add operation to run on a newly created * {@link DisplayContent}. Common case is to invoke spyOn(). * * @param onPostActivityCreation The reference to the code to execute after the creation of a * new {@link ActivityRecord}. * @param displayContent The newly created {@link DisplayContent}. */ void setOnPostActivityCreation(@Nullable Consumer<ActivityRecord> onPostActivityCreation) { mOnPostActivityCreation = onPostActivityCreation; @CallSuper void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { spyOn(mDisplayContent); if (mOnPostDisplayContentCreation != null) { mOnPostDisplayContentCreation.accept(mDisplayContent); } } private void createActivityWithComponentInNewTask(boolean inNewTask, boolean inNewDisplay) { Loading Loading @@ -489,28 +503,5 @@ class AppCompatActivityRobot { private void pushActivity(@NonNull ActivityRecord activity) { mActivityStack.push(activity); onPostActivityCreation(activity); // TODO (b/351763164): Use these spyOn calls only when necessary. spyOn(activity.mAppCompatController.getTransparentPolicy()); spyOn(activity.mAppCompatController.getAppCompatAspectRatioOverrides()); spyOn(activity.mAppCompatController.getAppCompatAspectRatioPolicy()); spyOn(activity.mAppCompatController.getAppCompatFocusOverrides()); spyOn(activity.mAppCompatController.getAppCompatResizeOverrides()); spyOn(activity.mAppCompatController.getAppCompatReachabilityPolicy()); spyOn(activity.mAppCompatController.getAppCompatReachabilityOverrides()); } private void pushTask(@NonNull Task task) { spyOn(task); mTaskStack.push(task); } private void spyOnAppCompatCameraPolicy() { spyOn(mDisplayContent.mAppCompatCameraPolicy); if (mDisplayContent.mAppCompatCameraPolicy.hasDisplayRotationCompatPolicy()) { spyOn(mDisplayContent.mAppCompatCameraPolicy.mDisplayRotationCompatPolicy); } if (mDisplayContent.mAppCompatCameraPolicy.hasCameraCompatFreeformPolicy()) { spyOn(mDisplayContent.mAppCompatCameraPolicy.mCameraCompatFreeformPolicy); } } } services/tests/wmtests/src/com/android/server/wm/AppCompatAspectRatioOverridesTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -291,7 +291,6 @@ public class AppCompatAspectRatioOverridesTest extends WindowTestsBase { * Runs a test scenario providing a Robot. */ void runTestScenario(@NonNull Consumer<AspectRatioOverridesRobotTest> consumer) { spyOn(mWm.mAppCompatConfiguration); final AspectRatioOverridesRobotTest robot = new AspectRatioOverridesRobotTest(mWm, mAtm, mSupervisor); consumer.accept(robot); Loading @@ -305,6 +304,18 @@ public class AppCompatAspectRatioOverridesTest extends WindowTestsBase { super(wm, atm, supervisor); } @Override void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { super.onPostDisplayContentCreation(displayContent); spyOn(displayContent.mAppCompatCameraPolicy); } @Override void onPostActivityCreation(@NonNull ActivityRecord activity) { super.onPostActivityCreation(activity); spyOn(activity.mAppCompatController.getAppCompatAspectRatioOverrides()); } void checkShouldApplyUserFullscreenOverride(boolean expected) { assertEquals(expected, getTopActivityAppCompatAspectRatioOverrides() .shouldApplyUserFullscreenOverride()); Loading services/tests/wmtests/src/com/android/server/wm/AppCompatCameraOverridesTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -387,6 +387,12 @@ public class AppCompatCameraOverridesTest extends WindowTestsBase { super(wm, atm, supervisor); } @Override void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { super.onPostDisplayContentCreation(displayContent); spyOn(displayContent.mAppCompatCameraPolicy); } void checkShouldRefreshActivityForCameraCompat(boolean expected) { Assert.assertEquals(getAppCompatCameraOverrides() .shouldRefreshActivityForCameraCompat(), expected); Loading services/tests/wmtests/src/com/android/server/wm/AppCompatCameraPolicyTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,12 @@ public class AppCompatCameraPolicyTest extends WindowTestsBase { super(wm, atm, supervisor); } @Override void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { super.onPostDisplayContentCreation(displayContent); spyOn(displayContent.mAppCompatCameraPolicy); } void checkTopActivityHasDisplayRotationCompatPolicy(boolean exists) { Assert.assertEquals(exists, activity().top().mDisplayContent .mAppCompatCameraPolicy.hasDisplayRotationCompatPolicy()); Loading services/tests/wmtests/src/com/android/server/wm/AppCompatOrientationOverridesTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -250,6 +250,12 @@ public class AppCompatOrientationOverridesTest extends WindowTestsBase { mTestCurrentTimeMillisSupplier = new CurrentTimeMillisSupplierFake(); } @Override void onPostActivityCreation(@NonNull ActivityRecord activity) { super.onPostActivityCreation(activity); spyOn(activity.mAppCompatController.getAppCompatAspectRatioPolicy()); } // Useful to reduce timeout during tests void prepareMockedTime() { getTopOrientationOverrides().mOrientationOverridesState.mCurrentTimeMillisSupplier = Loading Loading
services/tests/wmtests/src/com/android/server/wm/AppCompatActivityRobot.java +27 −36 Original line number Diff line number Diff line Loading @@ -80,18 +80,32 @@ class AppCompatActivityRobot { @Nullable private Consumer<ActivityRecord> mOnPostActivityCreation; @Nullable private Consumer<DisplayContent> mOnPostDisplayContentCreation; AppCompatActivityRobot(@NonNull WindowManagerService wm, @NonNull ActivityTaskManagerService atm, @NonNull ActivityTaskSupervisor supervisor, int displayWidth, int displayHeight) { int displayWidth, int displayHeight, @Nullable Consumer<ActivityRecord> onPostActivityCreation, @Nullable Consumer<DisplayContent> onPostDisplayContentCreation) { mAtm = atm; mSupervisor = supervisor; mDisplayWidth = displayWidth; mDisplayHeight = displayHeight; mActivityStack = new TestComponentStack<>(); mTaskStack = new TestComponentStack<>(); mOnPostActivityCreation = onPostActivityCreation; mOnPostDisplayContentCreation = onPostDisplayContentCreation; createNewDisplay(); } AppCompatActivityRobot(@NonNull WindowManagerService wm, @NonNull ActivityTaskManagerService atm, @NonNull ActivityTaskSupervisor supervisor, int displayWidth, int displayHeight) { this(wm, atm, supervisor, displayWidth, displayHeight, /* onPostActivityCreation */ null, /* onPostDisplayContentCreation */ null); } AppCompatActivityRobot(@NonNull WindowManagerService wm, @NonNull ActivityTaskManagerService atm, @NonNull ActivityTaskSupervisor supervisor) { this(wm, atm, supervisor, DEFAULT_DISPLAY_WIDTH, DEFAULT_DISPLAY_HEIGHT); Loading @@ -114,7 +128,6 @@ class AppCompatActivityRobot { createActivityWithComponentInNewTask(/* inNewTask */ true, /* inNewDisplay */ true); } void configureTopActivity(float minAspect, float maxAspect, int screenOrientation, boolean isUnresizable) { prepareLimitedBounds(mActivityStack.top(), minAspect, maxAspect, screenOrientation, Loading Loading @@ -260,21 +273,20 @@ class AppCompatActivityRobot { void createNewDisplay() { mDisplayContent = new TestDisplayContent.Builder(mAtm, mDisplayWidth, mDisplayHeight) .build(); spyOn(mDisplayContent); spyOnAppCompatCameraPolicy(); onPostDisplayContentCreation(mDisplayContent); } void createNewTask() { final Task newTask = new WindowTestsBase.TaskBuilder(mSupervisor) .setDisplay(mDisplayContent).build(); pushTask(newTask); mTaskStack.push(newTask); } void createNewTaskWithBaseActivity() { final Task newTask = new WindowTestsBase.TaskBuilder(mSupervisor) .setCreateActivity(true) .setDisplay(mDisplayContent).build(); pushTask(newTask); mTaskStack.push(newTask); pushActivity(newTask.getTopNonFinishingActivity()); } Loading Loading @@ -408,7 +420,6 @@ class AppCompatActivityRobot { */ @CallSuper void onPostActivityCreation(@NonNull ActivityRecord activity) { spyOn(activity); spyOn(activity.mLetterboxUiController); if (mOnPostActivityCreation != null) { mOnPostActivityCreation.accept(activity); Loading @@ -416,14 +427,17 @@ class AppCompatActivityRobot { } /** * Each Robot can specify its own set of operation to execute on a newly created * {@link ActivityRecord}. Most common the use of spyOn(). * Specific Robots can override this method to add operation to run on a newly created * {@link DisplayContent}. Common case is to invoke spyOn(). * * @param onPostActivityCreation The reference to the code to execute after the creation of a * new {@link ActivityRecord}. * @param displayContent The newly created {@link DisplayContent}. */ void setOnPostActivityCreation(@Nullable Consumer<ActivityRecord> onPostActivityCreation) { mOnPostActivityCreation = onPostActivityCreation; @CallSuper void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { spyOn(mDisplayContent); if (mOnPostDisplayContentCreation != null) { mOnPostDisplayContentCreation.accept(mDisplayContent); } } private void createActivityWithComponentInNewTask(boolean inNewTask, boolean inNewDisplay) { Loading Loading @@ -489,28 +503,5 @@ class AppCompatActivityRobot { private void pushActivity(@NonNull ActivityRecord activity) { mActivityStack.push(activity); onPostActivityCreation(activity); // TODO (b/351763164): Use these spyOn calls only when necessary. spyOn(activity.mAppCompatController.getTransparentPolicy()); spyOn(activity.mAppCompatController.getAppCompatAspectRatioOverrides()); spyOn(activity.mAppCompatController.getAppCompatAspectRatioPolicy()); spyOn(activity.mAppCompatController.getAppCompatFocusOverrides()); spyOn(activity.mAppCompatController.getAppCompatResizeOverrides()); spyOn(activity.mAppCompatController.getAppCompatReachabilityPolicy()); spyOn(activity.mAppCompatController.getAppCompatReachabilityOverrides()); } private void pushTask(@NonNull Task task) { spyOn(task); mTaskStack.push(task); } private void spyOnAppCompatCameraPolicy() { spyOn(mDisplayContent.mAppCompatCameraPolicy); if (mDisplayContent.mAppCompatCameraPolicy.hasDisplayRotationCompatPolicy()) { spyOn(mDisplayContent.mAppCompatCameraPolicy.mDisplayRotationCompatPolicy); } if (mDisplayContent.mAppCompatCameraPolicy.hasCameraCompatFreeformPolicy()) { spyOn(mDisplayContent.mAppCompatCameraPolicy.mCameraCompatFreeformPolicy); } } }
services/tests/wmtests/src/com/android/server/wm/AppCompatAspectRatioOverridesTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -291,7 +291,6 @@ public class AppCompatAspectRatioOverridesTest extends WindowTestsBase { * Runs a test scenario providing a Robot. */ void runTestScenario(@NonNull Consumer<AspectRatioOverridesRobotTest> consumer) { spyOn(mWm.mAppCompatConfiguration); final AspectRatioOverridesRobotTest robot = new AspectRatioOverridesRobotTest(mWm, mAtm, mSupervisor); consumer.accept(robot); Loading @@ -305,6 +304,18 @@ public class AppCompatAspectRatioOverridesTest extends WindowTestsBase { super(wm, atm, supervisor); } @Override void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { super.onPostDisplayContentCreation(displayContent); spyOn(displayContent.mAppCompatCameraPolicy); } @Override void onPostActivityCreation(@NonNull ActivityRecord activity) { super.onPostActivityCreation(activity); spyOn(activity.mAppCompatController.getAppCompatAspectRatioOverrides()); } void checkShouldApplyUserFullscreenOverride(boolean expected) { assertEquals(expected, getTopActivityAppCompatAspectRatioOverrides() .shouldApplyUserFullscreenOverride()); Loading
services/tests/wmtests/src/com/android/server/wm/AppCompatCameraOverridesTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -387,6 +387,12 @@ public class AppCompatCameraOverridesTest extends WindowTestsBase { super(wm, atm, supervisor); } @Override void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { super.onPostDisplayContentCreation(displayContent); spyOn(displayContent.mAppCompatCameraPolicy); } void checkShouldRefreshActivityForCameraCompat(boolean expected) { Assert.assertEquals(getAppCompatCameraOverrides() .shouldRefreshActivityForCameraCompat(), expected); Loading
services/tests/wmtests/src/com/android/server/wm/AppCompatCameraPolicyTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,12 @@ public class AppCompatCameraPolicyTest extends WindowTestsBase { super(wm, atm, supervisor); } @Override void onPostDisplayContentCreation(@NonNull DisplayContent displayContent) { super.onPostDisplayContentCreation(displayContent); spyOn(displayContent.mAppCompatCameraPolicy); } void checkTopActivityHasDisplayRotationCompatPolicy(boolean exists) { Assert.assertEquals(exists, activity().top().mDisplayContent .mAppCompatCameraPolicy.hasDisplayRotationCompatPolicy()); Loading
services/tests/wmtests/src/com/android/server/wm/AppCompatOrientationOverridesTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -250,6 +250,12 @@ public class AppCompatOrientationOverridesTest extends WindowTestsBase { mTestCurrentTimeMillisSupplier = new CurrentTimeMillisSupplierFake(); } @Override void onPostActivityCreation(@NonNull ActivityRecord activity) { super.onPostActivityCreation(activity); spyOn(activity.mAppCompatController.getAppCompatAspectRatioPolicy()); } // Useful to reduce timeout during tests void prepareMockedTime() { getTopOrientationOverrides().mOrientationOverridesState.mCurrentTimeMillisSupplier = Loading