Phone number only available for admin users
The phone number is hidden to non-admin users, following the same reasoning that exists for other telephony-specific fields like the baseband IMEI. Bug: 392808943 Flag: EXEMPT bugfix Test: atest PhoneNumberPreferenceControllerTest Test: atest MobileNetworkPhoneNumberPreferenceControllerTest Change-Id: I4e612219d0c7439930e91b3e1d6e368a0dfd073e
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package com.android.settings.deviceinfo
|
||||
|
||||
import android.content.Context
|
||||
import android.os.UserManager
|
||||
import android.telephony.SubscriptionInfo
|
||||
import android.telephony.SubscriptionManager
|
||||
import android.telephony.TelephonyManager
|
||||
@@ -39,6 +40,7 @@ import org.mockito.kotlin.any
|
||||
import org.mockito.kotlin.doReturn
|
||||
import org.mockito.kotlin.mock
|
||||
import org.mockito.kotlin.spy
|
||||
import org.mockito.kotlin.stub
|
||||
import org.mockito.kotlin.verify
|
||||
import org.mockito.kotlin.whenever
|
||||
import org.mockito.quality.Strictness
|
||||
@@ -47,15 +49,15 @@ import org.mockito.quality.Strictness
|
||||
class PhoneNumberPreferenceControllerTest {
|
||||
private lateinit var mockSession: MockitoSession
|
||||
|
||||
private val mockUserManager = mock<UserManager>()
|
||||
private val mockTelephonyManager = mock<TelephonyManager>()
|
||||
private val mockSubscriptionManager = mock<SubscriptionManager>()
|
||||
|
||||
private val context: Context =
|
||||
spy(ApplicationProvider.getApplicationContext()) {
|
||||
on { getSystemService(SubscriptionManager::class.java) } doReturn
|
||||
mockSubscriptionManager
|
||||
|
||||
on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager
|
||||
on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
|
||||
on { getSystemService(UserManager::class.java) } doReturn mockUserManager
|
||||
}
|
||||
|
||||
private val subscriptionInfo = mock<SubscriptionInfo>()
|
||||
@@ -76,6 +78,9 @@ class PhoneNumberPreferenceControllerTest {
|
||||
|
||||
// By default, available
|
||||
whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
|
||||
mockUserManager.stub {
|
||||
on { isAdminUser } doReturn true
|
||||
}
|
||||
|
||||
preference.setKey(controller.preferenceKey)
|
||||
preference.isVisible = true
|
||||
@@ -155,17 +160,27 @@ class PhoneNumberPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAvailabilityStatus_simHardwareVisible_displayed() {
|
||||
fun getAvailabilityStatus_simHardwareVisible_userAdmin_displayed() {
|
||||
// Use defaults from setup()
|
||||
val availabilityStatus = controller.availabilityStatus
|
||||
assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAvailabilityStatus_notSimHardwareVisible_notDisplayed() {
|
||||
fun getAvailabilityStatus_notSimHardwareVisible_userAdmin_notDisplayed() {
|
||||
whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(false)
|
||||
|
||||
val availabilityStatus = controller.availabilityStatus
|
||||
assertThat(availabilityStatus).isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAvailabilityStatus_simHardwareVisible_notUserAdmin_notDisplayed() {
|
||||
mockUserManager.stub {
|
||||
on { isAdminUser } doReturn false
|
||||
}
|
||||
|
||||
val availabilityStatus = controller.availabilityStatus
|
||||
assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.settings.network.telephony
|
||||
|
||||
import android.content.Context
|
||||
import android.os.UserManager
|
||||
import androidx.lifecycle.testing.TestLifecycleOwner
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceManager
|
||||
@@ -37,6 +38,7 @@ import org.junit.runner.RunWith
|
||||
import org.mockito.MockitoSession
|
||||
import org.mockito.kotlin.doReturn
|
||||
import org.mockito.kotlin.mock
|
||||
import org.mockito.kotlin.spy
|
||||
import org.mockito.kotlin.stub
|
||||
import org.mockito.kotlin.whenever
|
||||
import org.mockito.quality.Strictness
|
||||
@@ -45,9 +47,14 @@ import org.mockito.quality.Strictness
|
||||
class MobileNetworkPhoneNumberPreferenceControllerTest {
|
||||
private lateinit var mockSession: MockitoSession
|
||||
|
||||
private val context: Context = ApplicationProvider.getApplicationContext()
|
||||
private val mockUserManager = mock<UserManager>()
|
||||
private val mockSubscriptionRepository = mock<SubscriptionRepository>()
|
||||
|
||||
private val context: Context =
|
||||
spy(ApplicationProvider.getApplicationContext()) {
|
||||
on { getSystemService(UserManager::class.java) } doReturn mockUserManager
|
||||
}
|
||||
|
||||
private val controller =
|
||||
MobileNetworkPhoneNumberPreferenceController(context, TEST_KEY, mockSubscriptionRepository)
|
||||
private val preference = Preference(context).apply { key = TEST_KEY }
|
||||
@@ -63,6 +70,9 @@ class MobileNetworkPhoneNumberPreferenceControllerTest {
|
||||
|
||||
// By default, available
|
||||
whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
|
||||
mockUserManager.stub {
|
||||
on { isAdminUser } doReturn true
|
||||
}
|
||||
|
||||
preferenceScreen.addPreference(preference)
|
||||
controller.init(SUB_ID)
|
||||
@@ -99,20 +109,30 @@ class MobileNetworkPhoneNumberPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAvailabilityStatus_simHardwareVisible_displayed() {
|
||||
fun getAvailabilityStatus_simHardwareVisible_userAdmin_displayed() {
|
||||
// Use defaults from setup()
|
||||
val availabilityStatus = controller.availabilityStatus
|
||||
assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAvailabilityStatus_notSimHardwareVisible_notDisplayed() {
|
||||
fun getAvailabilityStatus_notSimHardwareVisible_userAdmin_notDisplayed() {
|
||||
whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(false)
|
||||
|
||||
val availabilityStatus = controller.availabilityStatus
|
||||
assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAvailabilityStatus_simHardwareVisible_notUserAdmin_notDisplayed() {
|
||||
mockUserManager.stub {
|
||||
on { isAdminUser } doReturn false
|
||||
}
|
||||
|
||||
val availabilityStatus = controller.availabilityStatus
|
||||
assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val TEST_KEY = "test_key"
|
||||
const val SUB_ID = 10
|
||||
|
||||
Reference in New Issue
Block a user