Merge "[Provider Model] The SIMs page should list all p-SIMs" into sc-qpr1-dev am: 39b6769e5e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15834629 Change-Id: I80712b16464d2104e570038060044bde74c9c4fb
This commit is contained in:
@@ -26,9 +26,12 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Looper;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
|
||||
import com.android.settings.testutils.ResourcesUtils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
@@ -41,38 +44,39 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
|
||||
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 SUB_1 = "SUB_1";
|
||||
private static final String SUB_2 = "SUB_2";
|
||||
private static final int SUB_ID_1 = 1;
|
||||
private static final int SUB_ID_2 = 2;
|
||||
|
||||
@Mock
|
||||
private NetworkProviderDownloadedSimListController mNetworkProviderDownloadedSimListController;
|
||||
@Mock
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
@Mock
|
||||
private Lifecycle mLifecycle;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo1;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo2;
|
||||
|
||||
private Context mContext;
|
||||
private NetworkProviderDownloadedSimsCategoryController mCategoryController;
|
||||
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
private PreferenceManager mPreferenceManager;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private Preference mAddMorePreference;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
mCategoryController = new NetworkProviderDownloadedSimsCategoryController(
|
||||
mContext, KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM) {
|
||||
@Override
|
||||
protected NetworkProviderDownloadedSimListController createDownloadedSimListController(
|
||||
Lifecycle lifecycle) {
|
||||
return mNetworkProviderDownloadedSimListController;
|
||||
}
|
||||
};
|
||||
|
||||
if (Looper.myLooper() == null) {
|
||||
Looper.prepare();
|
||||
@@ -80,14 +84,21 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
|
||||
mPreferenceManager = new PreferenceManager(mContext);
|
||||
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
||||
when(mPreferenceCategory.getKey()).thenReturn(KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM);
|
||||
when(mPreferenceCategory.getPreferenceCount()).thenReturn(1);
|
||||
mPreferenceCategory = new PreferenceCategory(mContext);
|
||||
mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM);
|
||||
mAddMorePreference = new Preference(mContext);
|
||||
mAddMorePreference.setKey(KEY_ADD_MORE);
|
||||
mAddMorePreference.setVisible(true);
|
||||
mPreferenceScreen.addPreference(mPreferenceCategory);
|
||||
mPreferenceScreen.addPreference(mAddMorePreference);
|
||||
|
||||
mCategoryController = new NetworkProviderDownloadedSimsCategoryController(mContext,
|
||||
KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM, mLifecycle);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_returnUnavailable() {
|
||||
mNetworkProviderDownloadedSimListController = null;
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
|
||||
|
||||
assertThat(mCategoryController.getAvailabilityStatus()).isEqualTo(
|
||||
CONDITIONALLY_UNAVAILABLE);
|
||||
@@ -95,10 +106,46 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
|
||||
|
||||
@Test
|
||||
public void displayPreference_isVisible() {
|
||||
when(mNetworkProviderDownloadedSimListController.isAvailable()).thenReturn(true);
|
||||
mCategoryController.init(mLifecycle);
|
||||
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
|
||||
mCategoryController.displayPreference(mPreferenceScreen);
|
||||
|
||||
assertEquals(mPreferenceCategory.isVisible(), true);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void updateState_setTitle_withTwoDownloadedSims_returnDownloadedSims() {
|
||||
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
setUpSubscriptionInfoForDownloadedSim(SUB_ID_2, SUB_2, mSubscriptionInfo2);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(
|
||||
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
|
||||
|
||||
mCategoryController.displayPreference(mPreferenceScreen);
|
||||
mCategoryController.updateState(mPreferenceCategory);
|
||||
|
||||
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(2);
|
||||
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
|
||||
ResourcesUtils.getResourcesString(mContext, "downloaded_sims_category_title"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_setTitle_withOneDownloadedSim_returnDownloadedSim() {
|
||||
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
|
||||
|
||||
mCategoryController.displayPreference(mPreferenceScreen);
|
||||
mCategoryController.updateState(mPreferenceCategory);
|
||||
|
||||
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1);
|
||||
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
|
||||
ResourcesUtils.getResourcesString(mContext, "downloaded_sim_category_title"));
|
||||
}
|
||||
|
||||
private void setUpSubscriptionInfoForDownloadedSim(int subId, String displayName,
|
||||
SubscriptionInfo subscriptionInfo) {
|
||||
when(subscriptionInfo.isEmbedded()).thenReturn(true);
|
||||
when(subscriptionInfo.getSubscriptionId()).thenReturn(subId);
|
||||
when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
|
||||
}
|
||||
}
|
||||
|
@@ -16,10 +16,14 @@
|
||||
|
||||
package com.android.settings.network;
|
||||
|
||||
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static androidx.lifecycle.Lifecycle.Event;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -170,7 +174,6 @@ public class NetworkProviderSimListControllerTest {
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void getSummary_inactivePSim() {
|
||||
@@ -227,4 +230,18 @@ public class NetworkProviderSimListControllerTest {
|
||||
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
|
||||
}
|
||||
|
||||
@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));
|
||||
displayPreferenceWithLifecycle();
|
||||
|
||||
assertThat(mController.getAvailablePhysicalSubscription().size()).isEqualTo(2);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -17,6 +17,7 @@
|
||||
package com.android.settings.network;
|
||||
|
||||
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
@@ -25,7 +26,10 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Looper;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
|
||||
import com.android.settings.testutils.ResourcesUtils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
import androidx.preference.PreferenceCategory;
|
||||
@@ -40,37 +44,35 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class NetworkProviderSimsCategoryControllerTest {
|
||||
|
||||
private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
|
||||
private static final String SUB_1 = "SUB_1";
|
||||
private static final String SUB_2 = "SUB_2";
|
||||
private static final int SUB_ID_1 = 1;
|
||||
private static final int SUB_ID_2 = 2;
|
||||
|
||||
@Mock
|
||||
private NetworkProviderSimListController mNetworkProviderSimListController;
|
||||
@Mock
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
@Mock
|
||||
private Lifecycle mLifecycle;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo1;
|
||||
@Mock
|
||||
private SubscriptionInfo mSubscriptionInfo2;
|
||||
|
||||
private Context mContext;
|
||||
private NetworkProviderSimsCategoryController mCategoryController;
|
||||
|
||||
private PreferenceManager mPreferenceManager;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
mCategoryController = new NetworkProviderSimsCategoryController(
|
||||
mContext, KEY_PREFERENCE_CATEGORY_SIM) {
|
||||
@Override
|
||||
protected NetworkProviderSimListController createSimListController(
|
||||
Lifecycle lifecycle) {
|
||||
return mNetworkProviderSimListController;
|
||||
}
|
||||
};
|
||||
|
||||
if (Looper.myLooper() == null) {
|
||||
Looper.prepare();
|
||||
@@ -78,14 +80,17 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
|
||||
mPreferenceManager = new PreferenceManager(mContext);
|
||||
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
||||
when(mPreferenceCategory.getKey()).thenReturn(KEY_PREFERENCE_CATEGORY_SIM);
|
||||
when(mPreferenceCategory.getPreferenceCount()).thenReturn(1);
|
||||
mPreferenceCategory = new PreferenceCategory(mContext);
|
||||
mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_SIM);
|
||||
mPreferenceScreen.addPreference(mPreferenceCategory);
|
||||
|
||||
mCategoryController = new NetworkProviderSimsCategoryController(
|
||||
mContext, KEY_PREFERENCE_CATEGORY_SIM, mLifecycle);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_returnUnavailable() {
|
||||
mNetworkProviderSimListController = null;
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
|
||||
|
||||
assertThat(mCategoryController.getAvailabilityStatus()).isEqualTo(
|
||||
CONDITIONALLY_UNAVAILABLE);
|
||||
@@ -93,10 +98,46 @@ public class NetworkProviderSimsCategoryControllerTest {
|
||||
|
||||
@Test
|
||||
public void displayPreference_isVisible() {
|
||||
when(mNetworkProviderSimListController.isAvailable()).thenReturn(true);
|
||||
mCategoryController.init(mLifecycle);
|
||||
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
|
||||
mCategoryController.displayPreference(mPreferenceScreen);
|
||||
|
||||
assertEquals(mPreferenceCategory.isVisible(), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_setTitle_withTwoPhysicalSims_returnSims() {
|
||||
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
setUpSubscriptionInfoForPhysicalSim(SUB_ID_2, SUB_2, mSubscriptionInfo2);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(
|
||||
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
|
||||
|
||||
mCategoryController.displayPreference(mPreferenceScreen);
|
||||
mCategoryController.updateState(mPreferenceCategory);
|
||||
|
||||
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(2);
|
||||
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
|
||||
ResourcesUtils.getResourcesString(mContext, "provider_network_settings_title"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_setTitle_withOnePhysicalSim_returnSim() {
|
||||
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
|
||||
|
||||
mCategoryController.displayPreference(mPreferenceScreen);
|
||||
mCategoryController.updateState(mPreferenceCategory);
|
||||
|
||||
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1);
|
||||
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
|
||||
ResourcesUtils.getResourcesString(mContext, "sim_category_title"));
|
||||
}
|
||||
|
||||
private void setUpSubscriptionInfoForPhysicalSim(int subId, String displayName,
|
||||
SubscriptionInfo subscriptionInfo) {
|
||||
when(subscriptionInfo.isEmbedded()).thenReturn(false);
|
||||
when(subscriptionInfo.getSubscriptionId()).thenReturn(subId);
|
||||
when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user