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

Commit e7101f42 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Make UserManagerServiceTest use a single way to set flags" into main

parents fe45a4d7 5f435d71
Loading
Loading
Loading
Loading
+74 −43
Original line number Diff line number Diff line
@@ -19,6 +19,11 @@ import static android.content.pm.PackageManager.FEATURE_AUTOMOTIVE;
import static android.content.pm.PackageManager.FEATURE_EMBEDDED;
import static android.content.pm.PackageManager.FEATURE_LEANBACK;
import static android.content.pm.PackageManager.FEATURE_WATCH;
import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION;
import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES;
import static android.multiuser.Flags.FLAG_LOGOUT_USER_API;
import static android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE;
import static android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE;
import static android.os.UserManager.DISALLOW_OUTGOING_CALLS;
import static android.os.UserManager.DISALLOW_SMS;
import static android.os.UserManager.DISALLOW_USER_SWITCH;
@@ -54,7 +59,6 @@ import android.content.Context;
import android.content.pm.PackageManagerInternal;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.multiuser.Flags;
import android.os.PowerManager;
import android.os.ServiceSpecificException;
import android.os.SystemProperties;
@@ -613,9 +617,8 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({FLAG_ALLOW_PRIVATE_PROFILE, FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    public void testAutoLockPrivateProfile() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        int mainUser = mUms.getMainUserId();
        assumeTrue(mUms.canAddPrivateProfile(mainUser));
        UserManagerService mSpiedUms = spy(mUms);
@@ -634,10 +637,12 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
    })
    public void testAutoLockOnDeviceLockForPrivateProfile() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
        int mainUser = mUms.getMainUserId();
        assumeTrue(mUms.canAddPrivateProfile(mainUser));
        UserManagerService mSpiedUms = spy(mUms);
@@ -657,10 +662,12 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
    })
    public void testAutoLockOnDeviceLockForPrivateProfile_keyguardUnlocked() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
        assumeTrue(mUms.canAddPrivateProfile(0));
        UserManagerService mSpiedUms = spy(mUms);
        UserInfo privateProfileUser =
@@ -677,10 +684,9 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({FLAG_ALLOW_PRIVATE_PROFILE, FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    @DisableFlags(FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE)
    public void testAutoLockOnDeviceLockForPrivateProfile_flagDisabled() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        mSetFlagsRule.disableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
        int mainUser = mUms.getMainUserId();
        assumeTrue(mUms.canAddPrivateProfile(mainUser));
        UserManagerService mSpiedUms = spy(mUms);
@@ -699,10 +705,12 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
    })
    public void testAutoLockAfterInactityForPrivateProfile() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
        int mainUser = mUms.getMainUserId();
        assumeTrue(mUms.canAddPrivateProfile(mainUser));
        UserManagerService mSpiedUms = spy(mUms);
@@ -723,11 +731,12 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
    })
    public void testSetOrUpdateAutoLockPreference_noPrivateProfile() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);

        mUms.setOrUpdateAutoLockPreferenceForPrivateProfile(
                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_AFTER_INACTIVITY);

@@ -738,10 +747,12 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
    })
    public void testSetOrUpdateAutoLockPreference() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
        int mainUser = mUms.getMainUserId();
        assumeTrue(mUms.canAddPrivateProfile(mainUser));
        mUms.createProfileForUserEvenWhenDisallowedWithThrow(PRIVATE_PROFILE_NAME,
@@ -792,10 +803,12 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
        android.multiuser.Flags.FLAG_ENABLE_HIDING_PROFILES
    })
    public void testGetProfileIdsExcludingHidden() {
        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_HIDING_PROFILES);
        assumeTrue(mUms.canAddPrivateProfile(0));
        UserInfo privateProfileUser =
                mUms.createProfileForUserEvenWhenDisallowedWithThrow("TestPrivateProfile",
@@ -806,8 +819,11 @@ public final class UserManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    @RequiresFlagsEnabled({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
    })
    public void testCreatePrivateProfileOnHeadlessSystemUser_shouldAllowCreation() {
        UserManagerService mSpiedUms = spy(mUms);
        assumeTrue(mUms.isHeadlessSystemUserMode());
@@ -819,8 +835,11 @@ public final class UserManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    @RequiresFlagsEnabled({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
    })
    public void testCreatePrivateProfileOnSecondaryUser_shouldNotAllowCreation() {
        assumeTrue(mUms.canAddMoreUsersOfType(USER_TYPE_FULL_SECONDARY));
        UserInfo user = mUms.createUserWithThrow(generateLongString(), USER_TYPE_FULL_SECONDARY, 0);
@@ -831,8 +850,11 @@ public final class UserManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    @RequiresFlagsEnabled({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
    })
    public void testCreatePrivateProfileOnAutoDevices_shouldNotAllowCreation() {
        doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_AUTOMOTIVE), anyInt());
        int mainUser = mUms.getMainUserId();
@@ -843,8 +865,11 @@ public final class UserManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    @RequiresFlagsEnabled({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
    })
    public void testCreatePrivateProfileOnTV_shouldNotAllowCreation() {
        doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_LEANBACK), anyInt());
        int mainUser = mUms.getMainUserId();
@@ -855,8 +880,11 @@ public final class UserManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    @RequiresFlagsEnabled({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
    })
    public void testCreatePrivateProfileOnEmbedded_shouldNotAllowCreation() {
        doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_EMBEDDED), anyInt());
        int mainUser = mUms.getMainUserId();
@@ -867,8 +895,11 @@ public final class UserManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
    @RequiresFlagsEnabled({
        FLAG_ALLOW_PRIVATE_PROFILE,
        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
    })
    public void testCreatePrivateProfileOnWatch_shouldNotAllowCreation() {
        doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_WATCH), anyInt());
        int mainUser = mUms.getMainUserId();
@@ -922,7 +953,7 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
    @EnableFlags(FLAG_LOGOUT_USER_API)
    public void testGetUserLogoutability_HsumAndInteractiveHeadlessSystem_UserCanLogout()
            throws Exception {
        setSystemUserHeadless(true);
@@ -938,7 +969,7 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
    @EnableFlags(FLAG_LOGOUT_USER_API)
    public void testGetUserLogoutability_HsumAndNonInteractiveHeadlessSystem_UserCannotLogout()
            throws Exception {
        setSystemUserHeadless(true);
@@ -953,7 +984,7 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
    @EnableFlags(FLAG_LOGOUT_USER_API)
    public void testGetUserLogoutability_Hsum_SystemUserCannotLogout() throws Exception {
        setSystemUserHeadless(true);
        mockCurrentUser(UserHandle.USER_SYSTEM);
@@ -962,7 +993,7 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
    @EnableFlags(FLAG_LOGOUT_USER_API)
    public void testGetUserLogoutability_NonHsum_SystemUserCannotLogout() throws Exception {
        setSystemUserHeadless(false);
        mockCurrentUser(UserHandle.USER_SYSTEM);
@@ -972,7 +1003,7 @@ public final class UserManagerServiceTest {
    }

    @Test
    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
    @EnableFlags(FLAG_LOGOUT_USER_API)
    public void testGetUserLogoutability_CannotSwitch_CannotLogout() throws Exception {
        setSystemUserHeadless(true);
        addUser(USER_ID);
@@ -985,7 +1016,7 @@ public final class UserManagerServiceTest {
    }

    @Test
    @DisableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
    @DisableFlags(FLAG_LOGOUT_USER_API)
    public void testGetUserLogoutability_LogoutDisabled() throws Exception {
        assertThrows(UnsupportedOperationException.class, () -> mUms.getUserLogoutability(USER_ID));
    }