diff options
author | 2025-02-26 12:50:20 -0800 | |
---|---|---|
committer | 2025-02-26 12:50:20 -0800 | |
commit | 61083b203640d2120cf9b7d12061036189f9409f (patch) | |
tree | df80294e56528b577dc5e41d49eda32e4d15be1c /tests | |
parent | bbbe1bf8db28ff072efedea7c9f666ee3c5e2f05 (diff) | |
parent | 53af27aa2f9c5cc762f3395b0e96bb818a2ec072 (diff) |
Merge "Ensure test role's fallback enabled for tests" into main
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cts/rolemultiuser/src/android/app/rolemultiuser/cts/RoleManagerMultiUserTest.kt | 98 |
1 files changed, 63 insertions, 35 deletions
diff --git a/tests/cts/rolemultiuser/src/android/app/rolemultiuser/cts/RoleManagerMultiUserTest.kt b/tests/cts/rolemultiuser/src/android/app/rolemultiuser/cts/RoleManagerMultiUserTest.kt index f070fa9aa..dc2ba42c6 100644 --- a/tests/cts/rolemultiuser/src/android/app/rolemultiuser/cts/RoleManagerMultiUserTest.kt +++ b/tests/cts/rolemultiuser/src/android/app/rolemultiuser/cts/RoleManagerMultiUserTest.kt @@ -27,6 +27,7 @@ import android.os.Process import android.os.UserHandle import android.os.UserManager.DISALLOW_CONFIG_DEFAULT_APPS import android.provider.Settings +import android.util.Log import android.util.Pair import androidx.test.filters.SdkSuppress import androidx.test.rule.ActivityTestRule @@ -95,16 +96,24 @@ class RoleManagerMultiUserTest { ActivityTestRule(WaitForResultActivity::class.java) @Before - @Throws(java.lang.Exception::class) fun setUp() { assumeTrue(RoleManagerUtil.isCddCompliantScreenSize()) installAppForAllUsers() + + // If "none" selected in test, ensure we re-enable fallback for other test runs + permissions().withPermission(MANAGE_ROLE_HOLDERS, INTERACT_ACROSS_USERS_FULL).use { + setRoleFallbackEnabledForAllUsers() + } } @After - @Throws(java.lang.Exception::class) fun tearDown() { uninstallAppForAllUsers() + + // If "none" selected in test, ensure we re-enable fallback for other test runs + permissions().withPermission(MANAGE_ROLE_HOLDERS, INTERACT_ACROSS_USERS_FULL).use { + setRoleFallbackEnabledForAllUsers() + } } @RequireFlagsEnabled(com.android.permission.flags.Flags.FLAG_CROSS_USER_ROLE_ENABLED) @@ -379,7 +388,7 @@ class RoleManagerMultiUserTest { val initialUser = deviceState.workProfile().userHandle() // setActiveUserForRole and getActiveUserForRole is used to ensure initial active users // state and requires INTERACT_ACROSS_USERS_FULL - permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { roleManager.setActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME, initialUser, 0) assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(initialUser) @@ -407,7 +416,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole is used to ensure addRoleHolderAsUser didn't set active user, and // requires INTERACT_ACROSS_USERS_FULL - permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(initialUser) } @@ -484,7 +493,7 @@ class RoleManagerMultiUserTest { val initialUser = deviceState.workProfile().userHandle() // setActiveUserForRole and getActiveUserForRole is used to ensure initial active users // state and requires INTERACT_ACROSS_USERS_FULL - permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { roleManager.setActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME, initialUser, 0) assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(initialUser) @@ -504,7 +513,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole is used to ensure setDefaultApplication didn't set active user, // and requires INTERACT_ACROSS_USERS_FULL - permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(initialUser) } @@ -1281,7 +1290,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -1308,7 +1317,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole and getRoleHoldersAsUser require INTERACT_ACROSS_USERS_FULL and // MANAGE_ROLE_HOLDERS permissions to validate cross user role active user and role // holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(targetActiveUser) assertExpectedProfileHasRoleUsingGetRoleHoldersAsUser(targetActiveUser) @@ -1317,7 +1326,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -1334,7 +1343,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -1361,7 +1370,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole and getRoleHoldersAsUser require INTERACT_ACROSS_USERS_FULL and // MANAGE_ROLE_HOLDERS permissions to validate cross user role active user and role // holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(targetActiveUser) assertExpectedProfileHasRoleUsingGetRoleHoldersAsUser(targetActiveUser) @@ -1370,7 +1379,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -1387,7 +1396,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -1412,7 +1421,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole and getRoleHoldersAsUser require INTERACT_ACROSS_USERS_FULL and // MANAGE_ROLE_HOLDERS permissions to validate cross user role active user and role // holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(deviceState.initialUser().userHandle()) assertNoRoleHoldersUsingGetRoleHoldersAsUser() @@ -1421,7 +1430,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -1438,7 +1447,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -1465,7 +1474,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole and getRoleHoldersAsUser require INTERACT_ACROSS_USERS_FULL and // MANAGE_ROLE_HOLDERS permissions to validate cross user role active user and role // holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(targetActiveUser) assertExpectedProfileHasRoleUsingGetRoleHoldersAsUser(targetActiveUser) @@ -1474,7 +1483,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -1491,7 +1500,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -1518,7 +1527,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole and getRoleHoldersAsUser require INTERACT_ACROSS_USERS_FULL and // MANAGE_ROLE_HOLDERS permissions to validate cross user role active user and role // holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(targetActiveUser) assertExpectedProfileHasRoleUsingGetRoleHoldersAsUser(targetActiveUser) @@ -1527,7 +1536,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -1544,7 +1553,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -1569,7 +1578,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole and getRoleHoldersAsUser require INTERACT_ACROSS_USERS_FULL and // MANAGE_ROLE_HOLDERS permissions to validate cross user role active user and role // holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(deviceState.initialUser().userHandle()) assertNoRoleHoldersUsingGetRoleHoldersAsUser() @@ -1578,7 +1587,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -1950,7 +1959,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -1977,7 +1986,7 @@ class RoleManagerMultiUserTest { // getActiveUserForRole and getRoleHoldersAsUser require INTERACT_ACROSS_USERS_FULL and // MANAGE_ROLE_HOLDERS permissions to validate cross user role active user and role // holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { assertThat(roleManager.getActiveUserForRole(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME)) .isEqualTo(targetActiveUser) assertExpectedProfileHasRoleUsingGetRoleHoldersAsUser(targetActiveUser) @@ -1986,7 +1995,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -2007,7 +2016,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -2032,7 +2041,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -2053,7 +2062,7 @@ class RoleManagerMultiUserTest { // setDefaultHoldersForTestForAllUsers and setRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { // Set test default role holder. Ensures fallbacks to a default holder setDefaultHoldersForTestForAllUsers() setRoleVisibleForTestForAllUsers() @@ -2078,7 +2087,7 @@ class RoleManagerMultiUserTest { // clearDefaultHoldersForTestForAllUsers and clearRoleVisibleForTestForAllUsers require // INTERACT_ACROSS_USERS_FULL and MANAGE_ROLE_HOLDERS permissions to validate cross user // role active user and role holder states - permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { _ -> + permissions().withPermission(INTERACT_ACROSS_USERS_FULL, MANAGE_ROLE_HOLDERS).use { clearDefaultHoldersForTestForAllUsers() clearRoleVisibleForTestForAllUsers() } @@ -2215,7 +2224,7 @@ class RoleManagerMultiUserTest { private fun setDefaultHoldersForTestForAllUsers() { // Set test default role holder. Ensures fallbacks to a default holder for (userRoleManager in - users().profileGroup(deviceState.initialUser()).map { getRoleManagerForUser(it) }) { + users().profileGroup(users().current()).map { getRoleManagerForUser(it) }) { userRoleManager.setDefaultHoldersForTest( PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME, listOf(APP_PACKAGE_NAME), @@ -2226,7 +2235,7 @@ class RoleManagerMultiUserTest { private fun clearDefaultHoldersForTestForAllUsers() { // Set test default role holder. Ensures fallbacks to a default holder for (userRoleManager in - users().profileGroup(deviceState.initialUser()).map { getRoleManagerForUser(it) }) { + users().profileGroup(users().current()).map { getRoleManagerForUser(it) }) { userRoleManager.setDefaultHoldersForTest( PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME, emptyList(), @@ -2237,7 +2246,7 @@ class RoleManagerMultiUserTest { private fun setRoleVisibleForTestForAllUsers() { // Set test default role holder. Ensures fallbacks to a default holder for (userRoleManager in - users().profileGroup(deviceState.initialUser()).map { getRoleManagerForUser(it) }) { + users().profileGroup(users().current()).map { getRoleManagerForUser(it) }) { userRoleManager.setRoleVisibleForTest(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME, true) } } @@ -2245,11 +2254,28 @@ class RoleManagerMultiUserTest { private fun clearRoleVisibleForTestForAllUsers() { // Set test default role holder. Ensures fallbacks to a default holder for (userRoleManager in - users().profileGroup(deviceState.initialUser()).map { getRoleManagerForUser(it) }) { + users().profileGroup(users().current()).map { getRoleManagerForUser(it) }) { userRoleManager.setRoleVisibleForTest(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME, false) } } + private fun setRoleFallbackEnabledForAllUsers() { + for (userReference in users().profileGroup(users().current())) { + try { + val userRoleManager = getRoleManagerForUser(userReference) + userRoleManager.setRoleFallbackEnabled(PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME, true) + } catch (e: Exception) { + Log.w( + LOG_TAG, + "Encountered error setting fallback enabled for" + + " $PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME@" + + "${userReference.userHandle().identifier}", + e, + ) + } + } + } + private fun getRoleManagerForUser(user: UserReference): RoleManager { val userContext = context().androidContextAsUser(user) return userContext.getSystemService(RoleManager::class.java) @@ -2262,6 +2288,8 @@ class RoleManagerMultiUserTest { } companion object { + private val LOG_TAG = RoleManagerMultiUserTest::class.java.simpleName + private const val TIMEOUT_MILLIS: Long = (15 * 1000).toLong() private const val IDLE_TIMEOUT_MILLIS: Long = (2 * 1000).toLong() private const val PROFILE_GROUP_EXCLUSIVITY_ROLE_NAME = |