Merge "Update "Manage PIN" entry point." into main

This commit is contained in:
Yvonne Jiang
2025-03-21 15:05:09 -07:00
committed by Android (Google) Code Review
6 changed files with 150 additions and 9 deletions

View File

@@ -65,7 +65,7 @@ class SupervisionDashboardScreenTest {
val mainSwitchPreference =
fragment.findPreference<MainSwitchPreference>(SupervisionMainSwitchPreference.KEY)!!
val childPreference =
fragment.findPreference<Preference>(SupervisionPinManagementScreen.KEY)!!
fragment.findPreference<Preference>(SupervisionWebContentFiltersScreen.KEY)!!
assertThat(childPreference.isEnabled).isFalse()
@@ -89,7 +89,7 @@ class SupervisionDashboardScreenTest {
val mainSwitchPreference =
fragment.findPreference<MainSwitchPreference>(SupervisionMainSwitchPreference.KEY)!!
val childPreference =
fragment.findPreference<Preference>(SupervisionPinManagementScreen.KEY)!!
fragment.findPreference<Preference>(SupervisionWebContentFiltersScreen.KEY)!!
assertThat(childPreference.isEnabled).isFalse()

View File

@@ -15,25 +15,73 @@
*/
package com.android.settings.supervision
import android.app.KeyguardManager
import android.content.Context
import android.content.ContextWrapper
import android.content.pm.UserInfo
import android.os.UserManager
import android.os.UserManager.USER_TYPE_PROFILE_SUPERVISING
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class SupervisionPinManagementScreenTest {
private val context: Context = ApplicationProvider.getApplicationContext()
private val mockKeyguardManager = mock<KeyguardManager>()
private val mockUserManager = mock<UserManager>()
private val context: Context =
object : ContextWrapper(ApplicationProvider.getApplicationContext()) {
override fun getSystemService(name: String): Any? =
when (name) {
Context.KEYGUARD_SERVICE -> mockKeyguardManager
Context.USER_SERVICE -> mockUserManager
else -> super.getSystemService(name)
}
}
private val supervisionPinManagementScreen = SupervisionPinManagementScreen()
@Before
fun setup() {
SupervisionHelper.sInstance = null
}
@Test
fun key() {
assertThat(supervisionPinManagementScreen.key).isEqualTo(SupervisionPinManagementScreen.KEY)
}
@Test
fun isAvailable() {
whenever(mockUserManager.users).thenReturn(listOf(SUPERVISING_USER_INFO))
whenever(mockKeyguardManager.isDeviceSecure(SUPERVISING_USER_ID)).thenReturn(true)
assertThat(supervisionPinManagementScreen.isAvailable(context)).isTrue()
}
@Test
fun isAvailable_noSupervisingUser_returnsFalse() {
whenever(mockUserManager.users).thenReturn(emptyList())
whenever(mockKeyguardManager.isDeviceSecure(SUPERVISING_USER_ID)).thenReturn(true)
assertThat(supervisionPinManagementScreen.isAvailable(context)).isFalse()
}
@Test
fun isAvailable_noSupervisingCredential_returnsFalse() {
whenever(mockUserManager.users).thenReturn(listOf(SUPERVISING_USER_INFO))
whenever(mockKeyguardManager.isDeviceSecure(SUPERVISING_USER_ID)).thenReturn(false)
assertThat(supervisionPinManagementScreen.isAvailable(context)).isFalse()
}
@Test
fun getTitle() {
assertThat(supervisionPinManagementScreen.title)
@@ -45,4 +93,16 @@ class SupervisionPinManagementScreenTest {
assertThat(supervisionPinManagementScreen.summary)
.isEqualTo(R.string.supervision_pin_management_preference_summary_add)
}
private companion object {
const val SUPERVISING_USER_ID = 5
val SUPERVISING_USER_INFO =
UserInfo(
SUPERVISING_USER_ID,
/* name */ "supervising",
/* iconPath */ "",
/* flags */ 0,
USER_TYPE_PROFILE_SUPERVISING,
)
}
}