summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Azhara Assanova <azharaa@google.com> 2024-11-21 17:33:03 +0000
committer Azhara Assanova <azharaa@google.com> 2024-11-25 19:02:19 +0000
commita30fb7eaa3eeb5099c806f0f37c8b950ac7e7c2d (patch)
treebaccbce0e3a92467357b4e9e0f362820ea746302
parente9727237d81745d5b61044a569ff81f0c5ba0604 (diff)
[AAPM] Update SPA settings to show advanced protection strings
Note that the logic for disabling the toggle is handled by RestrictedLockUtilsInternal#checkIfRestrictionEnforced in Change-Id If931dcddad508f88aac1280b587da4767b937875. Bug: 369361373 Test: manual Test: RestrictedModeTest Test: TogglePermissionAppListPageTest Flag: android.security.aapm_api Change-Id: Ie03348b392fb4da3d3ae4960b2f1afb078a74f90
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/EnterpriseRepository.kt19
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt12
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictionsProvider.kt6
-rw-r--r--packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedModeTest.kt145
-rw-r--r--packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListPageTest.kt102
-rw-r--r--packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/tests/testutils/RestrictedTestUtils.kt11
6 files changed, 288 insertions, 7 deletions
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/EnterpriseRepository.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/EnterpriseRepository.kt
index 5baf7be98666..b5a6ffa03317 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/EnterpriseRepository.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/EnterpriseRepository.kt
@@ -22,10 +22,14 @@ import android.app.admin.DevicePolicyResources.Strings.Settings.WORK_CATEGORY_HE
import android.content.Context
import android.content.pm.UserInfo
import com.android.settingslib.R
+import com.android.settingslib.RestrictedLockUtils
+import com.android.settingslib.RestrictedLockUtilsInternal
import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
interface IEnterpriseRepository {
fun getEnterpriseString(updatableStringId: String, resId: Int): String
+ fun getAdminSummaryString(advancedProtectionStringId: Int, updatableStringId: String,
+ resId: Int, enforcedAdmin: RestrictedLockUtils.EnforcedAdmin?, userId: Int): String
}
class EnterpriseRepository(private val context: Context) : IEnterpriseRepository {
@@ -34,6 +38,21 @@ class EnterpriseRepository(private val context: Context) : IEnterpriseRepository
override fun getEnterpriseString(updatableStringId: String, resId: Int): String =
checkNotNull(resources.getString(updatableStringId) { context.getString(resId) })
+ override fun getAdminSummaryString(
+ advancedProtectionStringId: Int,
+ updatableStringId: String,
+ resId: Int,
+ enforcedAdmin: RestrictedLockUtils.EnforcedAdmin?,
+ userId: Int
+ ): String {
+ return if (RestrictedLockUtilsInternal.isPolicyEnforcedByAdvancedProtection(context,
+ enforcedAdmin?.enforcedRestriction, userId)) {
+ context.getString(advancedProtectionStringId)
+ } else {
+ getEnterpriseString(updatableStringId, resId)
+ }
+ }
+
fun getProfileTitle(userInfo: UserInfo): String = if (userInfo.isManagedProfile) {
getEnterpriseString(WORK_CATEGORY_HEADER, R.string.category_work)
} else if (userInfo.isPrivateProfile) {
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt
index b6d92422c333..a140eb8424a8 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt
@@ -37,21 +37,27 @@ interface BlockedByEcm : RestrictedMode {
fun showRestrictedSettingsDetails()
}
-
internal data class BlockedByAdminImpl(
private val context: Context,
private val enforcedAdmin: RestrictedLockUtils.EnforcedAdmin,
+ private val userId: Int,
private val enterpriseRepository: IEnterpriseRepository = EnterpriseRepository(context),
) : BlockedByAdmin {
override fun getSummary(checked: Boolean?) = when (checked) {
- true -> enterpriseRepository.getEnterpriseString(
+ true -> enterpriseRepository.getAdminSummaryString(
+ advancedProtectionStringId = R.string.enabled_by_advanced_protection,
updatableStringId = Settings.ENABLED_BY_ADMIN_SWITCH_SUMMARY,
resId = R.string.enabled_by_admin,
+ enforcedAdmin = enforcedAdmin,
+ userId = userId,
)
- false -> enterpriseRepository.getEnterpriseString(
+ false -> enterpriseRepository.getAdminSummaryString(
+ advancedProtectionStringId = R.string.disabled_by_advanced_protection,
updatableStringId = Settings.DISABLED_BY_ADMIN_SWITCH_SUMMARY,
resId = R.string.disabled_by_admin,
+ enforcedAdmin = enforcedAdmin,
+ userId = userId,
)
else -> ""
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictionsProvider.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictionsProvider.kt
index 6b1893c73b3f..3309faaa8db2 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictionsProvider.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictionsProvider.kt
@@ -84,7 +84,11 @@ internal class RestrictionsProviderImpl(
for (key in restrictions.keys) {
RestrictedLockUtilsInternal
.checkIfRestrictionEnforced(context, key, restrictions.userId)
- ?.let { return BlockedByAdminImpl(context = context, enforcedAdmin = it) }
+ ?.let { return BlockedByAdminImpl(
+ context = context,
+ enforcedAdmin = it,
+ userId = restrictions.userId
+ ) }
}
restrictions.enhancedConfirmation?.let { ec ->
diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedModeTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedModeTest.kt
index 8fd16b37bfeb..f3245c9085e7 100644
--- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedModeTest.kt
+++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedModeTest.kt
@@ -16,19 +16,49 @@
package com.android.settingslib.spaprivileged.model.enterprise
+import android.app.admin.DevicePolicyManager
import android.app.admin.DevicePolicyResources.Strings.Settings
+import android.app.admin.EnforcingAdmin
import android.content.Context
+import android.platform.test.annotations.RequiresFlagsDisabled
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.platform.test.flag.junit.CheckFlagsRule
+import android.platform.test.flag.junit.DeviceFlagsValueProvider
+import android.security.Flags
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settingslib.RestrictedLockUtils
+import com.android.settingslib.RestrictedLockUtilsInternal
+import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
+import com.android.settingslib.spaprivileged.tests.testutils.getEnforcingAdminAdvancedProtection
+import com.android.settingslib.spaprivileged.tests.testutils.getEnforcingAdminNotAdvancedProtection
+import com.android.settingslib.widget.restricted.R
import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class RestrictedModeTest {
+ @Rule
+ @JvmField
+ val mCheckFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
+ @get:Rule
+ val mockito: MockitoRule = MockitoJUnit.rule()
+
+ @Spy
private val context: Context = ApplicationProvider.getApplicationContext()
+ @Mock
+ private lateinit var devicePolicyManager: DevicePolicyManager
+
private val fakeEnterpriseRepository = object : IEnterpriseRepository {
override fun getEnterpriseString(updatableStringId: String, resId: Int): String =
when (updatableStringId) {
@@ -36,20 +66,123 @@ class RestrictedModeTest {
Settings.DISABLED_BY_ADMIN_SWITCH_SUMMARY -> DISABLED_BY_ADMIN
else -> ""
}
+
+ override fun getAdminSummaryString(
+ advancedProtectionStringId: Int,
+ updatableStringId: String,
+ resId: Int,
+ enforcedAdmin: RestrictedLockUtils.EnforcedAdmin?,
+ userId: Int
+ ): String {
+ if (RestrictedLockUtilsInternal.isPolicyEnforcedByAdvancedProtection(context,
+ RESTRICTION, userId)) {
+ return when (advancedProtectionStringId) {
+ R.string.enabled_by_advanced_protection -> ENABLED_BY_ADVANCED_PROTECTION
+ R.string.disabled_by_advanced_protection -> DISABLED_BY_ADVANCED_PROTECTION
+ else -> ""
+ }
+ }
+ return getEnterpriseString(updatableStringId, resId)
+ }
}
+ @Before
+ fun setUp() {
+ whenever(context.devicePolicyManager).thenReturn(devicePolicyManager)
+ }
+
+ @RequiresFlagsDisabled(Flags.FLAG_AAPM_API)
@Test
fun blockedByAdmin_getSummaryWhenChecked() {
- val blockedByAdmin = BlockedByAdminImpl(context, ENFORCED_ADMIN, fakeEnterpriseRepository)
+ val blockedByAdmin = BlockedByAdminImpl(context, ENFORCED_ADMIN, USER_ID,
+ fakeEnterpriseRepository)
val summary = blockedByAdmin.getSummary(true)
assertThat(summary).isEqualTo(ENABLED_BY_ADMIN)
}
+ @RequiresFlagsDisabled(Flags.FLAG_AAPM_API)
@Test
fun blockedByAdmin_getSummaryNotWhenChecked() {
- val blockedByAdmin = BlockedByAdminImpl(context, ENFORCED_ADMIN, fakeEnterpriseRepository)
+ val blockedByAdmin = BlockedByAdminImpl(context, ENFORCED_ADMIN, USER_ID,
+ fakeEnterpriseRepository)
+
+ val summary = blockedByAdmin.getSummary(false)
+
+ assertThat(summary).isEqualTo(DISABLED_BY_ADMIN)
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_AAPM_API)
+ @Test
+ fun blockedByAdmin_disabledByAdvancedProtection_getSummaryWhenChecked() {
+ val blockedByAdmin =
+ BlockedByAdminImpl(
+ context = context,
+ enforcedAdmin = ENFORCED_ADMIN,
+ enterpriseRepository = fakeEnterpriseRepository,
+ userId = USER_ID,
+ )
+
+ whenever(devicePolicyManager.getEnforcingAdmin(USER_ID, RESTRICTION))
+ .thenReturn(ENFORCING_ADMIN_ADVANCED_PROTECTION)
+
+ val summary = blockedByAdmin.getSummary(true)
+
+ assertThat(summary).isEqualTo(ENABLED_BY_ADVANCED_PROTECTION)
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_AAPM_API)
+ @Test
+ fun blockedByAdmin_disabledByAdvancedProtection_getSummaryWhenNotChecked() {
+ val blockedByAdmin =
+ BlockedByAdminImpl(
+ context = context,
+ enforcedAdmin = ENFORCED_ADMIN,
+ enterpriseRepository = fakeEnterpriseRepository,
+ userId = USER_ID,
+ )
+
+ whenever(devicePolicyManager.getEnforcingAdmin(USER_ID, RESTRICTION))
+ .thenReturn(ENFORCING_ADMIN_ADVANCED_PROTECTION)
+
+ val summary = blockedByAdmin.getSummary(false)
+
+ assertThat(summary).isEqualTo(DISABLED_BY_ADVANCED_PROTECTION)
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_AAPM_API)
+ @Test
+ fun blockedByAdmin_notDisabledByAdvancedProtection_getSummaryWhenChecked() {
+ val blockedByAdmin =
+ BlockedByAdminImpl(
+ context = context,
+ enforcedAdmin = ENFORCED_ADMIN,
+ enterpriseRepository = fakeEnterpriseRepository,
+ userId = USER_ID,
+ )
+
+ whenever(devicePolicyManager.getEnforcingAdmin(USER_ID, RESTRICTION))
+ .thenReturn(ENFORCING_ADMIN_NOT_ADVANCED_PROTECTION)
+
+ val summary = blockedByAdmin.getSummary(true)
+
+ assertThat(summary).isEqualTo(ENABLED_BY_ADMIN)
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_AAPM_API)
+ @Test
+ fun blockedByAdmin_notDisabledByAdvancedProtection_getSummaryWhenNotChecked() {
+ val blockedByAdmin =
+ BlockedByAdminImpl(
+ context = context,
+ enforcedAdmin = ENFORCED_ADMIN,
+ enterpriseRepository = fakeEnterpriseRepository,
+ userId = USER_ID,
+ )
+
+ whenever(devicePolicyManager.getEnforcingAdmin(USER_ID, RESTRICTION))
+ .thenReturn(ENFORCING_ADMIN_NOT_ADVANCED_PROTECTION)
val summary = blockedByAdmin.getSummary(false)
@@ -57,11 +190,19 @@ class RestrictedModeTest {
}
private companion object {
+ const val PACKAGE_NAME = "package.name"
const val RESTRICTION = "restriction"
+ const val USER_ID = 0
val ENFORCED_ADMIN: RestrictedLockUtils.EnforcedAdmin =
RestrictedLockUtils.EnforcedAdmin.createDefaultEnforcedAdminWithRestriction(RESTRICTION)
+ val ENFORCING_ADMIN_ADVANCED_PROTECTION: EnforcingAdmin =
+ getEnforcingAdminAdvancedProtection(PACKAGE_NAME, USER_ID)
+ val ENFORCING_ADMIN_NOT_ADVANCED_PROTECTION: EnforcingAdmin =
+ getEnforcingAdminNotAdvancedProtection(PACKAGE_NAME, USER_ID)
const val ENABLED_BY_ADMIN = "Enabled by admin"
const val DISABLED_BY_ADMIN = "Disabled by admin"
+ const val ENABLED_BY_ADVANCED_PROTECTION = "Enabled by advanced protection"
+ const val DISABLED_BY_ADVANCED_PROTECTION = "Disabled by advanced protection"
}
}
diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListPageTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListPageTest.kt
index e73611510f6b..79085af63c6d 100644
--- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListPageTest.kt
+++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListPageTest.kt
@@ -16,8 +16,17 @@
package com.android.settingslib.spaprivileged.template.app
+import android.app.admin.DevicePolicyManager
+import android.app.admin.DevicePolicyResources.Strings.Settings
+import android.app.admin.DevicePolicyResourcesManager
+import android.app.admin.EnforcingAdmin
import android.content.Context
import android.content.pm.ApplicationInfo
+import android.platform.test.annotations.RequiresFlagsDisabled
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.platform.test.flag.junit.CheckFlagsRule
+import android.platform.test.flag.junit.DeviceFlagsValueProvider
+import android.security.Flags
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.test.assertIsDisplayed
@@ -29,28 +38,59 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settingslib.RestrictedLockUtils
import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
import com.android.settingslib.spaprivileged.R
+import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
import com.android.settingslib.spaprivileged.model.enterprise.BlockedByAdminImpl
import com.android.settingslib.spaprivileged.model.enterprise.NoRestricted
import com.android.settingslib.spaprivileged.tests.testutils.FakeRestrictionsProvider
import com.android.settingslib.spaprivileged.tests.testutils.TestAppRecord
import com.android.settingslib.spaprivileged.tests.testutils.TestTogglePermissionAppListModel
+import com.android.settingslib.spaprivileged.tests.testutils.getEnforcingAdminAdvancedProtection
+import com.android.settingslib.spaprivileged.tests.testutils.getEnforcingAdminNotAdvancedProtection
import com.google.common.truth.Truth.assertThat
+import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class TogglePermissionAppListPageTest {
+ @Rule
+ @JvmField
+ val mCheckFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
@get:Rule
val composeTestRule = createComposeRule()
+ @get:Rule
+ val mockito: MockitoRule = MockitoJUnit.rule()
+
+ @Mock
+ private lateinit var devicePolicyManager: DevicePolicyManager
+
+ @Mock
+ private lateinit var devicePolicyResourcesManager: DevicePolicyResourcesManager
+
+ @Spy
private val context: Context = ApplicationProvider.getApplicationContext()
private val fakeNavControllerWrapper = FakeNavControllerWrapper()
private val fakeRestrictionsProvider = FakeRestrictionsProvider()
+ @Before
+ fun setUp() {
+ whenever(context.devicePolicyManager).thenReturn(devicePolicyManager)
+ whenever(devicePolicyManager.resources).thenReturn(devicePolicyResourcesManager)
+ }
+
@Test
fun pageTitle() {
val listModel = TestTogglePermissionAppListModel()
@@ -98,10 +138,65 @@ class TogglePermissionAppListPageTest {
assertThat(summary).isEqualTo(context.getPlaceholder())
}
+ @RequiresFlagsDisabled(Flags.FLAG_AAPM_API)
@Test
fun summary_whenAllowedButAdminOverrideToNotAllowed() {
fakeRestrictionsProvider.restrictedMode =
- BlockedByAdminImpl(context = context, enforcedAdmin = ENFORCED_ADMIN)
+ BlockedByAdminImpl(context = context, enforcedAdmin = ENFORCED_ADMIN, userId = USER_ID)
+ val listModel =
+ TestTogglePermissionAppListModel(
+ isAllowed = true,
+ switchifBlockedByAdminOverrideCheckedValueTo = false,
+ )
+
+ val summary = getSummary(listModel)
+
+ assertThat(summary)
+ .isEqualTo(
+ context.getString(
+ com.android.settingslib.widget.restricted.R.string.disabled_by_admin
+ )
+ )
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_AAPM_API)
+ @Test
+ fun summary_disabledByAdvancedProtection_whenAllowedButAdminOverrideToNotAllowed() {
+ whenever(devicePolicyManager.getEnforcingAdmin(USER_ID, RESTRICTION))
+ .thenReturn(ENFORCING_ADMIN_ADVANCED_PROTECTION)
+
+ fakeRestrictionsProvider.restrictedMode =
+ BlockedByAdminImpl(context = context, enforcedAdmin = ENFORCED_ADMIN, userId = USER_ID)
+ val listModel =
+ TestTogglePermissionAppListModel(
+ isAllowed = true,
+ switchifBlockedByAdminOverrideCheckedValueTo = false,
+ )
+
+ val summary = getSummary(listModel)
+
+ assertThat(summary)
+ .isEqualTo(
+ context.getString(
+ com.android.settingslib.widget.restricted.R.string
+ .disabled_by_advanced_protection
+ )
+ )
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_AAPM_API)
+ @Test
+ fun summary_notDisabledByAdvancedProtection_whenAllowedButAdminOverrideToNotAllowed() {
+ val disabledByAdminText = context.getString(
+ com.android.settingslib.widget.restricted.R.string.disabled_by_admin
+ )
+ whenever(devicePolicyManager.getEnforcingAdmin(USER_ID, RESTRICTION))
+ .thenReturn(ENFORCING_ADMIN_NOT_ADVANCED_PROTECTION)
+ whenever(devicePolicyResourcesManager.getString(
+ eq(Settings.DISABLED_BY_ADMIN_SWITCH_SUMMARY), any())).thenReturn(disabledByAdminText)
+
+ fakeRestrictionsProvider.restrictedMode =
+ BlockedByAdminImpl(context = context, enforcedAdmin = ENFORCED_ADMIN, userId = USER_ID)
val listModel =
TestTogglePermissionAppListModel(
isAllowed = true,
@@ -186,7 +281,12 @@ class TogglePermissionAppListPageTest {
const val SUMMARY = "Summary"
val APP = ApplicationInfo().apply { packageName = PACKAGE_NAME }
const val RESTRICTION = "restriction"
+ const val USER_ID = 0
val ENFORCED_ADMIN: RestrictedLockUtils.EnforcedAdmin =
RestrictedLockUtils.EnforcedAdmin.createDefaultEnforcedAdminWithRestriction(RESTRICTION)
+ val ENFORCING_ADMIN_ADVANCED_PROTECTION: EnforcingAdmin =
+ getEnforcingAdminAdvancedProtection(PACKAGE_NAME, USER_ID)
+ val ENFORCING_ADMIN_NOT_ADVANCED_PROTECTION: EnforcingAdmin =
+ getEnforcingAdminNotAdvancedProtection(PACKAGE_NAME, USER_ID)
}
}
diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/tests/testutils/RestrictedTestUtils.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/tests/testutils/RestrictedTestUtils.kt
index f8ca2a084f14..d5e8d6a5fa13 100644
--- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/tests/testutils/RestrictedTestUtils.kt
+++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/tests/testutils/RestrictedTestUtils.kt
@@ -16,6 +16,10 @@
package com.android.settingslib.spaprivileged.tests.testutils
+import android.app.admin.EnforcingAdmin
+import android.app.admin.UnknownAuthority
+import android.os.UserHandle
+import android.security.advancedprotection.AdvancedProtectionManager.ADVANCED_PROTECTION_SYSTEM_ENTITY
import androidx.compose.runtime.Composable
import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spaprivileged.model.enterprise.BlockedByAdmin
@@ -55,3 +59,10 @@ class FakeRestrictionsProvider : RestrictionsProvider {
@Composable
override fun restrictedModeState() = stateOf(restrictedMode)
}
+
+fun getEnforcingAdminAdvancedProtection(packageName: String, userId: Int): EnforcingAdmin =
+ EnforcingAdmin(packageName, UnknownAuthority(ADVANCED_PROTECTION_SYSTEM_ENTITY),
+ UserHandle.of(userId))
+
+fun getEnforcingAdminNotAdvancedProtection(packageName: String, userId: Int): EnforcingAdmin =
+ EnforcingAdmin(packageName, UnknownAuthority.UNKNOWN_AUTHORITY, UserHandle.of(userId))