summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/com/android/documentsui/UserManagerStateTest.java644
1 files changed, 368 insertions, 276 deletions
diff --git a/tests/unit/com/android/documentsui/UserManagerStateTest.java b/tests/unit/com/android/documentsui/UserManagerStateTest.java
index 6f869dcd5..9d629c574 100644
--- a/tests/unit/com/android/documentsui/UserManagerStateTest.java
+++ b/tests/unit/com/android/documentsui/UserManagerStateTest.java
@@ -23,8 +23,11 @@ import static com.android.documentsui.DevicePolicyResources.Strings.WORK_TAB;
import static com.google.common.truth.Truth.assertWithMessage;
+import static org.junit.Assume.assumeTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -64,16 +67,37 @@ import java.util.Map;
@SdkSuppress(minSdkVersion = 31, codeName = "S")
public class UserManagerStateTest {
+ /**
+ * Class that exposes the @hide api [targetUserId] in order to supply proper values for
+ * reflection based code that is inspecting this field.
+ *
+ * @property targetUserId
+ */
+ private static class ReflectedResolveInfo extends ResolveInfo {
+
+ public int targetUserId;
+
+ ReflectedResolveInfo(int targetUserId) {
+ this.targetUserId = targetUserId;
+ }
+
+ @Override
+ public boolean isCrossProfileIntentForwarderActivity() {
+ return true;
+ }
+ }
+
private static final String PERSONAL = "Personal";
private static final String WORK = "Work";
private static final String PRIVATE = "Private";
private static final String PACKAGE_NAME = "com.android.documentsui";
/**
- * Assume that the current user is SYSTEM_USER.
- * For HSUM targets, the primary user is set as the system user.
+ * Assume that the current user is SYSTEM_USER. For HSUM targets, the primary user is set as the
+ * system user.
*/
private final int mCurrentUserId = UserHandle.myUserId();
+
private final UserHandle mPrimaryUser = UserHandle.of(mCurrentUserId);
private final UserHandle mSystemUser = mPrimaryUser == null ? UserHandle.SYSTEM : mPrimaryUser;
private final UserHandle mManagedUser = UserHandle.of(mCurrentUserId + 10);
@@ -81,12 +105,15 @@ public class UserManagerStateTest {
private final UserHandle mOtherUser = UserHandle.of(mCurrentUserId + 30);
private final UserHandle mNormalUser = UserHandle.of(mCurrentUserId + 40);
- private final ResolveInfo mMockInfo1 = mock(ResolveInfo.class);
- private final ResolveInfo mMockInfo2 = mock(ResolveInfo.class);
- private final ResolveInfo mMockInfo3 = mock(ResolveInfo.class);
+ private final ResolveInfo mMockInfoPrimaryUser =
+ new ReflectedResolveInfo(mPrimaryUser.getIdentifier());
+ private final ResolveInfo mMockInfoManagedUser =
+ new ReflectedResolveInfo(mManagedUser.getIdentifier());
+ private final ResolveInfo mMockInfoPrivateUser =
+ new ReflectedResolveInfo(mPrivateUser.getIdentifier());
private final Context mMockContext = mock(Context.class);
- private final Intent mMockIntent = mock(Intent.class);
+ private final Intent mMockIntent = new Intent();
private final UserManager mMockUserManager = UserManagers.create();
private final PackageManager mMockPackageManager = mock(PackageManager.class);
private final DevicePolicyManager mDevicePolicyManager = mock(DevicePolicyManager.class);
@@ -95,6 +122,8 @@ public class UserManagerStateTest {
@Before
public void setup() throws Exception {
when(mMockContext.getApplicationContext()).thenReturn(mMockContext);
+ when(mMockContext.createContextAsUser(any(UserHandle.class), anyInt()))
+ .thenReturn(mMockContext);
when(mMockUserManager.isManagedProfile(mManagedUser.getIdentifier())).thenReturn(true);
when(mMockUserManager.isManagedProfile(mSystemUser.getIdentifier())).thenReturn(false);
@@ -102,54 +131,60 @@ public class UserManagerStateTest {
when(mMockUserManager.isManagedProfile(mOtherUser.getIdentifier())).thenReturn(false);
if (SdkLevel.isAtLeastV()) {
- UserProperties systemUserProperties = new UserProperties.Builder()
- .setShowInSharingSurfaces(UserProperties.SHOW_IN_SHARING_SURFACES_SEPARATE)
- .setCrossProfileContentSharingStrategy(
- UserProperties.CROSS_PROFILE_CONTENT_SHARING_NO_DELEGATION)
- .build();
- UserProperties managedUserProperties = new UserProperties.Builder()
- .setShowInSharingSurfaces(UserProperties.SHOW_IN_SHARING_SURFACES_SEPARATE)
- .setCrossProfileContentSharingStrategy(
- UserProperties.CROSS_PROFILE_CONTENT_SHARING_NO_DELEGATION)
- .setShowInQuietMode(UserProperties.SHOW_IN_QUIET_MODE_PAUSED)
- .build();
- UserProperties privateUserProperties = new UserProperties.Builder()
- .setShowInSharingSurfaces(UserProperties.SHOW_IN_SHARING_SURFACES_SEPARATE)
- .setCrossProfileContentSharingStrategy(
- UserProperties.CROSS_PROFILE_CONTENT_SHARING_DELEGATE_FROM_PARENT)
- .setShowInQuietMode(UserProperties.SHOW_IN_QUIET_MODE_HIDDEN)
- .build();
- UserProperties otherUserProperties = new UserProperties.Builder()
- .setShowInSharingSurfaces(UserProperties.SHOW_IN_SHARING_SURFACES_WITH_PARENT)
- .setCrossProfileContentSharingStrategy(
- UserProperties.CROSS_PROFILE_CONTENT_SHARING_DELEGATE_FROM_PARENT)
- .build();
- UserProperties normalUserProperties = new UserProperties.Builder()
- .setShowInSharingSurfaces(UserProperties.SHOW_IN_SHARING_SURFACES_NO)
- .setCrossProfileContentSharingStrategy(
- UserProperties.CROSS_PROFILE_CONTENT_SHARING_DELEGATE_FROM_PARENT)
- .build();
+ UserProperties systemUserProperties =
+ new UserProperties.Builder()
+ .setShowInSharingSurfaces(
+ UserProperties.SHOW_IN_SHARING_SURFACES_SEPARATE)
+ .setCrossProfileContentSharingStrategy(
+ UserProperties.CROSS_PROFILE_CONTENT_SHARING_NO_DELEGATION)
+ .build();
+ UserProperties managedUserProperties =
+ new UserProperties.Builder()
+ .setShowInSharingSurfaces(
+ UserProperties.SHOW_IN_SHARING_SURFACES_SEPARATE)
+ .setCrossProfileContentSharingStrategy(
+ UserProperties.CROSS_PROFILE_CONTENT_SHARING_NO_DELEGATION)
+ .setShowInQuietMode(UserProperties.SHOW_IN_QUIET_MODE_PAUSED)
+ .build();
+ UserProperties privateUserProperties =
+ new UserProperties.Builder()
+ .setShowInSharingSurfaces(
+ UserProperties.SHOW_IN_SHARING_SURFACES_SEPARATE)
+ .setCrossProfileContentSharingStrategy(
+ UserProperties
+ .CROSS_PROFILE_CONTENT_SHARING_DELEGATE_FROM_PARENT)
+ .setShowInQuietMode(UserProperties.SHOW_IN_QUIET_MODE_HIDDEN)
+ .build();
+ UserProperties otherUserProperties =
+ new UserProperties.Builder()
+ .setShowInSharingSurfaces(
+ UserProperties.SHOW_IN_SHARING_SURFACES_WITH_PARENT)
+ .setCrossProfileContentSharingStrategy(
+ UserProperties
+ .CROSS_PROFILE_CONTENT_SHARING_DELEGATE_FROM_PARENT)
+ .build();
+ UserProperties normalUserProperties =
+ new UserProperties.Builder()
+ .setShowInSharingSurfaces(UserProperties.SHOW_IN_SHARING_SURFACES_NO)
+ .setCrossProfileContentSharingStrategy(
+ UserProperties
+ .CROSS_PROFILE_CONTENT_SHARING_DELEGATE_FROM_PARENT)
+ .build();
when(mMockUserManager.getUserProperties(mSystemUser)).thenReturn(systemUserProperties);
- when(mMockUserManager.getUserProperties(mManagedUser)).thenReturn(
- managedUserProperties);
- when(mMockUserManager.getUserProperties(mPrivateUser)).thenReturn(
- privateUserProperties);
+ when(mMockUserManager.getUserProperties(mManagedUser))
+ .thenReturn(managedUserProperties);
+ when(mMockUserManager.getUserProperties(mPrivateUser))
+ .thenReturn(privateUserProperties);
when(mMockUserManager.getUserProperties(mOtherUser)).thenReturn(otherUserProperties);
when(mMockUserManager.getUserProperties(mNormalUser)).thenReturn(normalUserProperties);
}
when(mMockUserManager.getProfileParent(mSystemUser)).thenReturn(null);
- when(mMockUserManager.getProfileParent(mManagedUser)).thenReturn(mSystemUser);
- when(mMockUserManager.getProfileParent(mPrivateUser)).thenReturn(mSystemUser);
- when(mMockUserManager.getProfileParent(mOtherUser)).thenReturn(mSystemUser);
+ when(mMockUserManager.getProfileParent(mManagedUser)).thenReturn(mPrimaryUser);
+ when(mMockUserManager.getProfileParent(mPrivateUser)).thenReturn(mPrimaryUser);
+ when(mMockUserManager.getProfileParent(mOtherUser)).thenReturn(mPrimaryUser);
when(mMockUserManager.getProfileParent(mNormalUser)).thenReturn(null);
- if (SdkLevel.isAtLeastR()) {
- when(mMockInfo1.isCrossProfileIntentForwarderActivity()).thenReturn(true);
- when(mMockInfo2.isCrossProfileIntentForwarderActivity()).thenReturn(false);
- when(mMockInfo3.isCrossProfileIntentForwarderActivity()).thenReturn(false);
- }
-
when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
when(mMockContext.getSystemServiceName(UserManager.class)).thenReturn("mMockUserManager");
when(mMockContext.getSystemService(UserManager.class)).thenReturn(mMockUserManager);
@@ -157,22 +192,25 @@ public class UserManagerStateTest {
.thenReturn(Context.DEVICE_POLICY_SERVICE);
when(mMockContext.getSystemService(Context.DEVICE_POLICY_SERVICE))
.thenReturn(mDevicePolicyManager);
- when(mMockContext.getResources()).thenReturn(
- InstrumentationRegistry.getInstrumentation().getTargetContext().getResources());
+ when(mMockContext.getResources())
+ .thenReturn(
+ InstrumentationRegistry.getInstrumentation()
+ .getTargetContext()
+ .getResources());
when(mMockContext.getPackageName()).thenReturn(PACKAGE_NAME);
- when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mSystemUser)).thenReturn(
- mMockContext);
- when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mManagedUser)).thenReturn(
- mMockContext);
- when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mPrivateUser)).thenReturn(
- mMockContext);
- when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mOtherUser)).thenReturn(
- mMockContext);
- when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mNormalUser)).thenReturn(
- mMockContext);
- when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mPrimaryUser)).thenReturn(
- mMockContext);
+ when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mSystemUser))
+ .thenReturn(mMockContext);
+ when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mManagedUser))
+ .thenReturn(mMockContext);
+ when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mPrivateUser))
+ .thenReturn(mMockContext);
+ when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mOtherUser))
+ .thenReturn(mMockContext);
+ when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mNormalUser))
+ .thenReturn(mMockContext);
+ when(mMockContext.createPackageContextAsUser(PACKAGE_NAME, 0, mPrimaryUser))
+ .thenReturn(mMockContext);
}
@Test
@@ -181,48 +219,52 @@ public class UserManagerStateTest {
initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
- .that(mUserManagerState.getUserIds()).containsExactly(UserId.of(mSystemUser));
+ .that(mUserManagerState.getUserIds())
+ .containsExactly(UserId.of(mSystemUser));
}
@Test
public void testGetUserIds_allProfilesCurrentUserSystem_allShowInSharingSurfacesSeparate() {
if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mSystemUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser, mOtherUser,
- mNormalUser));
+ initializeUserManagerState(
+ currentUser,
+ Lists.newArrayList(
+ mSystemUser, mManagedUser, mPrivateUser, mOtherUser, mNormalUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
.that(mUserManagerState.getUserIds())
- .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser),
- UserId.of(mPrivateUser));
+ .containsExactly(
+ UserId.of(mSystemUser), UserId.of(mManagedUser), UserId.of(mPrivateUser));
}
@Test
public void testGetUserIds_allProfilesCurrentUserManaged_allShowInSharingSurfacesSeparate() {
if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mManagedUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser, mOtherUser,
- mNormalUser));
+ initializeUserManagerState(
+ currentUser,
+ Lists.newArrayList(
+ mSystemUser, mManagedUser, mPrivateUser, mOtherUser, mNormalUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
.that(mUserManagerState.getUserIds())
- .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser),
- UserId.of(mPrivateUser));
+ .containsExactly(
+ UserId.of(mSystemUser), UserId.of(mManagedUser), UserId.of(mPrivateUser));
}
@Test
public void testGetUserIds_allProfilesCurrentUserPrivate_allShowInSharingSurfacesSeparate() {
if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mPrivateUser);
- initializeUserManagerState(currentUser,
+ initializeUserManagerState(
+ currentUser,
Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser, mOtherUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
.that(mUserManagerState.getUserIds())
- .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser),
- UserId.of(mPrivateUser));
+ .containsExactly(
+ UserId.of(mSystemUser), UserId.of(mManagedUser), UserId.of(mPrivateUser));
}
@Test
@@ -291,7 +333,8 @@ public class UserManagerStateTest {
@Test
public void testGetUserIds_normalAndOtherUserCurrentUserNormal_returnsCurrentUser() {
- // since both users do not have show in sharing surfaces separate, returns current user
+ // since both users do not have show in sharing surfaces separate, returns
+ // current user
UserId currentUser = UserId.of(mNormalUser);
initializeUserManagerState(currentUser, Lists.newArrayList(mOtherUser, mNormalUser));
@@ -308,7 +351,8 @@ public class UserManagerStateTest {
initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
.that(mUserManagerState.getUserIds())
- .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser)).inOrder();
+ .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser))
+ .inOrder();
}
@Test
@@ -319,66 +363,79 @@ public class UserManagerStateTest {
initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
.that(mUserManagerState.getUserIds())
- .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser)).inOrder();
+ .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser))
+ .inOrder();
}
@Test
public void testGetUserIds_managedAndSystemUserCurrentUserSystem_returnsBothInOrder() {
- // Returns the both if there are system and managed users, regardless of input list order.
+ // Returns the both if there are system and managed users, regardless of input
+ // list order.
if (SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mSystemUser);
initializeUserManagerState(currentUser, Lists.newArrayList(mManagedUser, mSystemUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
.that(mUserManagerState.getUserIds())
- .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser)).inOrder();
+ .containsExactly(UserId.of(mSystemUser), UserId.of(mManagedUser))
+ .inOrder();
}
@Test
public void testGetUserIds_otherAndManagedUserCurrentUserOtherPreV_returnsCurrentUser() {
// When there is no system user, returns the current user.
- // This is a case theoretically can happen but we don't expect. So we return the current
+ // This is a case theoretically can happen but we don't expect. So we return the
+ // current
// user only.
if (SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mOtherUser);
initializeUserManagerState(currentUser, Lists.newArrayList(mOtherUser, mManagedUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
- .that(mUserManagerState.getUserIds()).containsExactly(currentUser);
+ .that(mUserManagerState.getUserIds())
+ .containsExactly(currentUser);
}
@Test
public void testGetUserIds_otherAndManagedUserCurrentUserOtherPostV_returnsManagedUser() {
- // Only the users with show in sharing surfaces separate are eligible to be returned
+ // Only the users with show in sharing surfaces separate are eligible to be
+ // returned
if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mOtherUser);
initializeUserManagerState(currentUser, Lists.newArrayList(mOtherUser, mManagedUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
- .that(mUserManagerState.getUserIds()).containsExactly(UserId.of(mManagedUser));
+ .that(mUserManagerState.getUserIds())
+ .containsExactly(UserId.of(mManagedUser));
}
@Test
public void testGetUserIds_otherAndManagedUserCurrentUserManaged_returnsCurrentUser() {
// When there is no system user, returns the current user.
- // This is a case theoretically can happen, but we don't expect. So we return the current
+ // This is a case theoretically can happen, but we don't expect. So we return
+ // the current
// user only.
UserId currentUser = UserId.of(mManagedUser);
initializeUserManagerState(currentUser, Lists.newArrayList(mOtherUser, mManagedUser));
assertWithMessage("getUserIds returns unexpected list of user ids")
- .that(mUserManagerState.getUserIds()).containsExactly(currentUser);
+ .that(mUserManagerState.getUserIds())
+ .containsExactly(currentUser);
}
@Test
public void testGetUserIds_unsupportedDeviceCurrent_returnsCurrentUser() {
- // This test only tests for Android R or later. This test case always passes before R.
+ // This test only tests for Android R or later. This test case always passes
+ // before R.
if (VersionUtils.isAtLeastR()) {
// When permission is denied, only returns the current user.
when(mMockContext.checkSelfPermission(Manifest.permission.INTERACT_ACROSS_USERS))
.thenReturn(PackageManager.PERMISSION_DENIED);
UserId currentUser = UserId.of(mSystemUser);
- when(mMockUserManager.getUserProfiles()).thenReturn(
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser, mOtherUser));
+ when(mMockUserManager.getUserProfiles())
+ .thenReturn(
+ Lists.newArrayList(
+ mSystemUser, mManagedUser, mPrivateUser, mOtherUser));
mUserManagerState = UserManagerState.create(mMockContext);
assertWithMessage("Unsupported device should have returned only the current user")
- .that(mUserManagerState.getUserIds()).containsExactly(currentUser);
+ .that(mUserManagerState.getUserIds())
+ .containsExactly(currentUser);
}
}
@@ -386,7 +443,8 @@ public class UserManagerStateTest {
public void testGetUserIds_returnCachedList() {
// Returns all three if there are system, managed and private users.
UserId currentUser = UserId.of(mSystemUser);
- initializeUserManagerState(currentUser,
+ initializeUserManagerState(
+ currentUser,
Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser, mOtherUser));
assertWithMessage("getUserIds does not return cached instance")
.that(mUserManagerState.getUserIds())
@@ -394,47 +452,13 @@ public class UserManagerStateTest {
}
@Test
- public void testGetCanForwardToProfileIdMap_systemUserCanForwardToAll() {
- UserId currentUser = UserId.of(mSystemUser);
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo1, mMockInfo2);
- if (SdkLevel.isAtLeastV()) {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(
- mMockResolveInfoList);
- } else {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser));
- when(mMockPackageManager.queryIntentActivities(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY)).thenReturn(mMockResolveInfoList);
- }
-
- Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
- expectedCanForwardToProfileIdMap.put(UserId.of(mSystemUser), true);
- expectedCanForwardToProfileIdMap.put(UserId.of(mManagedUser), true);
- if (SdkLevel.isAtLeastV()) {
- expectedCanForwardToProfileIdMap.put(UserId.of(mPrivateUser), true);
- }
-
- assertWithMessage("getCanForwardToProfileIdMap returns incorrect mappings")
- .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
- .isEqualTo(expectedCanForwardToProfileIdMap);
- }
-
- @Test
public void testGetCanForwardToProfileIdMap_systemUserCanForwardToManaged() {
UserId currentUser = UserId.of(mSystemUser);
initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo1, mMockInfo2);
- if (SdkLevel.isAtLeastV()) {
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(
- mMockResolveInfoList);
- } else {
- when(mMockPackageManager.queryIntentActivities(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY)).thenReturn(mMockResolveInfoList);
- }
+ final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfoManagedUser);
+
+ when(mMockPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(mMockResolveInfoList);
Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
expectedCanForwardToProfileIdMap.put(UserId.of(mSystemUser), true);
@@ -463,18 +487,19 @@ public class UserManagerStateTest {
@Test
public void testGetCanForwardToProfileIdMap_systemUserCanNotForwardToManagedUser() {
UserId currentUser = UserId.of(mSystemUser);
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo2, mMockInfo3);
+ final List<ResolveInfo> mMockResolveInfoList =
+ Lists.newArrayList(mMockInfoPrivateUser, mMockInfoPrimaryUser);
if (SdkLevel.isAtLeastV()) {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(
- mMockResolveInfoList);
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ when(mMockPackageManager.queryIntentActivitiesAsUser(
+ mMockIntent, PackageManager.MATCH_DEFAULT_ONLY, mSystemUser))
+ .thenReturn(mMockResolveInfoList);
} else {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser));
- when(mMockPackageManager.queryIntentActivities(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY)).thenReturn(mMockResolveInfoList);
+ initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
+ when(mMockPackageManager.queryIntentActivities(
+ mMockIntent, PackageManager.MATCH_DEFAULT_ONLY))
+ .thenReturn(mMockResolveInfoList);
}
Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
@@ -492,26 +517,17 @@ public class UserManagerStateTest {
@Test
public void testGetCanForwardToProfileIdMap_managedCanForwardToAll() {
UserId currentUser = UserId.of(mManagedUser);
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo1, mMockInfo2);
- if (SdkLevel.isAtLeastV()) {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mManagedUser)).thenReturn(
- mMockResolveInfoList);
- } else {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser));
- when(mMockPackageManager.queryIntentActivities(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY)).thenReturn(mMockResolveInfoList);
- }
+ final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfoPrimaryUser);
+ when(mMockPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(mMockResolveInfoList);
+
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
expectedCanForwardToProfileIdMap.put(UserId.of(mSystemUser), true);
expectedCanForwardToProfileIdMap.put(UserId.of(mManagedUser), true);
- if (SdkLevel.isAtLeastV()) {
- expectedCanForwardToProfileIdMap.put(UserId.of(mPrivateUser), true);
- }
+ expectedCanForwardToProfileIdMap.put(UserId.of(mPrivateUser), true);
assertWithMessage("getCanForwardToProfileIdMap returns incorrect mappings")
.that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
@@ -521,19 +537,20 @@ public class UserManagerStateTest {
@Test
public void testGetCanForwardToProfileIdMap_managedCanNotForwardToAll() {
UserId currentUser = UserId.of(mManagedUser);
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo2, mMockInfo3);
+ final List<ResolveInfo> mMockResolveInfoList =
+ Lists.newArrayList(mMockInfoPrivateUser, mMockInfoPrimaryUser);
if (SdkLevel.isAtLeastV()) {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(
- mMockResolveInfoList);
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ when(mMockPackageManager.queryIntentActivitiesAsUser(
+ mMockIntent, PackageManager.MATCH_DEFAULT_ONLY, mSystemUser))
+ .thenReturn(mMockResolveInfoList);
} else {
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser));
- when(mMockPackageManager.queryIntentActivities(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY)).thenReturn(mMockResolveInfoList);
+ initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
+ when(mMockPackageManager.queryIntentActivities(
+ mMockIntent, PackageManager.MATCH_DEFAULT_ONLY))
+ .thenReturn(mMockResolveInfoList);
}
Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
@@ -550,13 +567,13 @@ public class UserManagerStateTest {
@Test
public void testGetCanForwardToProfileIdMap_privateCanForwardToAll() {
- if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mPrivateUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo1, mMockInfo2);
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(mMockResolveInfoList);
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ final List<ResolveInfo> mMockResolveInfoList =
+ Lists.newArrayList(mMockInfoPrimaryUser, mMockInfoManagedUser);
+ when(mMockPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(mMockResolveInfoList);
Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
expectedCanForwardToProfileIdMap.put(UserId.of(mSystemUser), true);
@@ -570,13 +587,13 @@ public class UserManagerStateTest {
@Test
public void testGetCanForwardToProfileIdMap_privateCanNotForwardToManagedUser() {
- if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mPrivateUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo2, mMockInfo3);
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(mMockResolveInfoList);
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ final List<ResolveInfo> mMockResolveInfoList =
+ Lists.newArrayList(mMockInfoPrivateUser, mMockInfoPrimaryUser);
+ when(mMockPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(mMockResolveInfoList);
Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
expectedCanForwardToProfileIdMap.put(UserId.of(mSystemUser), true);
@@ -594,6 +611,10 @@ public class UserManagerStateTest {
UserId currentUser = UserId.of(mPrivateUser);
initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mPrivateUser));
+ final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfoPrimaryUser);
+ when(mMockPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(mMockResolveInfoList);
+
Map<UserId, Boolean> expectedCanForwardToProfileIdMap = new HashMap<>();
expectedCanForwardToProfileIdMap.put(UserId.of(mSystemUser), true);
expectedCanForwardToProfileIdMap.put(UserId.of(mPrivateUser), true);
@@ -607,24 +628,27 @@ public class UserManagerStateTest {
public void testOnProfileStatusChange_anyIntentActionForManagedProfile() {
if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mSystemUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
- // UserManagerState#mUserId and UserManagerState#mCanForwardToProfileIdMap will empty
+ // UserManagerState#mUserId and UserManagerState#mCanForwardToProfileIdMap will
+ // empty
// by default if the getters of these member variables have not been called
List<UserId> userIdsBeforeIntent = new ArrayList<>(mUserManagerState.getUserIds());
- Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent = new HashMap<>(
- mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
+ Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent =
+ new HashMap<>(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
String action = "any_intent";
mUserManagerState.onProfileActionStatusChange(action, UserId.of(mManagedUser));
assertWithMessage("Unexpected changes to user id list on receiving intent: " + action)
- .that(mUserManagerState.getUserIds()).isEqualTo(userIdsBeforeIntent);
+ .that(mUserManagerState.getUserIds())
+ .isEqualTo(userIdsBeforeIntent);
assertWithMessage(
- "Unexpected changes to canForwardToProfileIdMap on receiving intent: " + action)
- .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent)).isEqualTo(
- canForwardToProfileIdMapBeforeIntent);
+ "Unexpected changes to canForwardToProfileIdMap on receiving intent: "
+ + action)
+ .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
+ .isEqualTo(canForwardToProfileIdMapBeforeIntent);
}
@Test
@@ -633,18 +657,20 @@ public class UserManagerStateTest {
UserId currentUser = UserId.of(mSystemUser);
UserId managedUser = UserId.of(mManagedUser);
UserId privateUser = UserId.of(mPrivateUser);
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo1, mMockInfo2);
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(
- mMockResolveInfoList);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
-
- // UserManagerState#mUserId and UserManagerState#mCanForwardToProfileIdMap will empty
+ final List<ResolveInfo> mMockResolveInfoList =
+ Lists.newArrayList(mMockInfoManagedUser, mMockInfoPrivateUser);
+ when(mMockPackageManager.queryIntentActivitiesAsUser(
+ mMockIntent, PackageManager.MATCH_DEFAULT_ONLY, mSystemUser))
+ .thenReturn(mMockResolveInfoList);
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+
+ // UserManagerState#mUserId and UserManagerState#mCanForwardToProfileIdMap will
+ // empty
// by default if the getters of these member variables have not been called
List<UserId> userIdsBeforeIntent = new ArrayList<>(mUserManagerState.getUserIds());
- Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent = new HashMap<>(
- mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
+ Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent =
+ new HashMap<>(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
List<UserId> expectedUserIdsAfterIntent = Lists.newArrayList(currentUser, managedUser);
@@ -652,14 +678,18 @@ public class UserManagerStateTest {
mUserManagerState.onProfileActionStatusChange(action, privateUser);
assertWithMessage(
- "UserIds list should not be same before and after receiving intent: " + action)
- .that(mUserManagerState.getUserIds()).isNotEqualTo(userIdsBeforeIntent);
+ "UserIds list should not be same before and after receiving intent: "
+ + action)
+ .that(mUserManagerState.getUserIds())
+ .isNotEqualTo(userIdsBeforeIntent);
assertWithMessage("Unexpected changes to user id list on receiving intent: " + action)
- .that(mUserManagerState.getUserIds()).isEqualTo(expectedUserIdsAfterIntent);
- assertWithMessage("CanForwardToLabelMap should be same before and after receiving intent: "
- + action)
- .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent)).isEqualTo(
- canForwardToProfileIdMapBeforeIntent);
+ .that(mUserManagerState.getUserIds())
+ .isEqualTo(expectedUserIdsAfterIntent);
+ assertWithMessage(
+ "CanForwardToLabelMap should be same before and after receiving intent: "
+ + action)
+ .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
+ .isEqualTo(canForwardToProfileIdMapBeforeIntent);
}
@Test
@@ -668,40 +698,84 @@ public class UserManagerStateTest {
UserId currentUser = UserId.of(mSystemUser);
UserId managedUser = UserId.of(mManagedUser);
UserId privateUser = UserId.of(mPrivateUser);
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo1, mMockInfo2);
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(
- mMockResolveInfoList);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ final List<ResolveInfo> mMockResolveInfoList =
+ Lists.newArrayList(mMockInfoManagedUser, mMockInfoPrivateUser);
+ when(mMockPackageManager.queryIntentActivitiesAsUser(
+ mMockIntent, PackageManager.MATCH_DEFAULT_ONLY, mSystemUser))
+ .thenReturn(mMockResolveInfoList);
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
// initialising the userIds list and canForwardToProfileIdMap
mUserManagerState.getUserIds();
mUserManagerState.getCanForwardToProfileIdMap(mMockIntent);
// Making the private profile unavailable after it has been initialised
- mUserManagerState.onProfileActionStatusChange(Intent.ACTION_PROFILE_UNAVAILABLE,
- privateUser);
+ mUserManagerState.onProfileActionStatusChange(
+ Intent.ACTION_PROFILE_UNAVAILABLE, privateUser);
List<UserId> userIdsBeforeIntent = new ArrayList<>(mUserManagerState.getUserIds());
- Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent = new HashMap<>(
- mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
+ Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent =
+ new HashMap<>(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
- List<UserId> expectedUserIdsAfterIntent = Lists.newArrayList(currentUser, managedUser,
- privateUser);
+ List<UserId> expectedUserIdsAfterIntent =
+ Lists.newArrayList(currentUser, managedUser, privateUser);
String action = Intent.ACTION_PROFILE_AVAILABLE;
mUserManagerState.onProfileActionStatusChange(action, privateUser);
assertWithMessage(
- "UserIds list should not be same before and after receiving intent: " + action)
- .that(mUserManagerState.getUserIds()).isNotEqualTo(userIdsBeforeIntent);
+ "UserIds list should not be same before and after receiving intent: "
+ + action)
+ .that(mUserManagerState.getUserIds())
+ .isNotEqualTo(userIdsBeforeIntent);
assertWithMessage("Unexpected changes to user id list on receiving intent: " + action)
- .that(mUserManagerState.getUserIds()).isEqualTo(expectedUserIdsAfterIntent);
- assertWithMessage("CanForwardToLabelMap should be same before and after receiving intent: "
- + action)
- .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent)).isEqualTo(
- canForwardToProfileIdMapBeforeIntent);
+ .that(mUserManagerState.getUserIds())
+ .isEqualTo(expectedUserIdsAfterIntent);
+ assertWithMessage(
+ "CanForwardToLabelMap should be same before and after receiving intent: "
+ + action)
+ .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
+ .isEqualTo(canForwardToProfileIdMapBeforeIntent);
+ }
+
+ @Test
+ public void testOnProfileStatusChange_actionProfileAdded() {
+ assumeTrue(SdkLevel.isAtLeastV());
+ UserId currentUser = UserId.of(mSystemUser);
+ UserId managedUser = UserId.of(mManagedUser);
+ UserId privateUser = UserId.of(mPrivateUser);
+
+ final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfoManagedUser);
+
+ when(mMockPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(mMockResolveInfoList);
+
+ initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
+
+ mUserManagerState.setCurrentStateIntent(new Intent());
+
+ // initialising the userIds list and canForwardToProfileIdMap
+ mUserManagerState.getUserIds();
+ mUserManagerState.getCanForwardToProfileIdMap(mMockIntent);
+
+ String action = Intent.ACTION_PROFILE_ADDED;
+ mUserManagerState.onProfileActionStatusChange(action, privateUser);
+
+ assertWithMessage(
+ "UserIds list should not be same before and after receiving intent: "
+ + action)
+ .that(mUserManagerState.getUserIds())
+ .containsExactly(currentUser, managedUser, privateUser);
+ assertWithMessage(
+ "CanForwardToLabelMap should be same before and after receiving intent: "
+ + action)
+ .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
+ .isEqualTo(
+ Map.ofEntries(
+ Map.entry(currentUser, true),
+ Map.entry(managedUser, true),
+ Map.entry(privateUser, true)));
}
@Test
@@ -710,24 +784,27 @@ public class UserManagerStateTest {
UserId currentUser = UserId.of(mSystemUser);
UserId managedUser = UserId.of(mManagedUser);
UserId privateUser = UserId.of(mPrivateUser);
- final List<ResolveInfo> mMockResolveInfoList = Lists.newArrayList(mMockInfo1, mMockInfo2);
- when(mMockPackageManager.queryIntentActivitiesAsUser(mMockIntent,
- PackageManager.MATCH_DEFAULT_ONLY, mSystemUser)).thenReturn(
- mMockResolveInfoList);
+ final List<ResolveInfo> mMockResolveInfoList =
+ Lists.newArrayList(mMockInfoManagedUser, mMockInfoPrivateUser);
+ when(mMockPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(mMockResolveInfoList);
+
+ when(mMockUserManager.getProfileParent(UserHandle.of(privateUser.getIdentifier())))
+ .thenReturn(mPrimaryUser);
// Private user will not be initialised if it is in quiet mode
when(mMockUserManager.isQuietModeEnabled(mPrivateUser)).thenReturn(true);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
-
- // UserManagerState#mUserId and UserManagerState#mCanForwardToProfileIdMap will be empty
- // by default if the getters of these member variables have not been called
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ mUserManagerState.setCurrentStateIntent(new Intent());
+ // UserManagerState#mUserId and UserManagerState#mCanForwardToProfileIdMap will
+ // be empty by default if the getters of these member variables have not been called
List<UserId> userIdsBeforeIntent = new ArrayList<>(mUserManagerState.getUserIds());
- Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent = new HashMap<>(
- mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
+ Map<UserId, Boolean> canForwardToProfileIdMapBeforeIntent =
+ new HashMap<>(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent));
- List<UserId> expectedUserIdsAfterIntent = Lists.newArrayList(currentUser, managedUser,
- privateUser);
+ List<UserId> expectedUserIdsAfterIntent =
+ Lists.newArrayList(currentUser, managedUser, privateUser);
Map<UserId, Boolean> expectedCanForwardToProfileIdMapAfterIntent = new HashMap<>();
expectedCanForwardToProfileIdMapAfterIntent.put(currentUser, true);
expectedCanForwardToProfileIdMapAfterIntent.put(managedUser, true);
@@ -737,56 +814,62 @@ public class UserManagerStateTest {
mUserManagerState.onProfileActionStatusChange(action, privateUser);
assertWithMessage(
- "UserIds list should not be same before and after receiving intent: " + action)
- .that(mUserManagerState.getUserIds()).isNotEqualTo(userIdsBeforeIntent);
+ "UserIds list should not be same before and after receiving intent: "
+ + action)
+ .that(mUserManagerState.getUserIds())
+ .isNotEqualTo(userIdsBeforeIntent);
assertWithMessage("Unexpected changes to user id list on receiving intent: " + action)
- .that(mUserManagerState.getUserIds()).isEqualTo(expectedUserIdsAfterIntent);
+ .that(mUserManagerState.getUserIds())
+ .isEqualTo(expectedUserIdsAfterIntent);
assertWithMessage(
- "CanForwardToLabelMap should not be same before and after receiving intent: "
- + action)
- .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent)).isNotEqualTo(
- canForwardToProfileIdMapBeforeIntent);
+ "CanForwardToLabelMap should not be same before and after receiving intent:"
+ + " "
+ + action)
+ .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
+ .isNotEqualTo(canForwardToProfileIdMapBeforeIntent);
assertWithMessage(
- "Unexpected changes to canForwardToProfileIdMap on receiving intent: " + action)
- .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent)).isEqualTo(
- expectedCanForwardToProfileIdMapAfterIntent);
+ "Unexpected changes to canForwardToProfileIdMap on receiving intent: "
+ + action)
+ .that(mUserManagerState.getCanForwardToProfileIdMap(mMockIntent))
+ .isEqualTo(expectedCanForwardToProfileIdMapAfterIntent);
}
@Test
public void testGetUserIdToLabelMap_systemUserAndManagedUser_PreV() {
if (SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mSystemUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser));
+ initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
if (SdkLevel.isAtLeastT()) {
- DevicePolicyResourcesManager devicePolicyResourcesManager = mock(
- DevicePolicyResourcesManager.class);
+ DevicePolicyResourcesManager devicePolicyResourcesManager =
+ mock(DevicePolicyResourcesManager.class);
when(mDevicePolicyManager.getResources()).thenReturn(devicePolicyResourcesManager);
- when(devicePolicyResourcesManager.getString(eq(PERSONAL_TAB), any())).thenReturn(
- PERSONAL);
+ when(devicePolicyResourcesManager.getString(eq(PERSONAL_TAB), any()))
+ .thenReturn(PERSONAL);
when(devicePolicyResourcesManager.getString(eq(WORK_TAB), any())).thenReturn(WORK);
}
Map<UserId, String> userIdToLabelMap = mUserManagerState.getUserIdToLabelMap();
assertWithMessage("Incorrect label returned for user id " + mSystemUser)
- .that(userIdToLabelMap.get(UserId.of(mSystemUser))).isEqualTo(PERSONAL);
+ .that(userIdToLabelMap.get(UserId.of(mSystemUser)))
+ .isEqualTo(PERSONAL);
assertWithMessage("Incorrect label returned for user id " + mManagedUser)
- .that(userIdToLabelMap.get(UserId.of(mManagedUser))).isEqualTo(WORK);
+ .that(userIdToLabelMap.get(UserId.of(mManagedUser)))
+ .isEqualTo(WORK);
}
@Test
public void testGetUserIdToLabelMap_systemUserManagedUserPrivateUser_PostV() {
if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mSystemUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
if (SdkLevel.isAtLeastT()) {
- DevicePolicyResourcesManager devicePolicyResourcesManager = mock(
- DevicePolicyResourcesManager.class);
+ DevicePolicyResourcesManager devicePolicyResourcesManager =
+ mock(DevicePolicyResourcesManager.class);
when(mDevicePolicyManager.getResources()).thenReturn(devicePolicyResourcesManager);
- when(devicePolicyResourcesManager.getString(eq(PERSONAL_TAB), any())).thenReturn(
- PERSONAL);
+ when(devicePolicyResourcesManager.getString(eq(PERSONAL_TAB), any()))
+ .thenReturn(PERSONAL);
}
UserManager managedUserManager = getUserManagerForManagedUser();
UserManager privateUserManager = getUserManagerForPrivateUser();
@@ -796,45 +879,50 @@ public class UserManagerStateTest {
Map<UserId, String> userIdToLabelMap = mUserManagerState.getUserIdToLabelMap();
assertWithMessage("Incorrect label returned for user id " + mSystemUser)
- .that(userIdToLabelMap.get(UserId.of(mSystemUser))).isEqualTo(PERSONAL);
+ .that(userIdToLabelMap.get(UserId.of(mSystemUser)))
+ .isEqualTo(PERSONAL);
assertWithMessage("Incorrect label returned for user id " + mManagedUser)
- .that(userIdToLabelMap.get(UserId.of(mManagedUser))).isEqualTo(WORK);
+ .that(userIdToLabelMap.get(UserId.of(mManagedUser)))
+ .isEqualTo(WORK);
assertWithMessage("Incorrect label returned for user id " + mPrivateUser)
- .that(userIdToLabelMap.get(UserId.of(mPrivateUser))).isEqualTo(PRIVATE);
+ .that(userIdToLabelMap.get(UserId.of(mPrivateUser)))
+ .isEqualTo(PRIVATE);
}
@Test
public void testGetUserIdToBadgeMap_systemUserManagedUser_PreV() {
if (SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mSystemUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser));
+ initializeUserManagerState(currentUser, Lists.newArrayList(mSystemUser, mManagedUser));
Drawable workBadge = mock(Drawable.class);
Resources resources = mock(Resources.class);
when(mMockContext.getResources()).thenReturn(resources);
when(mMockContext.getDrawable(R.drawable.ic_briefcase)).thenReturn(workBadge);
if (SdkLevel.isAtLeastT()) {
- DevicePolicyResourcesManager devicePolicyResourcesManager = mock(
- DevicePolicyResourcesManager.class);
+ DevicePolicyResourcesManager devicePolicyResourcesManager =
+ mock(DevicePolicyResourcesManager.class);
when(mDevicePolicyManager.getResources()).thenReturn(devicePolicyResourcesManager);
- when(devicePolicyResourcesManager.getDrawable(eq(WORK_PROFILE_ICON), eq(SOLID_COLORED),
- any())).thenReturn(workBadge);
+ when(devicePolicyResourcesManager.getDrawable(
+ eq(WORK_PROFILE_ICON), eq(SOLID_COLORED), any()))
+ .thenReturn(workBadge);
}
Map<UserId, Drawable> userIdToBadgeMap = mUserManagerState.getUserIdToBadgeMap();
assertWithMessage("There should be no badge present for personal user")
- .that(userIdToBadgeMap.containsKey(UserId.of(mSystemUser))).isFalse();
+ .that(userIdToBadgeMap.containsKey(UserId.of(mSystemUser)))
+ .isFalse();
assertWithMessage("Incorrect badge returned for user id " + mManagedUser)
- .that(userIdToBadgeMap.get(UserId.of(mManagedUser))).isEqualTo(workBadge);
+ .that(userIdToBadgeMap.get(UserId.of(mManagedUser)))
+ .isEqualTo(workBadge);
}
@Test
public void testGetUserIdToBadgeMap_systemUserManagedUserPrivateUser_PostV() {
if (!SdkLevel.isAtLeastV()) return;
UserId currentUser = UserId.of(mSystemUser);
- initializeUserManagerState(currentUser,
- Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
+ initializeUserManagerState(
+ currentUser, Lists.newArrayList(mSystemUser, mManagedUser, mPrivateUser));
Drawable workBadge = mock(Drawable.class);
Drawable privateBadge = mock(Drawable.class);
UserManager managedUserManager = getUserManagerForManagedUser();
@@ -845,19 +933,23 @@ public class UserManagerStateTest {
Map<UserId, Drawable> userIdToBadgeMap = mUserManagerState.getUserIdToBadgeMap();
assertWithMessage("There should be no badge present for personal user")
- .that(userIdToBadgeMap.get(UserId.of(mSystemUser))).isNull();
+ .that(userIdToBadgeMap.get(UserId.of(mSystemUser)))
+ .isNull();
assertWithMessage("Incorrect badge returned for user id " + mManagedUser)
- .that(userIdToBadgeMap.get(UserId.of(mManagedUser))).isEqualTo(workBadge);
+ .that(userIdToBadgeMap.get(UserId.of(mManagedUser)))
+ .isEqualTo(workBadge);
assertWithMessage("Incorrect badge returned for user id " + mPrivateUser)
- .that(userIdToBadgeMap.get(UserId.of(mPrivateUser))).isEqualTo(privateBadge);
+ .that(userIdToBadgeMap.get(UserId.of(mPrivateUser)))
+ .isEqualTo(privateBadge);
}
private void initializeUserManagerState(UserId current, List<UserHandle> usersOnDevice) {
when(mMockUserManager.getUserProfiles()).thenReturn(usersOnDevice);
TestConfigStore testConfigStore = new TestConfigStore();
testConfigStore.enablePrivateSpaceInPhotoPicker();
- mUserManagerState = new UserManagerState.RuntimeUserManagerState(mMockContext, current,
- true, testConfigStore);
+ mUserManagerState =
+ new UserManagerState.RuntimeUserManagerState(
+ mMockContext, current, true, testConfigStore);
}
private UserManager getUserManagerForManagedUser() {