[Settings] Not allow APN delete when adding is not an option
When not allowing APN to add, user may not be able to recover easily when delete it. Therefore, avoid from APN to be deleted when adding is not allowed. Bug: 243664439 Bug: 200875858 Test: local, robolectric Change-Id: I5cf984000244b4ad901c6a4977a1368279323e0a
This commit is contained in:
@@ -17,14 +17,15 @@
|
||||
package com.android.settings.network.apn;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
@@ -34,22 +35,21 @@ import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.PersistableBundle;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.preference.EditTextPreference;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.MultiSelectListPreference;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.network.ProxySubscriptionManager;
|
||||
import com.android.settings.network.apn.ApnEditor.ApnData;
|
||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -103,13 +103,15 @@ public class ApnEditorTest {
|
||||
private FragmentActivity mActivity;
|
||||
@Mock
|
||||
private ProxySubscriptionManager mProxySubscriptionMgr;
|
||||
|
||||
@Mock
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
@Captor
|
||||
private ArgumentCaptor<Uri> mUriCaptor;
|
||||
|
||||
private ApnEditor mApnEditorUT;
|
||||
private Context mContext;
|
||||
private Resources mResources;
|
||||
private PersistableBundle mBundle = new PersistableBundle();
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -127,6 +129,10 @@ public class ApnEditorTest {
|
||||
doReturn(mContext.getTheme()).when(mActivity).getTheme();
|
||||
doReturn(mContext.getContentResolver()).when(mActivity).getContentResolver();
|
||||
|
||||
doReturn(mCarrierConfigManager).when(mContext)
|
||||
.getSystemService(Context.CARRIER_CONFIG_SERVICE);
|
||||
doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());
|
||||
|
||||
setMockPreference(mContext);
|
||||
mApnEditorUT.mApnData = new FakeApnData(APN_DATA);
|
||||
mApnEditorUT.sNotSet = "Not Set";
|
||||
@@ -379,6 +385,20 @@ public class ApnEditorTest {
|
||||
verify(mApnEditorUT).finish();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteApnData_shouldNotPresentMenuWhenNotSupportAdding() {
|
||||
mBundle.putBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL, false);
|
||||
|
||||
MenuItem item = Mockito.mock(MenuItem.class);
|
||||
Menu menu = Mockito.mock(Menu.class);
|
||||
doReturn(item).when(menu).add(anyInt(), anyInt(), anyInt(), anyInt());
|
||||
|
||||
mApnEditorUT.getCarrierCustomizedConfig(mContext);
|
||||
mApnEditorUT.onCreateOptionsMenu(menu, null);
|
||||
|
||||
verify(menu, times(0)).add(anyInt(), eq(ApnEditor.MENU_DELETE), anyInt(), anyInt());
|
||||
}
|
||||
|
||||
@Test(expected = ClassCastException.class)
|
||||
public void testApnData_invalidIntegerType_throwsInvalidTypeException() {
|
||||
// GIVEN a ApnData constructed from cursor
|
||||
|
Reference in New Issue
Block a user