Fix crash when there is no emergencybroadcast app on device
Some devices do not have emergencybroadcast app installed, so we should not show the preference item for it. Add the preference controller into AppAndNotificationFragment properly hides it. Change-Id: Ic39ba24da9bd8f3200a5e44232a5489e35c48c0a Fix: 37945069 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -44,6 +44,8 @@ import static org.mockito.Mockito.when;
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
public class EmergencyBroadcastPreferenceControllerTest {
|
||||
|
||||
private static final String PREF_TEST_KEY = "test_key";
|
||||
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private Context mContext;
|
||||
@Mock
|
||||
@@ -62,7 +64,8 @@ public class EmergencyBroadcastPreferenceControllerTest {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
|
||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||
mController = new EmergencyBroadcastPreferenceController(mContext, mAccountHelper);
|
||||
mController = new EmergencyBroadcastPreferenceController(mContext, mAccountHelper,
|
||||
PREF_TEST_KEY);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -72,13 +75,18 @@ public class EmergencyBroadcastPreferenceControllerTest {
|
||||
verify(mPreference).checkRestrictionAndSetDisabled(anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPreferenceKey_shouldReturnKeyDefinedInConstructor() {
|
||||
assertThat(mController.getPreferenceKey()).isEqualTo(PREF_TEST_KEY);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_notAdminUser_shouldReturnFalse() {
|
||||
when(mUserManager.isAdminUser()).thenReturn(false);
|
||||
when(mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
|
||||
when(mPackageManager.getApplicationEnabledSetting(anyString()))
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
|
||||
when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
|
||||
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
@@ -88,11 +96,11 @@ public class EmergencyBroadcastPreferenceControllerTest {
|
||||
public void isAvailable_hasConfigCellBroadcastRestriction_shouldReturnFalse() {
|
||||
when(mUserManager.isAdminUser()).thenReturn(true);
|
||||
when(mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
|
||||
when(mPackageManager.getApplicationEnabledSetting(anyString()))
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
|
||||
when(mAccountHelper.hasBaseUserRestriction(
|
||||
eq(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS), anyInt())).thenReturn(true);
|
||||
eq(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS), anyInt())).thenReturn(true);
|
||||
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
}
|
||||
@@ -101,9 +109,9 @@ public class EmergencyBroadcastPreferenceControllerTest {
|
||||
public void isAvailable_cellBroadcastAppLinkDisabled_shouldReturnFalse() {
|
||||
when(mUserManager.isAdminUser()).thenReturn(true);
|
||||
when(mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(false);
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(false);
|
||||
when(mPackageManager.getApplicationEnabledSetting(anyString()))
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
|
||||
when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
|
||||
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
@@ -113,9 +121,9 @@ public class EmergencyBroadcastPreferenceControllerTest {
|
||||
public void isAvailable_cellBroadcastReceiverDisabled_shouldReturnFalse() {
|
||||
when(mUserManager.isAdminUser()).thenReturn(true);
|
||||
when(mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
|
||||
com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
|
||||
when(mPackageManager.getApplicationEnabledSetting(anyString()))
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
|
||||
.thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
|
||||
when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
|
||||
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
|
Reference in New Issue
Block a user