Loading src/com/android/settings/network/NetworkResetPreferenceController.java +4 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.network.SubscriptionUtil; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; public class NetworkResetPreferenceController extends AbstractPreferenceController Loading @@ -34,8 +35,9 @@ public class NetworkResetPreferenceController extends AbstractPreferenceControll @Override public boolean isAvailable() { return (SubscriptionUtil.isSimHardwareVisible(mContext) && (!mRestrictionChecker.hasUserRestriction())); return (SubscriptionUtil.isSimHardwareVisible(mContext) && !Utils.isWifiOnly(mContext) && !mRestrictionChecker.hasUserRestriction()); } @Override Loading tests/robotests/src/com/android/settings/network/NetworkResetPreferenceControllerTest.java +48 −3 Original line number Diff line number Diff line Loading @@ -19,9 +19,16 @@ package com.android.settings.network; import static com.google.common.truth.Truth.assertThat; 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.content.res.Resources; import android.telephony.TelephonyManager; import com.android.settings.R; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -34,28 +41,66 @@ import org.robolectric.util.ReflectionHelpers; @RunWith(RobolectricTestRunner.class) public class NetworkResetPreferenceControllerTest { @Mock private TelephonyManager mTelephonyManager; @Mock private NetworkResetRestrictionChecker mRestrictionChecker; private NetworkResetPreferenceController mController; private Context mContext; private Resources mResources; @Before public void setUp() { MockitoAnnotations.initMocks(this); mController = new NetworkResetPreferenceController(RuntimeEnvironment.application); mContext = spy(RuntimeEnvironment.application); mResources = spy(mContext.getResources()); when(mContext.getResources()).thenReturn(mResources); when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); mController = new NetworkResetPreferenceController(mContext); ReflectionHelpers.setField(mController, "mRestrictionChecker", mRestrictionChecker); // Availability defaults when(mTelephonyManager.isDataCapable()).thenReturn(true); when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true); when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(false); } @Test public void testIsAvailable_shouldReturnTrueWhenNoUserRestriction() { when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true); public void testIsAvailable_showSimInfo_notWifiOnly() { assertThat(mController.isAvailable()).isTrue(); } @Test public void testIsAvailable_hideSimInfo_notWifiOnly() { when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(false); assertThat(mController.isAvailable()).isFalse(); } @Test public void testIsAvailable_showSimInfo_wifiOnly() { when(mTelephonyManager.isDataCapable()).thenReturn(false); assertThat(mController.isAvailable()).isFalse(); } @Test public void testIsAvailable_userRestriction() { when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true); when(mRestrictionChecker.hasUserRestriction()).thenReturn(true); assertThat(mController.isAvailable()).isFalse(); verify(mRestrictionChecker, never()).isRestrictionEnforcedByAdmin(); } @Test public void testIsAvailable_noUserRestriction() { when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true); when(mRestrictionChecker.hasUserRestriction()).thenReturn(false); assertThat(mController.isAvailable()).isTrue(); verify(mRestrictionChecker, never()).isRestrictionEnforcedByAdmin(); } } Loading
src/com/android/settings/network/NetworkResetPreferenceController.java +4 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.network.SubscriptionUtil; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; public class NetworkResetPreferenceController extends AbstractPreferenceController Loading @@ -34,8 +35,9 @@ public class NetworkResetPreferenceController extends AbstractPreferenceControll @Override public boolean isAvailable() { return (SubscriptionUtil.isSimHardwareVisible(mContext) && (!mRestrictionChecker.hasUserRestriction())); return (SubscriptionUtil.isSimHardwareVisible(mContext) && !Utils.isWifiOnly(mContext) && !mRestrictionChecker.hasUserRestriction()); } @Override Loading
tests/robotests/src/com/android/settings/network/NetworkResetPreferenceControllerTest.java +48 −3 Original line number Diff line number Diff line Loading @@ -19,9 +19,16 @@ package com.android.settings.network; import static com.google.common.truth.Truth.assertThat; 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.content.res.Resources; import android.telephony.TelephonyManager; import com.android.settings.R; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -34,28 +41,66 @@ import org.robolectric.util.ReflectionHelpers; @RunWith(RobolectricTestRunner.class) public class NetworkResetPreferenceControllerTest { @Mock private TelephonyManager mTelephonyManager; @Mock private NetworkResetRestrictionChecker mRestrictionChecker; private NetworkResetPreferenceController mController; private Context mContext; private Resources mResources; @Before public void setUp() { MockitoAnnotations.initMocks(this); mController = new NetworkResetPreferenceController(RuntimeEnvironment.application); mContext = spy(RuntimeEnvironment.application); mResources = spy(mContext.getResources()); when(mContext.getResources()).thenReturn(mResources); when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); mController = new NetworkResetPreferenceController(mContext); ReflectionHelpers.setField(mController, "mRestrictionChecker", mRestrictionChecker); // Availability defaults when(mTelephonyManager.isDataCapable()).thenReturn(true); when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true); when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(false); } @Test public void testIsAvailable_shouldReturnTrueWhenNoUserRestriction() { when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true); public void testIsAvailable_showSimInfo_notWifiOnly() { assertThat(mController.isAvailable()).isTrue(); } @Test public void testIsAvailable_hideSimInfo_notWifiOnly() { when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(false); assertThat(mController.isAvailable()).isFalse(); } @Test public void testIsAvailable_showSimInfo_wifiOnly() { when(mTelephonyManager.isDataCapable()).thenReturn(false); assertThat(mController.isAvailable()).isFalse(); } @Test public void testIsAvailable_userRestriction() { when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true); when(mRestrictionChecker.hasUserRestriction()).thenReturn(true); assertThat(mController.isAvailable()).isFalse(); verify(mRestrictionChecker, never()).isRestrictionEnforcedByAdmin(); } @Test public void testIsAvailable_noUserRestriction() { when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true); when(mRestrictionChecker.hasUserRestriction()).thenReturn(false); assertThat(mController.isAvailable()).isTrue(); verify(mRestrictionChecker, never()).isRestrictionEnforcedByAdmin(); } }