diff options
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.java | 68 |
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); |