Merge "Migrate Test Targets to New Android Ownership Model" into main
diff --git a/Android.bp b/Android.bp
index b4a941a..3f609a1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -13,6 +13,7 @@
     libs: [
         "framework-annotations-lib",
         "framework-statsd",
+        "framework-location.stubs.module_lib",
         "unsupportedappusage",
     ],
     sdk_version: "module_current",
diff --git a/res/values-mcc310-mnc012/config.xml b/res/values-mcc310-mnc012/config.xml
index 73a4e8b..16b960d 100644
--- a/res/values-mcc310-mnc012/config.xml
+++ b/res/values-mcc310-mnc012/config.xml
@@ -18,7 +18,4 @@
     <!-- The maximum waiting time in seconds for location to perform
          device based geo-fencing -->
     <integer name="max_location_waiting_time">120</integer>
-
-    <!-- Whether to compare message service category when deduping messages -->
-    <bool name="duplicate_compare_service_category">false</bool>
 </resources>
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);