Use active instead of available subscriptions in 2 places

In a couple of places we were showing DSDS UI using the list of
*available* subscriptions instead of the list of *active* ones. This
difference is relevant for instance if you have multiple eSIM profiles -
in typical hardware only one of those can be active at one time. This CL
fixes that problem in two places:

1) The header at the top of the Network & internet page

2) The ListPreference's on the mobile network detail page for selecting
   the default subscription for Calls / SMS.

Fixes: 129673046
Test: make RunSettingsRoboTests
Change-Id: I891c856bdd4516286fcee1067684d9161ceaca80
This commit is contained in:
Antony Sargent
2019-04-08 13:42:14 -07:00
parent 81f31ef4d3
commit 4646fe8e63
6 changed files with 86 additions and 40 deletions

View File

@@ -27,16 +27,33 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
public class SubscriptionUtil { public class SubscriptionUtil {
private static List<SubscriptionInfo> sResultsForTesting; private static List<SubscriptionInfo> sAvailableResultsForTesting;
private static List<SubscriptionInfo> sActiveResultsForTesting;
@VisibleForTesting @VisibleForTesting
public static void setAvailableSubscriptionsForTesting(List<SubscriptionInfo> results) { public static void setAvailableSubscriptionsForTesting(List<SubscriptionInfo> results) {
sResultsForTesting = results; sAvailableResultsForTesting = results;
}
@VisibleForTesting
public static void setActiveSubscriptionsForTesting(List<SubscriptionInfo> results) {
sActiveResultsForTesting = results;
}
public static List<SubscriptionInfo> getActiveSubscriptions(SubscriptionManager manager) {
if (sActiveResultsForTesting != null) {
return sActiveResultsForTesting;
}
List<SubscriptionInfo> subscriptions = manager.getActiveSubscriptionInfoList(true);
if (subscriptions == null) {
return new ArrayList<>();
}
return subscriptions;
} }
public static List<SubscriptionInfo> getAvailableSubscriptions(SubscriptionManager manager) { public static List<SubscriptionInfo> getAvailableSubscriptions(SubscriptionManager manager) {
if (sResultsForTesting != null) { if (sAvailableResultsForTesting != null) {
return sResultsForTesting; return sAvailableResultsForTesting;
} }
List<SubscriptionInfo> subscriptions = manager.getSelectableSubscriptionInfoList(); List<SubscriptionInfo> subscriptions = manager.getSelectableSubscriptionInfoList();
if (subscriptions == null) { if (subscriptions == null) {

View File

@@ -129,7 +129,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
mSubscriptionPreferences = new ArrayMap<>(); mSubscriptionPreferences = new ArrayMap<>();
int order = mStartOrder; int order = mStartOrder;
for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(mManager)) { for (SubscriptionInfo info : SubscriptionUtil.getActiveSubscriptions(mManager)) {
final int subId = info.getSubscriptionId(); final int subId = info.getSubscriptionId();
Preference pref = existingPrefs.remove(subId); Preference pref = existingPrefs.remove(subId);
if (pref == null) { if (pref == null) {
@@ -216,7 +216,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
if (mSubscriptionsListener.isAirplaneModeOn()) { if (mSubscriptionsListener.isAirplaneModeOn()) {
return false; return false;
} }
return SubscriptionUtil.getAvailableSubscriptions(mManager).size() >= 2; return SubscriptionUtil.getActiveSubscriptions(mManager).size() >= 2;
} }
@Override @Override

View File

@@ -75,7 +75,7 @@ public abstract class DefaultSubscriptionController extends BasePreferenceContro
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mManager); final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager);
if (subs.size() > 1) { if (subs.size() > 1) {
return AVAILABLE; return AVAILABLE;
} else { } else {
@@ -121,7 +121,7 @@ public abstract class DefaultSubscriptionController extends BasePreferenceContro
} }
mPreference.setVisible(true); mPreference.setVisible(true);
final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mManager); final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager);
// We'll have one entry for each available subscription, plus one for a "ask me every // We'll have one entry for each available subscription, plus one for a "ask me every
// time" entry at the end. // time" entry at the end.

View File

@@ -18,6 +18,7 @@ package com.android.settings.network;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -108,4 +109,32 @@ public class SubscriptionUtilTest {
assertThat(subs.get(0).getSubscriptionId()).isEqualTo(1); assertThat(subs.get(0).getSubscriptionId()).isEqualTo(1);
assertThat(subs.get(1).getSubscriptionId()).isEqualTo(4); assertThat(subs.get(1).getSubscriptionId()).isEqualTo(4);
} }
@Test
public void getActiveSubscriptions_nullInfoFromSubscriptionManager_nonNullResult() {
when(mManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(null);
final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager);
assertThat(subs).isNotNull();
assertThat(subs).isEmpty();
}
@Test
public void getActiveSubscriptions_oneSubscription_oneResult() {
final SubscriptionInfo info = mock(SubscriptionInfo.class);
when(mManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(Arrays.asList(info));
final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager);
assertThat(subs).isNotNull();
assertThat(subs).hasSize(1);
}
@Test
public void getActiveSubscriptions_twoSubscriptions_twoResults() {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
when(mManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(
Arrays.asList(info1, info2));
final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager);
assertThat(subs).isNotNull();
assertThat(subs).hasSize(2);
}
} }

View File

@@ -103,19 +103,19 @@ public class SubscriptionsPreferenceControllerTest {
@After @After
public void tearDown() { public void tearDown() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(null); SubscriptionUtil.setActiveSubscriptionsForTesting(null);
} }
@Test @Test
public void isAvailable_oneSubscription_availableFalse() { public void isAvailable_oneSubscription_availableFalse() {
SubscriptionUtil.setAvailableSubscriptionsForTesting( SubscriptionUtil.setActiveSubscriptionsForTesting(
Arrays.asList(mock(SubscriptionInfo.class))); Arrays.asList(mock(SubscriptionInfo.class)));
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
} }
@Test @Test
public void isAvailable_twoSubscriptions_availableTrue() { public void isAvailable_twoSubscriptions_availableTrue() {
SubscriptionUtil.setAvailableSubscriptionsForTesting( SubscriptionUtil.setActiveSubscriptionsForTesting(
Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class))); Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class)));
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@@ -126,13 +126,13 @@ public class SubscriptionsPreferenceControllerTest {
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
subs.add(mock(SubscriptionInfo.class)); subs.add(mock(SubscriptionInfo.class));
} }
SubscriptionUtil.setAvailableSubscriptionsForTesting(subs); SubscriptionUtil.setActiveSubscriptionsForTesting(subs);
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@Test @Test
public void isAvailable_airplaneModeOn_availableFalse() { public void isAvailable_airplaneModeOn_availableFalse() {
SubscriptionUtil.setAvailableSubscriptionsForTesting( SubscriptionUtil.setActiveSubscriptionsForTesting(
Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class))); Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class)));
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
@@ -141,7 +141,7 @@ public class SubscriptionsPreferenceControllerTest {
@Test @Test
public void onAirplaneModeChanged_airplaneModeTurnedOn_eventFired() { public void onAirplaneModeChanged_airplaneModeTurnedOn_eventFired() {
SubscriptionUtil.setAvailableSubscriptionsForTesting( SubscriptionUtil.setActiveSubscriptionsForTesting(
Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class))); Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class)));
mController.onResume(); mController.onResume();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -157,7 +157,7 @@ public class SubscriptionsPreferenceControllerTest {
@Test @Test
public void onAirplaneModeChanged_airplaneModeTurnedOff_eventFired() { public void onAirplaneModeChanged_airplaneModeTurnedOff_eventFired() {
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
SubscriptionUtil.setAvailableSubscriptionsForTesting( SubscriptionUtil.setActiveSubscriptionsForTesting(
Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class))); Arrays.asList(mock(SubscriptionInfo.class), mock(SubscriptionInfo.class)));
mController.onResume(); mController.onResume();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -174,13 +174,13 @@ public class SubscriptionsPreferenceControllerTest {
public void onSubscriptionsChanged_countBecameTwo_eventFired() { public void onSubscriptionsChanged_countBecameTwo_eventFired() {
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class); final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
final SubscriptionInfo sub2 = mock(SubscriptionInfo.class); final SubscriptionInfo sub2 = mock(SubscriptionInfo.class);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
mController.onResume(); mController.onResume();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
final int updateCountBeforeSubscriptionChange = mOnChildUpdatedCount; final int updateCountBeforeSubscriptionChange = mOnChildUpdatedCount;
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
assertThat(mOnChildUpdatedCount).isEqualTo(updateCountBeforeSubscriptionChange + 1); assertThat(mOnChildUpdatedCount).isEqualTo(updateCountBeforeSubscriptionChange + 1);
@@ -192,14 +192,14 @@ public class SubscriptionsPreferenceControllerTest {
final SubscriptionInfo sub2 = mock(SubscriptionInfo.class); final SubscriptionInfo sub2 = mock(SubscriptionInfo.class);
when(sub1.getSubscriptionId()).thenReturn(1); when(sub1.getSubscriptionId()).thenReturn(1);
when(sub2.getSubscriptionId()).thenReturn(2); when(sub2.getSubscriptionId()).thenReturn(2);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
mController.onResume(); mController.onResume();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
verify(mPreferenceCategory, times(2)).addPreference(any(Preference.class)); verify(mPreferenceCategory, times(2)).addPreference(any(Preference.class));
final int updateCountBeforeSubscriptionChange = mOnChildUpdatedCount; final int updateCountBeforeSubscriptionChange = mOnChildUpdatedCount;
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
assertThat(mOnChildUpdatedCount).isEqualTo(updateCountBeforeSubscriptionChange + 1); assertThat(mOnChildUpdatedCount).isEqualTo(updateCountBeforeSubscriptionChange + 1);
@@ -221,7 +221,7 @@ public class SubscriptionsPreferenceControllerTest {
when(sub3.getSubscriptionId()).thenReturn(3); when(sub3.getSubscriptionId()).thenReturn(3);
// Start out with only sub1 and sub2. // Start out with only sub1 and sub2.
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
mController.onResume(); mController.onResume();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
final ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class); final ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class);
@@ -233,7 +233,7 @@ public class SubscriptionsPreferenceControllerTest {
// Now replace sub2 with sub3, and make sure the old preference was removed and the new // Now replace sub2 with sub3, and make sure the old preference was removed and the new
// preference was added. // preference was added.
final int updateCountBeforeSubscriptionChange = mOnChildUpdatedCount; final int updateCountBeforeSubscriptionChange = mOnChildUpdatedCount;
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub3)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub3));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
assertThat(mOnChildUpdatedCount).isEqualTo(updateCountBeforeSubscriptionChange + 1); assertThat(mOnChildUpdatedCount).isEqualTo(updateCountBeforeSubscriptionChange + 1);
@@ -259,7 +259,7 @@ public class SubscriptionsPreferenceControllerTest {
doReturn(i + 1).when(sub).getSubscriptionId(); doReturn(i + 1).when(sub).getSubscriptionId();
subscriptions.add(sub); subscriptions.add(sub);
} }
SubscriptionUtil.setAvailableSubscriptionsForTesting(subscriptions); SubscriptionUtil.setActiveSubscriptionsForTesting(subscriptions);
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
final ArgumentCaptor<Preference> prefCaptor = ArgumentCaptor.forClass(Preference.class); final ArgumentCaptor<Preference> prefCaptor = ArgumentCaptor.forClass(Preference.class);
verify(mPreferenceCategory, times(subscriptionCount)).addPreference(prefCaptor.capture()); verify(mPreferenceCategory, times(subscriptionCount)).addPreference(prefCaptor.capture());
@@ -303,7 +303,7 @@ public class SubscriptionsPreferenceControllerTest {
final SubscriptionInfo sub2 = mock(SubscriptionInfo.class); final SubscriptionInfo sub2 = mock(SubscriptionInfo.class);
when(sub1.getSubscriptionId()).thenReturn(11); when(sub1.getSubscriptionId()).thenReturn(11);
when(sub2.getSubscriptionId()).thenReturn(22); when(sub2.getSubscriptionId()).thenReturn(22);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
ShadowSubscriptionManager.setDefaultDataSubscriptionId(11); ShadowSubscriptionManager.setDefaultDataSubscriptionId(11);
ShadowSubscriptionManager.setDefaultSmsSubscriptionId(11); ShadowSubscriptionManager.setDefaultSmsSubscriptionId(11);
@@ -324,7 +324,7 @@ public class SubscriptionsPreferenceControllerTest {
final SubscriptionInfo sub2 = mock(SubscriptionInfo.class); final SubscriptionInfo sub2 = mock(SubscriptionInfo.class);
when(sub1.getSubscriptionId()).thenReturn(11); when(sub1.getSubscriptionId()).thenReturn(11);
when(sub2.getSubscriptionId()).thenReturn(22); when(sub2.getSubscriptionId()).thenReturn(22);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
ShadowSubscriptionManager.setDefaultVoiceSubscriptionId(11); ShadowSubscriptionManager.setDefaultVoiceSubscriptionId(11);
ShadowSubscriptionManager.setDefaultSmsSubscriptionId(11); ShadowSubscriptionManager.setDefaultSmsSubscriptionId(11);
@@ -346,7 +346,7 @@ public class SubscriptionsPreferenceControllerTest {
final SubscriptionInfo sub2 = mock(SubscriptionInfo.class); final SubscriptionInfo sub2 = mock(SubscriptionInfo.class);
when(sub1.getSubscriptionId()).thenReturn(11); when(sub1.getSubscriptionId()).thenReturn(11);
when(sub2.getSubscriptionId()).thenReturn(22); when(sub2.getSubscriptionId()).thenReturn(22);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
ShadowSubscriptionManager.setDefaultDataSubscriptionId(11); ShadowSubscriptionManager.setDefaultDataSubscriptionId(11);
ShadowSubscriptionManager.setDefaultSmsSubscriptionId(22); ShadowSubscriptionManager.setDefaultSmsSubscriptionId(22);

View File

@@ -73,19 +73,19 @@ public class DefaultSubscriptionControllerTest {
@After @After
public void tearDown() { public void tearDown() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(null); SubscriptionUtil.setActiveSubscriptionsForTesting(null);
} }
@Test @Test
public void getAvailabilityStatus_onlyOneSubscription_notAvailable() { public void getAvailabilityStatus_onlyOneSubscription_notAvailable() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList( SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(
createMockSub(1, "sub1"))); createMockSub(1, "sub1")));
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
} }
@Test @Test
public void getAvailabilityStatus_twoSubscriptions_isAvailable() { public void getAvailabilityStatus_twoSubscriptions_isAvailable() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList( SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(
createMockSub(1, "sub1"), createMockSub(1, "sub1"),
createMockSub(2, "sub2"))); createMockSub(2, "sub2")));
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
@@ -95,7 +95,7 @@ public class DefaultSubscriptionControllerTest {
public void displayPreference_twoSubscriptionsSub1Default_correctListPreferenceValues() { public void displayPreference_twoSubscriptionsSub1Default_correctListPreferenceValues() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -123,7 +123,7 @@ public class DefaultSubscriptionControllerTest {
public void displayPreference_twoSubscriptionsSub2Default_correctListPreferenceValues() { public void displayPreference_twoSubscriptionsSub2Default_correctListPreferenceValues() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
doReturn(sub2.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub2.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -156,7 +156,7 @@ public class DefaultSubscriptionControllerTest {
// Mark sub2 as opportunistic; then it should not appear in the list of entries/entryValues. // Mark sub2 as opportunistic; then it should not appear in the list of entries/entryValues.
when(sub2.isOpportunistic()).thenReturn(true); when(sub2.isOpportunistic()).thenReturn(true);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -179,7 +179,7 @@ public class DefaultSubscriptionControllerTest {
public void onPreferenceChange_prefChangedToSub2_callbackCalledCorrectly() { public void onPreferenceChange_prefChangedToSub2_callbackCalledCorrectly() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -192,7 +192,7 @@ public class DefaultSubscriptionControllerTest {
public void onPreferenceChange_prefChangedToAlwaysAsk_callbackCalledCorrectly() { public void onPreferenceChange_prefChangedToAlwaysAsk_callbackCalledCorrectly() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -207,7 +207,7 @@ public class DefaultSubscriptionControllerTest {
public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() { public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -224,14 +224,14 @@ public class DefaultSubscriptionControllerTest {
public void onSubscriptionsChanged_goFromTwoSubscriptionsToOne_prefDisappears() { public void onSubscriptionsChanged_goFromTwoSubscriptionsToOne_prefDisappears() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
assertThat(mListPreference.isVisible()).isTrue(); assertThat(mListPreference.isVisible()).isTrue();
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
@@ -242,14 +242,14 @@ public class DefaultSubscriptionControllerTest {
public void onSubscriptionsChanged_goFromOneSubscriptionToTwo_prefAppears() { public void onSubscriptionsChanged_goFromOneSubscriptionToTwo_prefAppears() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
assertThat(mListPreference.isVisible()).isFalse(); assertThat(mListPreference.isVisible()).isFalse();
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
@@ -261,13 +261,13 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
final SubscriptionInfo sub3 = createMockSub(333, "sub3"); final SubscriptionInfo sub3 = createMockSub(333, "sub3");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
assertThat(mListPreference.getEntries().length).isEqualTo(3); assertThat(mListPreference.getEntries().length).isEqualTo(3);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();