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

Commit 4a8f23df authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Fix unit tests if universal_resizable_by_default is enabled

Currently WmTests declares target sdk 28. So if the test ActivityRecord
is assigned with the real WmTests package name, it can adopt the legacy
behavior by default.

For the tests that need to use mocked package names, mock its
application info directly.

Bug: 357141415
Flag: com.android.window.flags.universal_resizable_by_default
Test: DisplayRotationCompatPolicyTests
      ActivityRecordTests#testSetOrientation_restrictedByTargetSdk
      TransparentPolicyTest# \
          testTranslucentActivitiesDontGoInSizeCompatMode

Change-Id: Ic7a644f8739899f8a0578fca9878bf40940438ec
parent 8ac5a154
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -139,7 +139,6 @@ import android.os.PersistableBundle;
import android.os.Process;
import android.os.RemoteException;
import android.platform.test.annotations.Presubmit;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.provider.DeviceConfig;
import android.util.MutableBoolean;
import android.view.DisplayInfo;
@@ -2662,8 +2661,11 @@ public class ActivityRecordTests extends WindowTestsBase {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_UNIVERSAL_RESIZABLE_BY_DEFAULT)
    public void testSetOrientation_restrictedByTargetSdk() {
        mSetFlagsRule.enableFlags(Flags.FLAG_UNIVERSAL_RESIZABLE_BY_DEFAULT);
        mDisplayContent.setIgnoreOrientationRequest(true);
        makeDisplayLargeScreen(mDisplayContent);

        assertSetOrientation(Build.VERSION_CODES.CUR_DEVELOPMENT, CATEGORY_SOCIAL, false);
        assertSetOrientation(Build.VERSION_CODES.CUR_DEVELOPMENT, CATEGORY_GAME, true);

@@ -2673,12 +2675,13 @@ public class ActivityRecordTests extends WindowTestsBase {
    }

    private void assertSetOrientation(int targetSdk, int category, boolean expectRotate) {
        final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build();
        activity.mTargetSdk = targetSdk;
        final String packageName = targetSdk <= Build.VERSION_CODES.VANILLA_ICE_CREAM
                ? mContext.getPackageName() // WmTests uses legacy sdk.
                : null; // Simulate CUR_DEVELOPMENT by invalid package (see PlatformCompat).
        final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true)
                .setComponent(getUniqueComponentName(packageName)).build();
        activity.info.applicationInfo.category = category;

        activity.setVisible(true);

        // Assert orientation is unspecified to start.
        assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, activity.getOrientation());

+2 −0
Original line number Diff line number Diff line
@@ -307,6 +307,8 @@ class AppCompatActivityRobot {
    void createNewTaskWithBaseActivity() {
        final Task newTask = new WindowTestsBase.TaskBuilder(mSupervisor)
                .setCreateActivity(true)
                // Respect "@ChangeId" according to test package's target sdk.
                .setPackage(mAtm.mContext.getPackageName())
                .setDisplay(mDisplayContent).build();
        mTaskStack.push(newTask);
        pushActivity(newTask.getTopNonFinishingActivity());
+2 −1
Original line number Diff line number Diff line
@@ -1081,7 +1081,8 @@ public class DisplayContentTests extends WindowTestsBase {
        final DisplayRotation dr = dc.getDisplayRotation();
        spyOn(dr);
        doReturn(false).when(dr).useDefaultSettingsProvider();
        final ActivityRecord app = new ActivityBuilder(mAtm).setCreateTask(true).build();
        final ActivityRecord app = new ActivityBuilder(mAtm).setCreateTask(true)
                .setComponent(getUniqueComponentName(mContext.getPackageName())).build();
        app.setOrientation(SCREEN_ORIENTATION_LANDSCAPE, app);

        assertFalse(dc.getRotationReversionController().isAnyOverrideActive());
+6 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import static org.mockito.Mockito.times;
import android.app.servertransaction.RefreshCallbackItem;
import android.app.servertransaction.ResumeActivityItem;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo.ScreenOrientation;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
@@ -592,6 +593,11 @@ public final class DisplayRotationCompatPolicyTests extends WindowTestsBase {
                .setTask(mTask)
                .build();

        spyOn(mActivity.info.applicationInfo);
        // Disable for camera compat.
        doReturn(false).when(mActivity.info.applicationInfo).isChangeEnabled(
                ActivityInfo.UNIVERSAL_RESIZABLE_BY_DEFAULT);

        spyOn(mActivity.mAtmService.getLifecycleManager());
        spyOn(mActivity.mAppCompatController.getAppCompatCameraOverrides());

+1 −6
Original line number Diff line number Diff line
@@ -4827,12 +4827,7 @@ public class SizeCompatTests extends WindowTestsBase {
        assertFalse(mActivity.isUniversalResizeable());

        mDisplayContent.setIgnoreOrientationRequest(true);
        final int swDp = mDisplayContent.getConfiguration().smallestScreenWidthDp;
        if (swDp < WindowManager.LARGE_SCREEN_SMALLEST_SCREEN_WIDTH_DP) {
            final int height = 100 + (int) (mDisplayContent.getDisplayMetrics().density
                    * WindowManager.LARGE_SCREEN_SMALLEST_SCREEN_WIDTH_DP);
            resizeDisplay(mDisplayContent, 100 + height, height);
        }
        makeDisplayLargeScreen(mDisplayContent);
        assertTrue(mActivity.isUniversalResizeable());
    }

Loading