Don't allow CBRS subscriptions to be set as default for Calls/SMS

CBRS subscriptions (also known as "opportunistic" in the code base) are
data-only and it should not be possible to try to set them as the
default for Calls or SMS.

Fixes: 125855327
Test: make RunSettingsRoboTests
Change-Id: Ie20ef21ccc7b27315089f6a61cceb6e1512ec373
This commit is contained in:
Antony Sargent
2019-04-05 09:55:12 -07:00
parent 44427259e8
commit ed5c2a1b10
2 changed files with 42 additions and 11 deletions

View File

@@ -147,6 +147,34 @@ public class DefaultSubscriptionControllerTest {
Integer.toString(SubscriptionManager.INVALID_SUBSCRIPTION_ID));
}
@Test
public void displayPreference_threeSubsOneIsOpportunistic_correctListPreferenceValues() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2");
final SubscriptionInfo sub3 = createMockSub(333, "sub3");
// Mark sub2 as opportunistic; then it should not appear in the list of entries/entryValues.
when(sub2.isOpportunistic()).thenReturn(true);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3));
doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId();
mController.displayPreference(mScreen);
final CharSequence[] entries = mListPreference.getEntries();
assertThat(entries.length).isEqualTo(3);
assertThat(entries[0]).isEqualTo("sub1");
assertThat(entries[1]).isEqualTo("sub3");
assertThat(entries[2]).isEqualTo(mContext.getString(R.string.calls_and_sms_ask_every_time));
final CharSequence[] entryValues = mListPreference.getEntryValues();
assertThat(entryValues.length).isEqualTo(3);
assertThat(entryValues[0]).isEqualTo("111");
assertThat(entryValues[1]).isEqualTo("333");
assertThat(entryValues[2]).isEqualTo(
Integer.toString(SubscriptionManager.INVALID_SUBSCRIPTION_ID));
}
@Test
public void onPreferenceChange_prefChangedToSub2_callbackCalledCorrectly() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1");