Add CTS test to verify location accuracy feature by targetSDK

Bug: 196833156

Test: CTS
Change-Id: Ib02a8d9ca39f447a39e731b2a13d6c9ef2427091
diff --git a/tests/tests/permission3/src/android/permission3/cts/PermissionTest30.kt b/tests/tests/permission3/src/android/permission3/cts/PermissionTest30.kt
index 614cdc6..ff261f6e 100644
--- a/tests/tests/permission3/src/android/permission3/cts/PermissionTest30.kt
+++ b/tests/tests/permission3/src/android/permission3/cts/PermissionTest30.kt
@@ -17,8 +17,11 @@
 package android.permission3.cts
 
 import android.Manifest.permission.ACCESS_BACKGROUND_LOCATION
+import android.Manifest.permission.ACCESS_COARSE_LOCATION
 import android.Manifest.permission.ACCESS_FINE_LOCATION
+import android.support.test.uiautomator.By
 import org.junit.Test
+import org.junit.Assert.assertNull
 
 /**
  * Runtime permission behavior apps targeting API 30
@@ -53,4 +56,23 @@
             pressBack()
         }
     }
+
+    @Test
+    fun testRequestFgLocationAndNoAccuracyOptions() {
+        installPackage(APP_APK_PATH_30)
+        assertAppHasPermission(ACCESS_FINE_LOCATION, false)
+        assertAppHasPermission(ACCESS_COARSE_LOCATION, false)
+
+        requestAppPermissionsAndAssertResult(ACCESS_FINE_LOCATION to false,
+                ACCESS_COARSE_LOCATION to false) {
+            // Verify there's no location accuracy options
+            val locationAccuracyOptions = waitFindObjectOrNull(By.res(
+                    "com.android.permissioncontroller:id/permission_location_accuracy"), 1000L)
+            assertNull("For apps targetSDK < 31, location permission dialog shouldn't show " +
+                    "accuracy options. Please update the system with " +
+                    "the latest (at least Oct, 2021) mainline modules.",
+                    locationAccuracyOptions)
+            return
+        }
+    }
 }