Show admin dialog when preference is disabled by Device Admin

Fixes: 130694312
Test: manual & robotest
Change-Id: I9c6487ac056ec3d784bd6f6901e96869e27e0b3e
This commit is contained in:
Edgar Wang
2019-04-30 11:58:32 +08:00
committed by Raff Tsai
parent 9fcb35a009
commit 133ffc9c57
2 changed files with 26 additions and 4 deletions

View File

@@ -18,9 +18,12 @@ package com.android.settings.network.telephony;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.os.PersistableBundle;
@@ -76,7 +79,7 @@ public class RoamingPreferenceControllerTest {
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
mPreference = new RestrictedSwitchPreference(mContext);
mPreference = spy(new RestrictedSwitchPreference(mContext));
mController = new RoamingPreferenceController(mContext, "roaming");
mController.init(mFragmentManager, SUB_ID);
mPreference.setKey(mController.getPreferenceKey());
@@ -140,4 +143,22 @@ public class RoamingPreferenceControllerTest {
assertThat(mPreference.isEnabled()).isTrue();
assertThat(mPreference.isChecked()).isTrue();
}
@Test
public void updateState_isNotDisabledByAdmin_shouldInvokeSetEnabled() {
when(mPreference.isDisabledByAdmin()).thenReturn(false);
mController.updateState(mPreference);
verify(mPreference).setEnabled(anyBoolean());
}
@Test
public void updateState_isDisabledByAdmin_shouldNotInvokeSetEnabled() {
when(mPreference.isDisabledByAdmin()).thenReturn(true);
mController.updateState(mPreference);
verify(mPreference, never()).setEnabled(anyBoolean());
}
}