diff options
| author | 2024-07-29 07:36:47 +0000 | |
|---|---|---|
| committer | 2024-07-29 07:36:47 +0000 | |
| commit | 59002e70d74c31d8c8c6ebf1e161dfedfbfaa85c (patch) | |
| tree | f412ae3a50ac060d1dda610ed5dc460857a1794d | |
| parent | f7de25121fe01233f5a202a349fa56f634e18843 (diff) | |
| parent | 68b53e203909e6ea5483930577f0b30e09bfff23 (diff) | |
Merge "[23/n] Add missing test about aspect ratio" into main
5 files changed, 53 insertions, 38 deletions
diff --git a/services/core/java/com/android/server/wm/LetterboxUiController.java b/services/core/java/com/android/server/wm/LetterboxUiController.java index 444097a3ea05..291eab1b2d94 100644 --- a/services/core/java/com/android/server/wm/LetterboxUiController.java +++ b/services/core/java/com/android/server/wm/LetterboxUiController.java @@ -325,11 +325,6 @@ final class LetterboxUiController { : mAppCompatConfiguration.getLetterboxVerticalPositionMultiplier(tabletopMode); } - float getFixedOrientationLetterboxAspectRatio(@NonNull Configuration parentConfiguration) { - return mActivityRecord.mAppCompatController.getAppCompatAspectRatioOverrides() - .getFixedOrientationLetterboxAspectRatio(parentConfiguration); - } - boolean isLetterboxEducationEnabled() { return mAppCompatConfiguration.getIsEducationEnabled(); } diff --git a/services/tests/wmtests/src/com/android/server/wm/AppCompatAspectRatioOverridesTest.java b/services/tests/wmtests/src/com/android/server/wm/AppCompatAspectRatioOverridesTest.java index ddd6d562abb1..a6fd11210307 100644 --- a/services/tests/wmtests/src/com/android/server/wm/AppCompatAspectRatioOverridesTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/AppCompatAspectRatioOverridesTest.java @@ -26,6 +26,7 @@ import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import android.compat.testing.PlatformCompatChangeRule; import android.platform.test.annotations.Presubmit; @@ -246,7 +247,6 @@ public class AppCompatAspectRatioOverridesTest extends WindowTestsBase { }); } - @Test @EnableCompatChanges({OVERRIDE_MIN_ASPECT_RATIO}) public void testshouldOverrideMinAspectRatio_propertyFalse_overrideEnabled_returnsFalse() { @@ -269,6 +269,24 @@ public class AppCompatAspectRatioOverridesTest extends WindowTestsBase { }); } + @Test + public void testGetFixedOrientationLetterboxAspectRatio_splitScreenAspectEnabled() { + runTestScenario((robot)-> { + robot.applyOnConf((c) -> { + c.enableCameraCompatTreatment(/* enabled */ true); + c.enableCameraCompatTreatmentAtBuildTime(/* enabled */ true); + c.enableCameraCompatSplitScreenAspectRatio(/* enabled */ true); + c.enableDisplayAspectRatioEnabledForFixedOrientationLetterbox(/* enabled */ false); + c.setFixedOrientationLetterboxAspectRatio(/* aspectRatio */ 1.5f); + }); + robot.activity().createActivityWithComponentInNewTaskAndDisplay(); + robot.checkFixedOrientationLetterboxAspectRatioForTopParent(/* expected */ 1.5f); + + robot.activity().enableTreatmentForTopActivity(/* enabled */ true); + robot.checkAspectRatioForTopParentIsSplitScreenRatio(/* expected */ true); + }); + } + /** * Runs a test scenario providing a Robot. */ @@ -308,6 +326,28 @@ public class AppCompatAspectRatioOverridesTest extends WindowTestsBase { } @NonNull + void checkFixedOrientationLetterboxAspectRatioForTopParent(float expected) { + assertEquals(expected, + getTopActivityAppCompatAspectRatioOverrides() + .getFixedOrientationLetterboxAspectRatio( + activity().top().getParent().getConfiguration()), + FLOAT_TOLLERANCE); + } + + void checkAspectRatioForTopParentIsSplitScreenRatio(boolean expected) { + final AppCompatAspectRatioOverrides aspectRatioOverrides = + getTopActivityAppCompatAspectRatioOverrides(); + if (expected) { + assertEquals(aspectRatioOverrides.getSplitScreenAspectRatio(), + aspectRatioOverrides.getFixedOrientationLetterboxAspectRatio( + activity().top().getParent().getConfiguration()), FLOAT_TOLLERANCE); + } else { + assertNotEquals(aspectRatioOverrides.getSplitScreenAspectRatio(), + aspectRatioOverrides.getFixedOrientationLetterboxAspectRatio( + activity().top().getParent().getConfiguration()), FLOAT_TOLLERANCE); + } + } + private AppCompatAspectRatioOverrides getTopActivityAppCompatAspectRatioOverrides() { return activity().top().mAppCompatController.getAppCompatAspectRatioOverrides(); } diff --git a/services/tests/wmtests/src/com/android/server/wm/AppCompatConfigurationRobot.java b/services/tests/wmtests/src/com/android/server/wm/AppCompatConfigurationRobot.java index 00a87719eaac..6592f2625ab6 100644 --- a/services/tests/wmtests/src/com/android/server/wm/AppCompatConfigurationRobot.java +++ b/services/tests/wmtests/src/com/android/server/wm/AppCompatConfigurationRobot.java @@ -70,4 +70,14 @@ class AppCompatConfigurationRobot { void enableCompatFakeFocus(boolean enabled) { doReturn(enabled).when(mAppCompatConfiguration).isCompatFakeFocusEnabled(); } + + void enableDisplayAspectRatioEnabledForFixedOrientationLetterbox(boolean enabled) { + doReturn(enabled).when(mAppCompatConfiguration) + .getIsDisplayAspectRatioEnabledForFixedOrientationLetterbox(); + } + + void setFixedOrientationLetterboxAspectRatio(float aspectRatio) { + doReturn(aspectRatio).when(mAppCompatConfiguration) + .getFixedOrientationLetterboxAspectRatio(); + } } diff --git a/services/tests/wmtests/src/com/android/server/wm/AppCompatRobotBase.java b/services/tests/wmtests/src/com/android/server/wm/AppCompatRobotBase.java index 92f246be7cdf..6939f97e1799 100644 --- a/services/tests/wmtests/src/com/android/server/wm/AppCompatRobotBase.java +++ b/services/tests/wmtests/src/com/android/server/wm/AppCompatRobotBase.java @@ -28,6 +28,8 @@ abstract class AppCompatRobotBase { private static final int DEFAULT_DISPLAY_WIDTH = 1000; private static final int DEFAULT_DISPLAY_HEIGHT = 2000; + static final float FLOAT_TOLLERANCE = 0.01f; + @NonNull private final AppCompatActivityRobot mActivityRobot; @NonNull diff --git a/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java index e2c0f6c20c01..61a6f316244c 100644 --- a/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java @@ -19,7 +19,6 @@ package com.android.server.wm; import static android.view.InsetsSource.FLAG_INSETS_ROUNDED_CORNER; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; -import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; @@ -297,37 +296,6 @@ public class LetterboxUiControllerTest extends WindowTestsBase { } @Test - public void testgetFixedOrientationLetterboxAspectRatio_splitScreenAspectEnabled() { - doReturn(true).when(mActivity.mWmService.mAppCompatConfiguration) - .isCameraCompatTreatmentEnabled(); - doReturn(true).when(mActivity.mWmService.mAppCompatConfiguration) - .isCameraCompatTreatmentEnabledAtBuildTime(); - doReturn(true).when(mActivity.mWmService.mAppCompatConfiguration) - .isCameraCompatSplitScreenAspectRatioEnabled(); - doReturn(false).when(mActivity.mWmService.mAppCompatConfiguration) - .getIsDisplayAspectRatioEnabledForFixedOrientationLetterbox(); - doReturn(1.5f).when(mActivity.mWmService.mAppCompatConfiguration) - .getFixedOrientationLetterboxAspectRatio(); - - // Recreate DisplayContent with DisplayRotationCompatPolicy - mActivity = setUpActivityWithComponent(); - mController = new LetterboxUiController(mWm, mActivity); - - assertEquals(1.5f, mController.getFixedOrientationLetterboxAspectRatio( - mActivity.getParent().getConfiguration()), /* delta */ 0.01); - - spyOn(mDisplayContent.mAppCompatCameraPolicy); - doReturn(true).when(mDisplayContent.mAppCompatCameraPolicy) - .isTreatmentEnabledForActivity(eq(mActivity)); - - final AppCompatAspectRatioOverrides aspectRatioOverrides = - mActivity.mAppCompatController.getAppCompatAspectRatioOverrides(); - assertEquals(aspectRatioOverrides.getSplitScreenAspectRatio(), - aspectRatioOverrides.getFixedOrientationLetterboxAspectRatio( - mActivity.getParent().getConfiguration()), /* delta */ 0.01); - } - - @Test public void testIsVerticalThinLetterboxed() { // Vertical thin letterbox disabled doReturn(-1).when(mActivity.mWmService.mAppCompatConfiguration) |