aboutsummaryrefslogtreecommitdiff
path: root/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java')
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java68
1 files changed, 59 insertions, 9 deletions
diff --git a/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java b/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java
index 06dd17cc47..aea79656c1 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java
@@ -69,8 +69,10 @@ import android.annotation.NonNull;
import android.app.AppOpsManager;
import android.app.PropertyInvalidatedCache;
import android.compat.testing.PlatformCompatChangeRule;
+import android.content.ContentValues;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -174,6 +176,8 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
mContextFixture.putBooleanResource(com.android.internal.R.bool
.config_subscription_database_async_update, true);
mContextFixture.putIntArrayResource(com.android.internal.R.array.sim_colors, new int[0]);
+ mContextFixture.putResource(com.android.internal.R.string.default_card_name,
+ FAKE_DEFAULT_CARD_NAME);
mContextFixture.addSystemFeature(PackageManager.FEATURE_TELEPHONY_EUICC);
setupMocksForTelephonyPermissions(Build.VERSION_CODES.UPSIDE_DOWN_CAKE);
@@ -829,6 +833,8 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
doReturn(result).when(mEuiccController).blockingGetEuiccProfileInfoList(eq(2));
doReturn(TelephonyManager.INVALID_PORT_INDEX).when(mUiccSlot)
.getPortIndexFromIccId(anyString());
+ doReturn(FAKE_ICCID1).when(mUiccController).convertToCardString(eq(1));
+ doReturn(FAKE_ICCID2).when(mUiccController).convertToCardString(eq(2));
mSubscriptionManagerServiceUT.updateEmbeddedSubscriptions(List.of(1, 2), null);
processAllMessages();
@@ -849,6 +855,9 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
assertThat(subInfo.isEmbedded()).isTrue();
assertThat(subInfo.isRemovableEmbedded()).isFalse();
assertThat(subInfo.getNativeAccessRules()).isEqualTo(FAKE_NATIVE_ACCESS_RULES1);
+ // Downloaded esim profile should contain proper cardId
+ assertThat(subInfo.getCardId()).isEqualTo(1);
+ assertThat(subInfo.getCardString()).isEqualTo(FAKE_ICCID1);
subInfo = mSubscriptionManagerServiceUT.getSubscriptionInfoInternal(2);
assertThat(subInfo.getSubscriptionId()).isEqualTo(2);
@@ -865,6 +874,9 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
assertThat(subInfo.isEmbedded()).isTrue();
assertThat(subInfo.isRemovableEmbedded()).isFalse();
assertThat(subInfo.getNativeAccessRules()).isEqualTo(FAKE_NATIVE_ACCESS_RULES2);
+ // Downloaded esim profile should contain proper cardId
+ assertThat(subInfo.getCardId()).isEqualTo(2);
+ assertThat(subInfo.getCardString()).isEqualTo(FAKE_ICCID2);
}
@Test
@@ -1084,6 +1096,19 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
}
@Test
+ public void testGetSubscriptionUserHandleUnknownSubscription() {
+ mContextFixture.addCallingOrSelfPermission(
+ Manifest.permission.MANAGE_SUBSCRIPTION_USER_ASSOCIATION);
+
+ // getSubscriptionUserHandle() returns null when subscription is not available on the device
+ assertThat(mSubscriptionManagerServiceUT.getSubscriptionUserHandle(10))
+ .isEqualTo(null);
+
+ mContextFixture.removeCallingOrSelfPermission(
+ Manifest.permission.MANAGE_SUBSCRIPTION_USER_ASSOCIATION);
+ }
+
+ @Test
public void testIsSubscriptionAssociatedWithUser() {
insertSubscription(FAKE_SUBSCRIPTION_INFO1);
@@ -1891,12 +1916,16 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
assertThat(mSubscriptionManagerServiceUT.getSlotIndex(1)).isEqualTo(0);
assertThat(mSubscriptionManagerServiceUT.getPhoneId(1)).isEqualTo(0);
+ SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT
+ .getSubscriptionInfoInternal(1);
+ assertThat(subInfo.getDisplayName()).isEqualTo("CARD 1");
+
mSubscriptionManagerServiceUT.setCarrierId(1, FAKE_CARRIER_ID1);
mSubscriptionManagerServiceUT.setDisplayNameUsingSrc(FAKE_CARRIER_NAME1, 1,
SubscriptionManager.NAME_SOURCE_SIM_SPN);
mSubscriptionManagerServiceUT.setCarrierName(1, FAKE_CARRIER_NAME1);
- SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT
+ subInfo = mSubscriptionManagerServiceUT
.getSubscriptionInfoInternal(1);
assertThat(subInfo.getSubscriptionId()).isEqualTo(1);
assertThat(subInfo.getSimSlotIndex()).isEqualTo(0);
@@ -2314,9 +2343,6 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
@Test
public void testInactiveSimInserted() {
- mContextFixture.putResource(com.android.internal.R.string.default_card_name,
- FAKE_DEFAULT_CARD_NAME);
-
doReturn(0).when(mUiccSlot).getPortIndexFromIccId(eq(FAKE_ICCID1));
mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE);
@@ -2333,16 +2359,40 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
}
@Test
- public void testRestoreAllSimSpecificSettingsFromBackup() {
+ public void testRestoreAllSimSpecificSettingsFromBackup() throws Exception {
assertThrows(SecurityException.class, ()
-> mSubscriptionManagerServiceUT.restoreAllSimSpecificSettingsFromBackup(
new byte[0]));
+ insertSubscription(FAKE_SUBSCRIPTION_INFO1);
mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE);
- // TODO: Briefly copy the logic from TelephonyProvider to
- // SubscriptionDatabaseManagerTest.SubscriptionProvider
+
+ // getSubscriptionDatabaseManager().setWifiCallingEnabled(1, 0);
+
+ // Simulate restoration altered the database directly.
+ ContentValues cvs = new ContentValues();
+ cvs.put(SimInfo.COLUMN_WFC_IMS_ENABLED, 0);
+ mSubscriptionProvider.update(Uri.withAppendedPath(SimInfo.CONTENT_URI, "1"), cvs, null,
+ null);
+
+ // Setting this to false to prevent database reload.
+ mSubscriptionProvider.setRestoreDatabaseChanged(false);
mSubscriptionManagerServiceUT.restoreAllSimSpecificSettingsFromBackup(
new byte[0]);
+
+ SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT
+ .getSubscriptionInfoInternal(1);
+ // Since reload didn't happen, WFC should remains enabled.
+ assertThat(subInfo.getWifiCallingEnabled()).isEqualTo(1);
+
+ // Now the database reload should happen
+ mSubscriptionProvider.setRestoreDatabaseChanged(true);
+ mSubscriptionManagerServiceUT.restoreAllSimSpecificSettingsFromBackup(
+ new byte[0]);
+
+ subInfo = mSubscriptionManagerServiceUT.getSubscriptionInfoInternal(1);
+ // Since reload didn't happen, WFC should remains enabled.
+ assertThat(subInfo.getWifiCallingEnabled()).isEqualTo(0);
}
@Test
@@ -2494,7 +2544,7 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
.getSubscriptionInfoInternal(1);
assertThat(subInfo.getSubscriptionId()).isEqualTo(1);
assertThat(subInfo.getIccId()).isEqualTo(FAKE_ICCID1);
- assertThat(subInfo.getDisplayName()).isEqualTo("");
+ assertThat(subInfo.getDisplayName()).isEqualTo("CARD 1");
assertThat(subInfo.getDisplayNameSource()).isEqualTo(
SubscriptionManager.NAME_SOURCE_UNKNOWN);
assertThat(subInfo.getMcc()).isEqualTo("");
@@ -2506,7 +2556,7 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
subInfo = mSubscriptionManagerServiceUT.getSubscriptionInfoInternal(2);
assertThat(subInfo.getSubscriptionId()).isEqualTo(2);
assertThat(subInfo.getIccId()).isEqualTo(FAKE_ICCID2);
- assertThat(subInfo.getDisplayName()).isEqualTo("");
+ assertThat(subInfo.getDisplayName()).isEqualTo("CARD 2");
assertThat(subInfo.getDisplayNameSource()).isEqualTo(
SubscriptionManager.NAME_SOURCE_UNKNOWN);
assertThat(subInfo.getMcc()).isEqualTo(FAKE_MCC2);