Loading services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceMockedTest.java +45 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION; import static android.multiuser.Flags.FLAG_DEMOTE_MAIN_USER; import static android.multiuser.Flags.FLAG_DISALLOW_REMOVING_LAST_ADMIN_USER; import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES; import static android.multiuser.Flags.FLAG_HSU_NOT_ADMIN; import static android.multiuser.Flags.FLAG_LOGOUT_USER_API; import static android.multiuser.Flags.FLAG_UNICORN_MODE_REFACTORING_FOR_HSUM_READ_ONLY; import static android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE; Loading Loading @@ -1626,6 +1627,13 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_nonHsum_targetNotSystemUser_returnsFalse_hsuNotAdmin() { testIsLastFullAdminUser_nonHsum_targetNotSystemUser_returnsFalse(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_nonHsum_targetNotSystemUser_returnsFalse() { setSystemUserHeadless(false); addAdminUser(USER_ID); Loading Loading @@ -1706,6 +1714,14 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsOtherFullAdmin_returnsFalse_fl() { testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsOtherFullAdmin_returnsFalse(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsOtherFullAdmin_returnsFalse() { // Ensure system user (0) is full admin Loading @@ -1717,6 +1733,13 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsSystemUser_returnsTrue_fl() { testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsSystemUser_returnsTrue(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsSystemUser_returnsTrue() { // Ensure system user (0) is full admin setSystemUserHeadless(false); Loading @@ -1728,6 +1751,13 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_targetAdmin_otherFullAdminIsSystemUser_returnsFalse_fl() { testIsLastFullAdminUser_targetAdmin_otherFullAdminIsSystemUser_returnsFalse(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_targetAdmin_otherFullAdminIsSystemUser_returnsFalse() { // Ensure system user (0) is full admin setSystemUserHeadless(false); Loading Loading @@ -1827,7 +1857,15 @@ public final class UserManagerServiceMockedTest { } @Test public void testRevokeUserAdminFailsForSystemUser() { @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testRevokeUserAdminFailsForSystemUser_nonHsum_hsuNotAdmin() { testRevokeUserAdminFailsForSystemUser_nonHsum(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testRevokeUserAdminFailsForSystemUser_nonHsum() { setSystemUserHeadless(false); mUms.revokeUserAdmin(UserHandle.USER_SYSTEM); assertThat(mUsers.get(UserHandle.USER_SYSTEM).info.isAdmin()).isTrue(); Loading Loading @@ -2239,12 +2277,16 @@ public final class UserManagerServiceMockedTest { } private void setSystemUserHeadless(boolean headless) { // Whether system user has FLAG_ADMIN is determined before test is run, based on // FLAG_HSU_NOT_ADMIN. If individual test sets this feature flag on/off, we must explicitly // set the FLAG_ADMIN for system user accordingly. int extraFlags = android.multiuser.Flags.hsuNotAdmin() ? FLAG_ADMIN : 0; UserData systemUser = mUsers.get(USER_SYSTEM); if (headless) { systemUser.info.flags &= ~UserInfo.FLAG_FULL; systemUser.info.flags &= ~(UserInfo.FLAG_FULL | extraFlags); systemUser.info.userType = UserManager.USER_TYPE_SYSTEM_HEADLESS; } else { systemUser.info.flags |= UserInfo.FLAG_FULL; systemUser.info.flags |= UserInfo.FLAG_FULL | extraFlags; systemUser.info.userType = UserManager.USER_TYPE_FULL_SYSTEM; } doReturn(headless).when(() -> UserManager.isHeadlessSystemUserMode()); Loading Loading
services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceMockedTest.java +45 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION; import static android.multiuser.Flags.FLAG_DEMOTE_MAIN_USER; import static android.multiuser.Flags.FLAG_DISALLOW_REMOVING_LAST_ADMIN_USER; import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES; import static android.multiuser.Flags.FLAG_HSU_NOT_ADMIN; import static android.multiuser.Flags.FLAG_LOGOUT_USER_API; import static android.multiuser.Flags.FLAG_UNICORN_MODE_REFACTORING_FOR_HSUM_READ_ONLY; import static android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE; Loading Loading @@ -1626,6 +1627,13 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_nonHsum_targetNotSystemUser_returnsFalse_hsuNotAdmin() { testIsLastFullAdminUser_nonHsum_targetNotSystemUser_returnsFalse(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_nonHsum_targetNotSystemUser_returnsFalse() { setSystemUserHeadless(false); addAdminUser(USER_ID); Loading Loading @@ -1706,6 +1714,14 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsOtherFullAdmin_returnsFalse_fl() { testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsOtherFullAdmin_returnsFalse(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsOtherFullAdmin_returnsFalse() { // Ensure system user (0) is full admin Loading @@ -1717,6 +1733,13 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsSystemUser_returnsTrue_fl() { testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsSystemUser_returnsTrue(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_systemUserIsFullAdmin_targetIsSystemUser_returnsTrue() { // Ensure system user (0) is full admin setSystemUserHeadless(false); Loading @@ -1728,6 +1751,13 @@ public final class UserManagerServiceMockedTest { } @Test @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_targetAdmin_otherFullAdminIsSystemUser_returnsFalse_fl() { testIsLastFullAdminUser_targetAdmin_otherFullAdminIsSystemUser_returnsFalse(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testIsLastFullAdminUser_targetAdmin_otherFullAdminIsSystemUser_returnsFalse() { // Ensure system user (0) is full admin setSystemUserHeadless(false); Loading Loading @@ -1827,7 +1857,15 @@ public final class UserManagerServiceMockedTest { } @Test public void testRevokeUserAdminFailsForSystemUser() { @EnableFlags(FLAG_HSU_NOT_ADMIN) public void testRevokeUserAdminFailsForSystemUser_nonHsum_hsuNotAdmin() { testRevokeUserAdminFailsForSystemUser_nonHsum(); } @Test @DisableFlags(FLAG_HSU_NOT_ADMIN) public void testRevokeUserAdminFailsForSystemUser_nonHsum() { setSystemUserHeadless(false); mUms.revokeUserAdmin(UserHandle.USER_SYSTEM); assertThat(mUsers.get(UserHandle.USER_SYSTEM).info.isAdmin()).isTrue(); Loading Loading @@ -2239,12 +2277,16 @@ public final class UserManagerServiceMockedTest { } private void setSystemUserHeadless(boolean headless) { // Whether system user has FLAG_ADMIN is determined before test is run, based on // FLAG_HSU_NOT_ADMIN. If individual test sets this feature flag on/off, we must explicitly // set the FLAG_ADMIN for system user accordingly. int extraFlags = android.multiuser.Flags.hsuNotAdmin() ? FLAG_ADMIN : 0; UserData systemUser = mUsers.get(USER_SYSTEM); if (headless) { systemUser.info.flags &= ~UserInfo.FLAG_FULL; systemUser.info.flags &= ~(UserInfo.FLAG_FULL | extraFlags); systemUser.info.userType = UserManager.USER_TYPE_SYSTEM_HEADLESS; } else { systemUser.info.flags |= UserInfo.FLAG_FULL; systemUser.info.flags |= UserInfo.FLAG_FULL | extraFlags; systemUser.info.userType = UserManager.USER_TYPE_FULL_SYSTEM; } doReturn(headless).when(() -> UserManager.isHeadlessSystemUserMode()); Loading