[automerger skipped] Merge Android U (ab/10368041) am: ebb5268f24 -s ours am: a80621052c -s ours am: 7d2235da70 -s ours am: 33d8530233 -s ours

am skip reason: Merged-In Ic3cd0b08fb0046a82ad78cf1748f657e12fd8ef1 with SHA-1 7ac550dcb6 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/CellBroadcastService/+/24181622

Change-Id: I15aeaf8026234cd43525391795f0471dc97c3f14
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/tests/src/com/android/cellbroadcastservice/tests/CellBroadcastHandlerTest.java b/tests/src/com/android/cellbroadcastservice/tests/CellBroadcastHandlerTest.java
index bf8b661..f1381d4 100644
--- a/tests/src/com/android/cellbroadcastservice/tests/CellBroadcastHandlerTest.java
+++ b/tests/src/com/android/cellbroadcastservice/tests/CellBroadcastHandlerTest.java
@@ -35,7 +35,7 @@
 import android.content.Context;
 import android.content.IIntentSender;
 import android.content.Intent;
-import android.content.res.Resources;
+import android.content.res.Configuration;
 import android.database.Cursor;
 import android.database.MatrixCursor;
 import android.net.Uri;
@@ -48,6 +48,7 @@
 import android.telephony.SmsCbCmasInfo;
 import android.telephony.SmsCbLocation;
 import android.telephony.SmsCbMessage;
+import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.test.mock.MockContentProvider;
@@ -56,7 +57,6 @@
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 import android.text.format.DateUtils;
-import android.util.Pair;
 import android.util.Singleton;
 
 import androidx.annotation.NonNull;
@@ -79,7 +79,6 @@
 import java.io.PrintWriter;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 @RunWith(AndroidTestingRunner.class)
 @TestableLooper.RunWithLooper
@@ -89,9 +88,6 @@
 
     private TestableLooper mTestbleLooper;
 
-    @Mock
-    private Map<Pair<Context, Integer>, Resources> mMockedResourcesCache;
-
     private CbSendMessageCalculatorFactoryFacade mSendMessageFactory;
 
     private CellBroadcastHandler.HandlerHelper mHandlerHelper;
@@ -113,6 +109,8 @@
     @Mock
     private ISub mISub;
 
+    private Configuration mConfiguration;
+
     private class CellBroadcastContentProvider extends MockContentProvider {
         @Override
         public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
@@ -185,10 +183,11 @@
         ((MockContentResolver) mMockedContext.getContentResolver()).addProvider(
                 Telephony.CellBroadcasts.CONTENT_URI.getAuthority(),
                 new CellBroadcastContentProvider());
-        doReturn(true).when(mMockedResourcesCache).containsKey(any());
-        doReturn(mMockedResources).when(mMockedResourcesCache).get(any());
-        replaceInstance(SubscriptionManager.class, "sResourcesCache", mCellBroadcastHandler,
-                mMockedResourcesCache);
+        doReturn("com.android.cellbroadcastservice").when(mMockedContext).getPackageName();
+        doReturn(mMockedContext).when(mMockedContext).createConfigurationContext(any());
+        doReturn(mMockedResources).when(mMockedContext).getResources();
+        mConfiguration = new Configuration();
+        doReturn(mConfiguration).when(mMockedResources).getConfiguration();
         putResources(com.android.cellbroadcastservice.R.integer.message_expiration_time,
                 (int) DateUtils.DAY_IN_MILLIS);
         putResources(com.android.cellbroadcastservice.R.bool.duplicate_compare_service_category,
@@ -350,29 +349,32 @@
     @Test
     @SmallTest
     public void testGetResources() throws Exception {
+        SubscriptionInfo mockSubInfo = mock(SubscriptionInfo.class);
+        doReturn(mockSubInfo).when(mMockedSubscriptionManager).getActiveSubscriptionInfo(anyInt());
+        doReturn(001).when(mockSubInfo).getMcc();
+        doReturn(01).when(mockSubInfo).getMnc();
+
         // verify not to call SubscriptionManager#getResourcesForSubId for DEFAULT ID
         mCellBroadcastHandler.getResources(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
 
-        verify(mMockedResourcesCache, never()).containsKey(any());
+        verify(mMockedContext, never()).createConfigurationContext(any());
         verify(mMockedContext, times(1)).getResources();
 
         // verify not to call SubscriptionManager#getResourcesForSubId for INVALID ID
         mCellBroadcastHandler.getResources(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
 
-        verify(mMockedResourcesCache, never()).containsKey(any());
+        verify(mMockedContext, never()).createConfigurationContext(any());
         verify(mMockedContext, times(2)).getResources();
 
         // verify to call SubscriptionManager#getResourcesForSubId for normal sub id
         mCellBroadcastHandler.getResources(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID - 1);
 
-        verify(mMockedResourcesCache, times(1)).containsKey(any());
-        verify(mMockedContext, times(2)).getResources();
+        verify(mMockedContext, times(1)).createConfigurationContext(any());
 
         // verify to call SubscriptionManager#getResourcesForSubId again for the same sub
         mCellBroadcastHandler.getResources(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID - 1);
 
-        verify(mMockedResourcesCache, times(2)).containsKey(any());
-        verify(mMockedContext, times(2)).getResources();
+        verify(mMockedContext, times(1)).createConfigurationContext(any());
     }
 
     @Test
diff --git a/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java b/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
index 951f4f8..5ac5823 100644
--- a/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
+++ b/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
@@ -32,6 +32,7 @@
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.database.MatrixCursor;
@@ -96,6 +97,8 @@
 
     private CellBroadcastHandlerTest.CbSendMessageCalculatorFactoryFacade mSendMessageFactory;
 
+    private Configuration mConfiguration;
+
     private class CellBroadcastContentProvider extends MockContentProvider {
         @Override
         public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
@@ -189,6 +192,10 @@
         ((MockContentResolver) mMockedContext.getContentResolver()).addProvider(
                 Settings.AUTHORITY, new SettingsProvider());
         doReturn(mMockedContext).when(mMockedContext).createConfigurationContext(any());
+        doReturn("com.android.cellbroadcastservice").when(mMockedContext).getPackageName();
+        doReturn(mMockedResources).when(mMockedContext).getResources();
+        mConfiguration = new Configuration();
+        doReturn(mConfiguration).when(mMockedResources).getConfiguration();
         doReturn(true).when(mMockedResourcesCache).containsKey(anyInt());
         doReturn(mMockedResources).when(mMockedResourcesCache).get(anyInt());
         putResources(com.android.cellbroadcastservice.R.integer.message_expiration_time, 86400000);