[Settings] Change the way in MobileNetworkListFragment for getting the subscription info from room db part3
Bug: 254405469 Test: atest NetworkProviderDownloadedSimListControllerTest, atest NetworkProviderSimListControllerTest Change-Id: Iec6e17688b260d2fef464a711f92e788fe76fbe7
This commit is contained in:
@@ -25,22 +25,24 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Looper;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.lifecycle.LifecycleRegistry;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.test.annotation.UiThreadTest;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.ResourcesUtils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -49,34 +51,38 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class NetworkProviderDownloadedSimListControllerTest {
|
||||
|
||||
private static final int SUB_ID = 1;
|
||||
private static final String SUB_ID_1 = "1";
|
||||
private static final String DISPLAY_NAME_1 = "Sub 1";
|
||||
private static final String SUB_MCC_1 = "123";
|
||||
private static final String SUB_MNC_1 = "456";
|
||||
private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
|
||||
private static final String KEY_PREFERENCE_DOWNLOADED_SIM =
|
||||
"provider_model_downloaded_sim_list";
|
||||
private static final String KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM =
|
||||
"provider_model_downloaded_sim_category";
|
||||
private static final String KEY_ADD_MORE = "add_more";
|
||||
private static final String DISPLAY_NAME = "Sub 1";
|
||||
|
||||
@Mock
|
||||
private SubscriptionManager mSubscriptionManager;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo;
|
||||
private SubscriptionInfoEntity mSubInfo1;
|
||||
@Mock
|
||||
private Lifecycle mLifecycle;
|
||||
@Mock
|
||||
private LifecycleOwner mLifecycleOwner;
|
||||
private LifecycleRegistry mLifecycleRegistry;
|
||||
|
||||
private LifecycleRegistry mLifecycleRegistry;
|
||||
private MockNetworkProviderDownloadedSimListController mController;
|
||||
private PreferenceManager mPreferenceManager;
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private Preference mPreference;
|
||||
private Preference mAddMorePreference;
|
||||
|
||||
private Context mContext;
|
||||
private List<SubscriptionInfoEntity> mSubscriptionInfoEntityList = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Mock the MockNetworkProviderDownloadedSimListController that allows one to set a
|
||||
@@ -86,48 +92,26 @@ public class NetworkProviderDownloadedSimListControllerTest {
|
||||
private class MockNetworkProviderDownloadedSimListController extends
|
||||
com.android.settings.network.NetworkProviderDownloadedSimListController {
|
||||
public MockNetworkProviderDownloadedSimListController(Context context,
|
||||
Lifecycle lifecycle) {
|
||||
super(context, lifecycle);
|
||||
Lifecycle lifecycle, LifecycleOwner lifecycleOwner) {
|
||||
super(context, lifecycle, lifecycleOwner);
|
||||
}
|
||||
|
||||
private int mDefaultVoiceSubscriptionId;
|
||||
private int mDefaultSmsSubscriptionId;
|
||||
private int mDefaultDataSubscriptionId;
|
||||
private List<SubscriptionInfoEntity> mSubscriptionInfoEntity;
|
||||
|
||||
@Override
|
||||
protected int getDefaultVoiceSubscriptionId() {
|
||||
return mDefaultVoiceSubscriptionId;
|
||||
protected List<SubscriptionInfoEntity> getAvailableDownloadedSubscriptions() {
|
||||
return mSubscriptionInfoEntity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultSmsSubscriptionId() {
|
||||
return mDefaultSmsSubscriptionId;
|
||||
public void setSubscriptionInfoList(List<SubscriptionInfoEntity> list) {
|
||||
mSubscriptionInfoEntity = list;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultDataSubscriptionId() {
|
||||
return mDefaultDataSubscriptionId;
|
||||
}
|
||||
|
||||
public void setDefaultVoiceSubscriptionId(int subscriptionId) {
|
||||
mDefaultVoiceSubscriptionId = subscriptionId;
|
||||
}
|
||||
|
||||
public void setDefaultSmsSubscriptionId(int subscriptionId) {
|
||||
mDefaultSmsSubscriptionId = subscriptionId;
|
||||
}
|
||||
|
||||
public void setDefaultDataSubscriptionId(int subscriptionId) {
|
||||
mDefaultDataSubscriptionId = subscriptionId;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
|
||||
|
||||
if (Looper.myLooper() == null) {
|
||||
Looper.prepare();
|
||||
@@ -137,7 +121,10 @@ public class NetworkProviderDownloadedSimListControllerTest {
|
||||
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
||||
mPreference = new Preference(mContext);
|
||||
mPreference.setKey(KEY_PREFERENCE_DOWNLOADED_SIM);
|
||||
mController = new MockNetworkProviderDownloadedSimListController(mContext, mLifecycle);
|
||||
mPreferenceCategory = new PreferenceCategory(mContext);
|
||||
mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM);
|
||||
mController = new MockNetworkProviderDownloadedSimListController(mContext, mLifecycle,
|
||||
mLifecycleOwner);
|
||||
mAddMorePreference = new Preference(mContext);
|
||||
mAddMorePreference.setKey(KEY_ADD_MORE);
|
||||
mAddMorePreference.setVisible(true);
|
||||
@@ -148,17 +135,22 @@ public class NetworkProviderDownloadedSimListControllerTest {
|
||||
private void displayPreferenceWithLifecycle() {
|
||||
mLifecycleRegistry.addObserver(mController);
|
||||
mPreferenceScreen.addPreference(mPreference);
|
||||
mPreferenceScreen.addPreference(mPreferenceCategory);
|
||||
mPreferenceScreen.addPreference(mAddMorePreference);
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
mLifecycleRegistry.handleLifecycleEvent(Event.ON_RESUME);
|
||||
}
|
||||
|
||||
private void setupSubscriptionInfoList(int subId, String displayName,
|
||||
SubscriptionInfo subscriptionInfo) {
|
||||
when(subscriptionInfo.getSubscriptionId()).thenReturn(subId);
|
||||
doReturn(subscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(subId);
|
||||
when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
|
||||
when(subscriptionInfo.isEmbedded()).thenReturn(true);
|
||||
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
|
||||
int carrierId, String displayName, String mcc, String mnc, String countryIso,
|
||||
int cardId, CharSequence defaultSimConfig, boolean isValid, boolean isActive,
|
||||
boolean isAvailable, boolean isDefaultCall, boolean isDefaultData,
|
||||
boolean isDefaultSms) {
|
||||
return new SubscriptionInfoEntity(subId, slotId, carrierId, displayName, displayName, 0,
|
||||
mcc, mnc, countryIso, true, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
|
||||
null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
||||
"1234567890", true, defaultSimConfig.toString(), false, isValid, true, isActive,
|
||||
isAvailable, isDefaultCall, isDefaultSms, isDefaultData, false);
|
||||
}
|
||||
|
||||
private String setSummaryResId(String resName) {
|
||||
@@ -168,56 +160,57 @@ public class NetworkProviderDownloadedSimListControllerTest {
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_inactiveESim() {
|
||||
setupSubscriptionInfoList(SUB_ID, DISPLAY_NAME, mSubscriptionInfo);
|
||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>());
|
||||
doReturn(false).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID);
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, "", true, false, false, false, false, false);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
String summary = setSummaryResId("sim_category_inactive_sim");
|
||||
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID), summary));
|
||||
assertTrue(TextUtils.equals(mController.getSummary(mSubInfo1), summary));
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_defaultCalls() {
|
||||
mController.setDefaultVoiceSubscriptionId(SUB_ID);
|
||||
setupSubscriptionInfoList(SUB_ID, DISPLAY_NAME, mSubscriptionInfo);
|
||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID);
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1,
|
||||
mContext.getString(R.string.sim_category_default_active_sim,
|
||||
setSummaryResId("default_active_sim_calls")), true,
|
||||
true, true, true, false, false);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
CharSequence defaultCall = SubscriptionUtil.getDefaultSimConfig(mContext, SUB_ID);
|
||||
CharSequence defaultCall = mSubInfo1.defaultSimConfig;
|
||||
final StringBuilder summary = new StringBuilder();
|
||||
summary.append(setSummaryResId("sim_category_active_sim"))
|
||||
.append(defaultCall);
|
||||
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID), summary));
|
||||
assertTrue(TextUtils.equals(mController.getSummary(mSubInfo1), summary));
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_defaultCallsAndMobileData() {
|
||||
mController.setDefaultVoiceSubscriptionId(SUB_ID);
|
||||
mController.setDefaultDataSubscriptionId(SUB_ID);
|
||||
setupSubscriptionInfoList(SUB_ID, DISPLAY_NAME, mSubscriptionInfo);
|
||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID);
|
||||
final StringBuilder defaultConfig = new StringBuilder();
|
||||
defaultConfig.append(setSummaryResId("default_active_sim_mobile_data"))
|
||||
.append(", ")
|
||||
.append(setSummaryResId("default_active_sim_calls"));
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1,
|
||||
mContext.getString(R.string.sim_category_default_active_sim, defaultConfig), true,
|
||||
true, true, true, true,
|
||||
false);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
CharSequence defaultCall = SubscriptionUtil.getDefaultSimConfig(mContext, SUB_ID);
|
||||
CharSequence defaultCall = mSubInfo1.defaultSimConfig;
|
||||
final StringBuilder summary = new StringBuilder();
|
||||
summary.append(setSummaryResId("sim_category_active_sim"))
|
||||
.append(defaultCall);
|
||||
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID), summary));
|
||||
assertTrue(TextUtils.equals(mController.getSummary(mSubInfo1), summary));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -31,6 +31,7 @@ import android.telephony.SubscriptionInfo;
|
||||
import com.android.settings.testutils.ResourcesUtils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceManager;
|
||||
@@ -39,6 +40,7 @@ import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
@@ -47,6 +49,8 @@ import org.mockito.MockitoAnnotations;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
//TODO: Remove NetworkProviderDownloadedSimsCategoryControllerTest once it is removed in the
|
||||
// b/244769887.
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
|
||||
@@ -71,6 +75,7 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
private PreferenceManager mPreferenceManager;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private Preference mAddMorePreference;
|
||||
private LifecycleOwner mLifecycleOwner;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
@@ -82,6 +87,7 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
Looper.prepare();
|
||||
}
|
||||
|
||||
mLifecycleOwner = () -> mLifecycle;
|
||||
mPreferenceManager = new PreferenceManager(mContext);
|
||||
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
||||
mPreferenceCategory = new PreferenceCategory(mContext);
|
||||
@@ -93,9 +99,10 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
mPreferenceScreen.addPreference(mAddMorePreference);
|
||||
|
||||
mCategoryController = new NetworkProviderDownloadedSimsCategoryController(mContext,
|
||||
KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM, mLifecycle);
|
||||
KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM, mLifecycle, mLifecycleOwner);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void getAvailabilityStatus_returnUnavailable() {
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
|
||||
@@ -104,6 +111,7 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void displayPreference_isVisible() {
|
||||
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
@@ -113,7 +121,7 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
assertEquals(mPreferenceCategory.isVisible(), true);
|
||||
}
|
||||
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void updateState_setTitle_withTwoDownloadedSims_returnDownloadedSims() {
|
||||
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
@@ -129,6 +137,7 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
ResourcesUtils.getResourcesString(mContext, "downloaded_sims_category_title"));
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void updateState_setTitle_withOneDownloadedSim_returnDownloadedSim() {
|
||||
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
|
@@ -29,21 +29,24 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Looper;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.lifecycle.LifecycleRegistry;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.test.annotation.UiThreadTest;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.ResourcesUtils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
@@ -53,19 +56,30 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class NetworkProviderSimListControllerTest {
|
||||
|
||||
private static final int SUB_ID_1 = 1;
|
||||
private static final String SUB_ID_1 = "1";
|
||||
private static final String SUB_ID_2 = "2";
|
||||
private static final String KEY_PREFERENCE_SIM_LIST = "provider_model_sim_list";
|
||||
private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
|
||||
private static final String DISPLAY_NAME_1 = "Sub 1";
|
||||
private static final String DISPLAY_NAME_2 = "Sub 2";
|
||||
private static final String SUB_MCC_1 = "123";
|
||||
private static final String SUB_MNC_1 = "456";
|
||||
private static final String SUB_MCC_2 = "223";
|
||||
private static final String SUB_MNC_2 = "456";
|
||||
private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
|
||||
private static final String SUB_COUNTRY_ISO_2 = "Sub 2";
|
||||
|
||||
@Mock
|
||||
private SubscriptionManager mSubscriptionManager;
|
||||
private SubscriptionInfoEntity mSubInfo1;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo;
|
||||
private SubscriptionInfoEntity mSubInfo2;
|
||||
@Mock
|
||||
private SubscriptionManager mSubscriptionManager;
|
||||
@Mock
|
||||
private Lifecycle mLifecycle;
|
||||
@Mock
|
||||
@@ -74,10 +88,11 @@ public class NetworkProviderSimListControllerTest {
|
||||
|
||||
private MockNetworkProviderSimListController mController;
|
||||
private PreferenceManager mPreferenceManager;
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private Preference mPreference;
|
||||
|
||||
private Context mContext;
|
||||
private List<SubscriptionInfoEntity> mSubscriptionInfoEntityList = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Mock the NetworkProviderSimListController that allows one to set a default voice,
|
||||
@@ -86,41 +101,21 @@ public class NetworkProviderSimListControllerTest {
|
||||
@SuppressWarnings("ClassCanBeStatic")
|
||||
private class MockNetworkProviderSimListController extends
|
||||
com.android.settings.network.NetworkProviderSimListController {
|
||||
public MockNetworkProviderSimListController(Context context, Lifecycle lifecycle) {
|
||||
super(context, lifecycle);
|
||||
public MockNetworkProviderSimListController(Context context, Lifecycle lifecycle,
|
||||
LifecycleOwner lifecycleOwner) {
|
||||
super(context, lifecycle, lifecycleOwner);
|
||||
}
|
||||
|
||||
private int mDefaultVoiceSubscriptionId;
|
||||
private int mDefaultSmsSubscriptionId;
|
||||
private int mDefaultDataSubscriptionId;
|
||||
private List<SubscriptionInfoEntity> mSubscriptionInfoEntity;
|
||||
|
||||
@Override
|
||||
protected int getDefaultVoiceSubscriptionId() {
|
||||
return mDefaultVoiceSubscriptionId;
|
||||
protected List<SubscriptionInfoEntity> getAvailablePhysicalSubscriptions() {
|
||||
return mSubscriptionInfoEntity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultSmsSubscriptionId() {
|
||||
return mDefaultSmsSubscriptionId;
|
||||
public void setSubscriptionInfoList(List<SubscriptionInfoEntity> list) {
|
||||
mSubscriptionInfoEntity = list;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultDataSubscriptionId() {
|
||||
return mDefaultDataSubscriptionId;
|
||||
}
|
||||
|
||||
public void setDefaultVoiceSubscriptionId(int subscriptionId) {
|
||||
mDefaultVoiceSubscriptionId = subscriptionId;
|
||||
}
|
||||
|
||||
public void setDefaultSmsSubscriptionId(int subscriptionId) {
|
||||
mDefaultSmsSubscriptionId = subscriptionId;
|
||||
}
|
||||
|
||||
public void setDefaultDataSubscriptionId(int subscriptionId) {
|
||||
mDefaultDataSubscriptionId = subscriptionId;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Before
|
||||
@@ -137,7 +132,10 @@ public class NetworkProviderSimListControllerTest {
|
||||
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
||||
mPreference = new Preference(mContext);
|
||||
mPreference.setKey(KEY_PREFERENCE_SIM_LIST);
|
||||
mController = new MockNetworkProviderSimListController(mContext, mLifecycle);
|
||||
mPreferenceCategory = new PreferenceCategory(mContext);
|
||||
mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_SIM);
|
||||
mController = new MockNetworkProviderSimListController(mContext, mLifecycle,
|
||||
mLifecycleOwner);
|
||||
mLifecycleRegistry = new LifecycleRegistry(mLifecycleOwner);
|
||||
when(mLifecycleOwner.getLifecycle()).thenReturn(mLifecycleRegistry);
|
||||
}
|
||||
@@ -145,105 +143,118 @@ public class NetworkProviderSimListControllerTest {
|
||||
private void displayPreferenceWithLifecycle() {
|
||||
mLifecycleRegistry.addObserver(mController);
|
||||
mPreferenceScreen.addPreference(mPreference);
|
||||
mPreferenceScreen.addPreference(mPreferenceCategory);
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
mLifecycleRegistry.handleLifecycleEvent(Event.ON_RESUME);
|
||||
}
|
||||
|
||||
private void setupSubscriptionInfoList(int subId, String displayName,
|
||||
SubscriptionInfo subscriptionInfo) {
|
||||
when(subscriptionInfo.getSubscriptionId()).thenReturn(subId);
|
||||
doReturn(subscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(subId);
|
||||
when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
|
||||
when(subscriptionInfo.isEmbedded()).thenReturn(false);
|
||||
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
|
||||
int carrierId, String displayName, String mcc, String mnc, String countryIso,
|
||||
int cardId, CharSequence defaultSimConfig, boolean isValid, boolean isActive,
|
||||
boolean isAvailable, boolean isDefaultCall, boolean isDefaultSms) {
|
||||
return new SubscriptionInfoEntity(subId, slotId, carrierId, displayName, displayName, 0,
|
||||
mcc, mnc, countryIso, false, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
|
||||
null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
||||
"1234567890", true, defaultSimConfig.toString(), false, isValid, true, isActive,
|
||||
isAvailable,
|
||||
isDefaultCall, isDefaultSms, false, false);
|
||||
}
|
||||
|
||||
private String setSummaryResId(String resName, String value) {
|
||||
return ResourcesUtils.getResourcesString(mContext, resName, value);
|
||||
}
|
||||
|
||||
private String setSummaryResId(String resName) {
|
||||
return ResourcesUtils.getResourcesString(mContext, resName);
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_tapToActivePSim() {
|
||||
setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo);
|
||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>());
|
||||
doReturn(false).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID_1);
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, "", true, false, false, false, false);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
String summary = setSummaryResId("mobile_network_tap_to_activate", DISPLAY_NAME_1);
|
||||
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
|
||||
assertTrue(TextUtils.equals(mController.getSummary(mSubInfo1, DISPLAY_NAME_1), summary));
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_inactivePSim() {
|
||||
setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo);
|
||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>());
|
||||
doReturn(false).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID_1);
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, "", true, false, false, false, false);
|
||||
doReturn(true).when(mSubscriptionManager).canDisablePhysicalSubscription();
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
String summary = setSummaryResId("sim_category_inactive_sim", null);
|
||||
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
|
||||
assertTrue(TextUtils.equals(mController.getSummary(mSubInfo1, DISPLAY_NAME_1), summary));
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_defaultCalls() {
|
||||
mController.setDefaultVoiceSubscriptionId(SUB_ID_1);
|
||||
setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo);
|
||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID_1);
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1,
|
||||
mContext.getString(R.string.sim_category_default_active_sim,
|
||||
setSummaryResId("default_active_sim_calls")), true, true, true, true,
|
||||
false);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
CharSequence defaultCall = SubscriptionUtil.getDefaultSimConfig(mContext, SUB_ID_1);
|
||||
CharSequence defaultCall = mSubInfo1.defaultSimConfig;
|
||||
final StringBuilder summary = new StringBuilder();
|
||||
summary.append(setSummaryResId("sim_category_active_sim", null))
|
||||
.append(defaultCall);
|
||||
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
|
||||
assertTrue(TextUtils.equals(mController.getSummary(mSubInfo1, DISPLAY_NAME_1), summary));
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_defaultCallsAndSms() {
|
||||
mController.setDefaultVoiceSubscriptionId(SUB_ID_1);
|
||||
mController.setDefaultSmsSubscriptionId(SUB_ID_1);
|
||||
setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo);
|
||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(mSubscriptionInfo));
|
||||
doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID_1);
|
||||
final StringBuilder defaultConfig = new StringBuilder();
|
||||
defaultConfig.append(setSummaryResId("default_active_sim_calls"))
|
||||
.append(", ")
|
||||
.append(setSummaryResId("default_active_sim_sms"));
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1,
|
||||
mContext.getString(R.string.sim_category_default_active_sim, defaultConfig), true,
|
||||
true, true, true, true);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
CharSequence defaultCall = SubscriptionUtil.getDefaultSimConfig(mContext, SUB_ID_1);
|
||||
CharSequence defaultCall = mSubInfo1.defaultSimConfig;
|
||||
final StringBuilder summary = new StringBuilder();
|
||||
summary.append(setSummaryResId("sim_category_active_sim", null))
|
||||
.append(defaultCall);
|
||||
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
|
||||
assertTrue(TextUtils.equals(mController.getSummary(mSubInfo1, DISPLAY_NAME_1), summary));
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getAvailablePhysicalSubscription_withTwoPhysicalSims_returnTwo() {
|
||||
final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
|
||||
when(info1.isEmbedded()).thenReturn(false);
|
||||
final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
|
||||
when(info2.isEmbedded()).thenReturn(false);
|
||||
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
|
||||
Arrays.asList(info1, info2));
|
||||
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
|
||||
SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, "", true, true, true, true, true);
|
||||
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
|
||||
SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, "", true, true, true, false, false);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo1);
|
||||
mSubscriptionInfoEntityList.add(mSubInfo2);
|
||||
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
|
||||
|
||||
displayPreferenceWithLifecycle();
|
||||
|
||||
assertThat(mController.getAvailablePhysicalSubscription().size()).isEqualTo(2);
|
||||
assertThat(mController.getAvailablePhysicalSubscriptions().size()).isEqualTo(2);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -32,6 +32,7 @@ import android.telephony.SubscriptionManager;
|
||||
import com.android.settings.testutils.ResourcesUtils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
@@ -39,6 +40,7 @@ import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
@@ -47,6 +49,7 @@ import org.mockito.MockitoAnnotations;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
//TODO: Remove NetworkProviderSimsCategoryControllerTest once it is removed in the b/244769887.
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class NetworkProviderSimsCategoryControllerTest {
|
||||
|
||||
@@ -68,6 +71,7 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
private PreferenceManager mPreferenceManager;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
private LifecycleOwner mLifecycleOwner;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
@@ -78,6 +82,7 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
Looper.prepare();
|
||||
}
|
||||
|
||||
mLifecycleOwner = () -> mLifecycle;
|
||||
mPreferenceManager = new PreferenceManager(mContext);
|
||||
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
||||
mPreferenceCategory = new PreferenceCategory(mContext);
|
||||
@@ -85,9 +90,10 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
mPreferenceScreen.addPreference(mPreferenceCategory);
|
||||
|
||||
mCategoryController = new NetworkProviderSimsCategoryController(
|
||||
mContext, KEY_PREFERENCE_CATEGORY_SIM, mLifecycle);
|
||||
mContext, KEY_PREFERENCE_CATEGORY_SIM, mLifecycle, mLifecycleOwner);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void getAvailabilityStatus_returnUnavailable() {
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
|
||||
@@ -96,6 +102,7 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void displayPreference_isVisible() {
|
||||
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
@@ -105,6 +112,7 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
assertEquals(mPreferenceCategory.isVisible(), true);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void updateState_setTitle_withTwoPhysicalSims_returnSims() {
|
||||
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
@@ -120,6 +128,7 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
ResourcesUtils.getResourcesString(mContext, "provider_network_settings_title"));
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void updateState_setTitle_withOnePhysicalSim_returnSim() {
|
||||
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
|
Reference in New Issue
Block a user