Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59002e70 authored by Massimo Carli's avatar Massimo Carli Committed by Android (Google) Code Review
Browse files

Merge "[23/n] Add missing test about aspect ratio" into main

parents f7de2512 68b53e20
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -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();
    }
+41 −1
Original line number Diff line number Diff line
@@ -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();
        }
+10 −0
Original line number Diff line number Diff line
@@ -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();
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -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
+0 −32
Original line number Diff line number Diff line
@@ -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;

@@ -296,37 +295,6 @@ public class LetterboxUiControllerTest extends WindowTestsBase {
        return mainWindow;
    }

    @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