diff options
author | 2025-03-24 10:34:25 -0700 | |
---|---|---|
committer | 2025-03-24 10:34:25 -0700 | |
commit | c86ada05f34a5a8969c4137233ec901430e7135f (patch) | |
tree | 52b920d922eb390318bc28b15d23794b4c99677e | |
parent | 21263774144649b838c7f2f2b0a4e58ecea370bc (diff) | |
parent | 3a5691d8971f49c6b51c9d884ec05874679a2859 (diff) |
Merge "Cleaned up UserManagerServiceUserInfoTest:" into main
-rw-r--r-- | core/tests/coretests/src/android/content/pm/UserInfoTest.java | 110 | ||||
-rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java | 76 |
2 files changed, 110 insertions, 76 deletions
diff --git a/core/tests/coretests/src/android/content/pm/UserInfoTest.java b/core/tests/coretests/src/android/content/pm/UserInfoTest.java index a05de418851d..4e8ada5502ac 100644 --- a/core/tests/coretests/src/android/content/pm/UserInfoTest.java +++ b/core/tests/coretests/src/android/content/pm/UserInfoTest.java @@ -17,6 +17,7 @@ package android.content.pm; import static android.content.pm.UserInfo.FLAG_DEMO; +import static android.content.pm.UserInfo.FLAG_DISABLED; import static android.content.pm.UserInfo.FLAG_FULL; import static android.content.pm.UserInfo.FLAG_GUEST; import static android.content.pm.UserInfo.FLAG_MAIN; @@ -26,7 +27,9 @@ import static android.os.UserManager.USER_TYPE_FULL_RESTRICTED; import static android.os.UserManager.USER_TYPE_FULL_SYSTEM; import static android.os.UserManager.USER_TYPE_SYSTEM_HEADLESS; +import android.annotation.UserIdInt; import android.content.pm.UserInfo.UserInfoFlag; +import android.os.Parcel; import android.os.UserHandle; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; @@ -121,6 +124,70 @@ public final class UserInfoTest { createTestUserInfo(USER_TYPE_SYSTEM_HEADLESS, FLAG_SYSTEM)); } + @Test + public void testParcelUnparcelUserInfo() throws Exception { + UserInfo info = createUserWithAllFields(); + + Parcel out = Parcel.obtain(); + info.writeToParcel(out, 0); + byte[] data = out.marshall(); + out.recycle(); + + Parcel in = Parcel.obtain(); + try { + in.unmarshall(data, 0, data.length); + in.setDataPosition(0); + UserInfo read = UserInfo.CREATOR.createFromParcel(in); + assertUserInfoEquals(info, read, /* parcelCopy= */ true); + } finally { + in.recycle(); + } + } + + @Test + public void testCopyConstructor() throws Exception { + UserInfo info = createUserWithAllFields(); + + UserInfo copy = new UserInfo(info); + + assertUserInfoEquals(info, copy, /* parcelCopy= */ false); + } + + @Test + public void testSupportSwitchTo_partial() throws Exception { + UserInfo userInfo = createUser(100, FLAG_FULL, /* userType= */ null); + userInfo.partial = true; + expect.withMessage("Supports switch to a partial user").that(userInfo.supportsSwitchTo()) + .isFalse(); + } + + @Test + public void testSupportSwitchTo_disabled() throws Exception { + UserInfo userInfo = createUser(100, FLAG_DISABLED, /* userType= */ null); + expect.withMessage("Supports switch to a DISABLED user").that(userInfo.supportsSwitchTo()) + .isFalse(); + } + + @Test + public void testSupportSwitchTo_preCreated() throws Exception { + UserInfo userInfo = createUser(100, FLAG_FULL, /* userType= */ null); + userInfo.preCreated = true; + expect.withMessage("Supports switch to a pre-created user") + .that(userInfo.supportsSwitchTo()) + .isFalse(); + + userInfo.preCreated = false; + expect.withMessage("Supports switch to a full, real user").that(userInfo.supportsSwitchTo()) + .isTrue(); + } + + @Test + public void testSupportSwitchTo_profile() throws Exception { + UserInfo userInfo = createUser(100, FLAG_PROFILE, /* userType= */ null); + expect.withMessage("Supports switch to a profile").that(userInfo.supportsSwitchTo()) + .isFalse(); + } + /** * Creates a new {@link UserInfo} with id {@code 10}, name {@code Test}, and the given * {@code flags}. @@ -137,6 +204,49 @@ public final class UserInfoTest { return new UserInfo(10, "Test", /* iconPath= */ null, flags, userType); } + /** Creates a UserInfo with the given flags and userType. */ + private UserInfo createUser(@UserIdInt int userId, @UserInfoFlag int flags, String userType) { + return new UserInfo(userId, "A Name", "A path", flags, userType); + } + + private UserInfo createUserWithAllFields() { + UserInfo user = new UserInfo(/*id= */ 21, "A Name", "A path", /*flags*/ 0x0ff0ff, "A type"); + user.serialNumber = 5; + user.creationTime = 4L << 32; + user.lastLoggedInTime = 5L << 32; + user.lastLoggedInFingerprint = "afingerprint"; + user.profileGroupId = 45; + user.restrictedProfileParentId = 4; + user.profileBadge = 2; + user.partial = true; + user.guestToRemove = true; + user.preCreated = true; + user.convertedFromPreCreated = true; + return user; + } + + private void assertUserInfoEquals(UserInfo one, UserInfo two, boolean parcelCopy) { + expect.withMessage("Id").that(two.id).isEqualTo(one.id); + expect.withMessage("Name").that(two.name).isEqualTo(one.name); + expect.withMessage("Icon path").that(two.iconPath).isEqualTo(one.iconPath); + expect.withMessage("Flags").that(two.flags).isEqualTo(one.flags); + expect.withMessage("UserType").that(two.userType).isEqualTo(one.userType); + expect.withMessage("profile group").that(two.profileGroupId).isEqualTo(one.profileGroupId); + expect.withMessage("restricted profile parent").that(two.restrictedProfileParentId) + .isEqualTo(one.restrictedProfileParentId); + expect.withMessage("profile badge").that(two.profileBadge).isEqualTo(one.profileBadge); + expect.withMessage("partial").that(two.partial).isEqualTo(one.partial); + expect.withMessage("guestToRemove").that(two.guestToRemove).isEqualTo(one.guestToRemove); + expect.withMessage("preCreated").that(two.preCreated).isEqualTo(one.preCreated); + if (parcelCopy) { + expect.withMessage("convertedFromPreCreated").that(two.convertedFromPreCreated) + .isFalse(); + } else { + expect.withMessage("convertedFromPreCreated").that(two.convertedFromPreCreated) + .isEqualTo(one.convertedFromPreCreated); + } + } + private void expectCanHaveProfile(String description, UserInfo user) { expect.withMessage("canHaveProfile() on %s (%s)", description, user) .that(user.canHaveProfile()).isTrue(); diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java index 06a82d36f0f8..1bc2242c9d9c 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java @@ -16,12 +16,10 @@ package com.android.server.pm; import static android.content.pm.UserInfo.FLAG_DEMO; -import static android.content.pm.UserInfo.FLAG_DISABLED; import static android.content.pm.UserInfo.FLAG_EPHEMERAL; import static android.content.pm.UserInfo.FLAG_FULL; import static android.content.pm.UserInfo.FLAG_GUEST; import static android.content.pm.UserInfo.FLAG_INITIALIZED; -import static android.content.pm.UserInfo.FLAG_MAIN; import static android.content.pm.UserInfo.FLAG_MANAGED_PROFILE; import static android.content.pm.UserInfo.FLAG_PROFILE; import static android.content.pm.UserInfo.FLAG_RESTRICTED; @@ -43,7 +41,6 @@ import android.content.pm.UserInfo.UserInfoFlag; import android.content.res.Resources; import android.multiuser.Flags; import android.os.Looper; -import android.os.Parcel; import android.os.UserHandle; import android.os.UserManager; import android.platform.test.annotations.Presubmit; @@ -183,33 +180,6 @@ public final class UserManagerServiceUserInfoTest { } @Test - public void testParcelUnparcelUserInfo() throws Exception { - UserInfo info = createUser(); - - Parcel out = Parcel.obtain(); - info.writeToParcel(out, 0); - byte[] data = out.marshall(); - out.recycle(); - - Parcel in = Parcel.obtain(); - in.unmarshall(data, 0, data.length); - in.setDataPosition(0); - UserInfo read = UserInfo.CREATOR.createFromParcel(in); - in.recycle(); - - assertUserInfoEquals(info, read, /* parcelCopy= */ true); - } - - @Test - public void testCopyConstructor() throws Exception { - UserInfo info = createUser(); - - UserInfo copy = new UserInfo(info); - - assertUserInfoEquals(info, copy, /* parcelCopy= */ false); - } - - @Test public void testGetUserName() throws Exception { expect.withMessage("System user name is set") .that(mUserManagerService.isUserNameSet(UserHandle.USER_SYSTEM)).isFalse(); @@ -245,52 +215,6 @@ public final class UserManagerServiceUserInfoTest { .that(mUserManagerService.isUserOfType(testId, typeName)).isTrue(); } - /** Test UserInfo.supportsSwitchTo() for partial user. */ - @Test - public void testSupportSwitchTo_partial() throws Exception { - UserInfo userInfo = createUser(100, FLAG_FULL, /* userType= */ null); - userInfo.partial = true; - expect.withMessage("Supports switch to a partial user").that(userInfo.supportsSwitchTo()) - .isFalse(); - } - - /** Test UserInfo.supportsSwitchTo() for disabled user. */ - @Test - public void testSupportSwitchTo_disabled() throws Exception { - UserInfo userInfo = createUser(100, FLAG_DISABLED, /* userType= */ null); - expect.withMessage("Supports switch to a DISABLED user").that(userInfo.supportsSwitchTo()) - .isFalse(); - } - - /** Test UserInfo.supportsSwitchTo() for precreated users. */ - @Test - public void testSupportSwitchTo_preCreated() throws Exception { - UserInfo userInfo = createUser(100, FLAG_FULL, /* userType= */ null); - userInfo.preCreated = true; - expect.withMessage("Supports switch to a pre-created user") - .that(userInfo.supportsSwitchTo()) - .isFalse(); - - userInfo.preCreated = false; - expect.withMessage("Supports switch to a full, real user").that(userInfo.supportsSwitchTo()) - .isTrue(); - } - - /** Test UserInfo.supportsSwitchTo() for profiles. */ - @Test - public void testSupportSwitchTo_profile() throws Exception { - UserInfo userInfo = createUser(100, FLAG_PROFILE, /* userType= */ null); - expect.withMessage("Supports switch to a profile").that(userInfo.supportsSwitchTo()) - .isFalse(); - } - - /** Test UserInfo.canHaveProfile for main user */ - @Test - public void testCanHaveProfile() throws Exception { - UserInfo userInfo = createUser(100, FLAG_FULL | FLAG_MAIN, /* userType= */ null); - expect.withMessage("Main users can have profile").that(userInfo.canHaveProfile()).isTrue(); - } - /** Tests upgradeIfNecessaryLP (but without locking) for upgrading from version 8 to 9+. */ @Test public void testUpgradeIfNecessaryLP_9() { |