Merge "Update LocationAccessPolicyTest for location allowlist" into tm-dev am: 0e9856d358
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telephony/+/18359639
Change-Id: I2fa2fa8f9221d24368e9cc90c2187a92bb6de283
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/tests/src/com/android/phone/LocationAccessPolicyTest.java b/tests/src/com/android/phone/LocationAccessPolicyTest.java
index 84bf619..58e7fbd 100644
--- a/tests/src/com/android/phone/LocationAccessPolicyTest.java
+++ b/tests/src/com/android/phone/LocationAccessPolicyTest.java
@@ -29,6 +29,7 @@
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.content.res.Resources;
import android.location.LocationManager;
import android.os.Build;
import android.os.UserHandle;
@@ -149,11 +150,13 @@
private static final int TESTING_UID = 10001;
private static final int TESTING_PID = 8009;
+ private static final String TESTING_CALLING_PACKAGE = "com.android.phone";
@Mock Context mContext;
@Mock AppOpsManager mAppOpsManager;
@Mock LocationManager mLocationManager;
@Mock PackageManager mPackageManager;
+ @Mock Resources mResources;
Scenario mScenario;
@Before
@@ -163,6 +166,10 @@
mockContextSystemService(LocationManager.class, mLocationManager);
mockContextSystemService(PackageManager.class, mPackageManager);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getStringArray(
+ com.android.internal.R.array.config_serviceStateLocationAllowedPackages))
+ .thenReturn(new String[]{TESTING_CALLING_PACKAGE});
}
private <T> void mockContextSystemService(Class<T> clazz , T obj) {
@@ -249,6 +256,20 @@
.build());
scenarios.add(new Scenario.Builder()
+ .setName("System location is off but package is allowlisted for location")
+ .setAppHasFineManifest(true)
+ .setFineAppOp(AppOpsManager.MODE_ALLOWED)
+ .setAppSdkLevel(Build.VERSION_CODES.P)
+ .setIsDynamicLocationEnabled(false)
+ .setQuery(getDefaultQueryBuilder()
+ .setMinSdkVersionForEnforcement(Build.VERSION_CODES.N)
+ .setMinSdkVersionForFine(Build.VERSION_CODES.N)
+ .setMinSdkVersionForCoarse(Build.VERSION_CODES.N)
+ .setCallingPackage(TESTING_CALLING_PACKAGE).build())
+ .setExpectedResult(LocationAccessPolicy.LocationPermissionResult.ALLOWED)
+ .build());
+
+ scenarios.add(new Scenario.Builder()
.setName("App on latest SDK level has all proper permissions for fine")
.setAppHasFineManifest(true)
.setFineAppOp(AppOpsManager.MODE_ALLOWED)