Restrict ApnEditor settings

- Finish ApnEditor settings if user is not an admin

- Finish ApnEditor settings if user has DISALLOW_CONFIG_MOBILE_NETWORKS restriction

Bug: 279902472
Test: manual test
atest -c ApnEditorTest
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:4e18e7414c674a1c5bc69961c03499849b4aefd2)
Merged-In: Iecdbbff7e21dfb11e3ba385858747a220cfd3e04
Change-Id: Iecdbbff7e21dfb11e3ba385858747a220cfd3e04
This commit is contained in:
Weng Su
2023-07-07 19:52:04 +08:00
committed by Cherrypicker Worker
parent 8bb22c308d
commit 5a17d39db7
2 changed files with 51 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ import android.content.res.Resources;
import android.database.Cursor;
import android.net.Uri;
import android.os.PersistableBundle;
import android.os.UserManager;
import android.telephony.CarrierConfigManager;
import android.view.KeyEvent;
import android.view.Menu;
@@ -102,6 +103,8 @@ public class ApnEditorTest {
@Mock
private FragmentActivity mActivity;
@Mock
private UserManager mUserManager;
@Mock
private ProxySubscriptionManager mProxySubscriptionMgr;
@Mock
private CarrierConfigManager mCarrierConfigManager;
@@ -129,6 +132,10 @@ public class ApnEditorTest {
doReturn(mContext.getTheme()).when(mActivity).getTheme();
doReturn(mContext.getContentResolver()).when(mActivity).getContentResolver();
doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
doReturn(true).when(mUserManager).isAdminUser();
doReturn(false).when(mUserManager)
.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
doReturn(mCarrierConfigManager).when(mContext)
.getSystemService(Context.CARRIER_CONFIG_SERVICE);
doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());
@@ -471,6 +478,27 @@ public class ApnEditorTest {
assertThat(ApnEditor.formatInteger("not an int")).isEqualTo("not an int");
}
@Test
@Config(shadows = ShadowFragment.class)
public void onCreate_notAdminUser_shouldFinish() {
doReturn(false).when(mUserManager).isAdminUser();
mApnEditorUT.onCreate(null);
verify(mApnEditorUT).finish();
}
@Test
@Config(shadows = ShadowFragment.class)
public void onCreate_hasUserRestriction_shouldFinish() {
doReturn(true).when(mUserManager)
.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
mApnEditorUT.onCreate(null);
verify(mApnEditorUT).finish();
}
@Test
@Config(shadows = ShadowFragment.class)
public void onCreate_noAction_shouldFinishAndNoCrash() {