summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-09-10 23:06:43 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-09-10 23:06:43 +0000
commit30c280a1b1fc8f98641bbb40ef9bc44da35976c9 (patch)
tree4db73faf0741360a6525e839aed59bfb380c3789
parentdedcf3e270e7be9b9001bd30295654d6f34597b8 (diff)
parentf135e371b47d43915a6db40a7265c03a41bf2c4c (diff)
downloadcts-30c280a1b1fc8f98641bbb40ef9bc44da35976c9.tar.gz
Merge "Snap for 7719676 from d08dae25b765edf97ff0b388e69d7f7dfe5be785 to pie-vts-release" into pie-vts-release
-rw-r--r--apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleSecureClientTestListActivity.java12
-rw-r--r--hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java82
-rw-r--r--hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/UsePermissionTest23.java4
-rw-r--r--tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java9
4 files changed, 85 insertions, 22 deletions
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleSecureClientTestListActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleSecureClientTestListActivity.java
index 54f8ad1d304..90848a9e07f 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleSecureClientTestListActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleSecureClientTestListActivity.java
@@ -17,7 +17,9 @@
package com.android.cts.verifier.bluetooth;
import android.bluetooth.BluetoothAdapter;
+import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.os.SystemProperties;
import com.android.cts.verifier.ManifestTestListAdapter;
import com.android.cts.verifier.PassFailButtons;
@@ -42,6 +44,16 @@ public class BleSecureClientTestListActivity extends PassFailButtons.TestListAct
"com.android.cts.verifier.bluetooth.BleAdvertiserHardwareScanFilterActivity.");
}
+ // RPA is optional on TVs already released before Android 11
+ boolean isTv = getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK);
+ int firstSdk = SystemProperties.getInt("ro.product.first_api_level", 0);
+ if (isTv && (firstSdk <= 29)) {
+ disabledTest.add(
+ "com.android.cts.verifier.bluetooth.BleSecureConnectionPriorityClientTestActivity");
+ disabledTest.add(
+ "com.android.cts.verifier.bluetooth.BleSecureEncryptedClientTestActivity");
+ }
+
setTestListAdapter(new ManifestTestListAdapter(this, getClass().getName(),
disabledTest.toArray(new String[disabledTest.size()])));
}
diff --git a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
index 351dcf081eb..cabcfd0bde6 100644
--- a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
+++ b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
@@ -17,6 +17,9 @@
package com.android.cts.usepermission;
import static junit.framework.Assert.assertEquals;
+import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
+import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
+import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
@@ -27,10 +30,12 @@ import android.app.Instrumentation;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
+import android.os.UserHandle;
import android.provider.Settings;
import android.support.test.uiautomator.By;
import android.support.test.uiautomator.Direction;
@@ -62,6 +67,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeoutException;
+import java.util.regex.Pattern;
@RunWith(AndroidJUnit4.class)
public abstract class BasePermissionsTest {
@@ -77,6 +83,7 @@ public abstract class BasePermissionsTest {
private Context mContext;
private Resources mPlatformResources;
+ private Resources mPermissionControllerResources;
private boolean mWatch;
private boolean mAutomotive;
@@ -251,7 +258,7 @@ public abstract class BasePermissionsTest {
}
@Before
- public void beforeTest() {
+ public void beforeTest() throws PackageManager.NameNotFoundException{
mContext = InstrumentationRegistry.getTargetContext();
try {
Context platformContext = mContext.createPackageContext(PLATFORM_PACKAGE_NAME, 0);
@@ -265,12 +272,40 @@ public abstract class BasePermissionsTest {
mAutomotive = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
initPermissionToLabelMap(packageManager.isPermissionReviewModeEnabled());
+ if (mAutomotive) {
+ Context permissionControllerContext = mContext.createPackageContext(
+ getPermissionControllerPackageName(), 0);
+ mPermissionControllerResources = permissionControllerContext.getResources();
+ assertNotNull(mPermissionControllerResources);
+ }
+
UiObject2 button = getUiDevice().findObject(By.text("Close"));
if (button != null) {
button.click();
}
}
+ private String getPermissionControllerPackageName() {
+ final Intent intent = new Intent("android.intent.action.MANAGE_PERMISSIONS");
+ intent.addCategory(Intent.CATEGORY_DEFAULT);
+
+ PackageManager packageManager = mContext.getPackageManager();
+
+ final List<ResolveInfo> matches = packageManager.queryIntentActivities(intent,
+ MATCH_SYSTEM_ONLY | MATCH_DIRECT_BOOT_AWARE | MATCH_DIRECT_BOOT_UNAWARE);
+
+ if (matches.size() == 1) {
+ ResolveInfo resolveInfo = matches.get(0);
+ if (!resolveInfo.activityInfo.applicationInfo.isPrivilegedApp()) {
+ throw new RuntimeException("The permissions manager must be a privileged app");
+ }
+ return matches.get(0).activityInfo.packageName;
+ } else {
+ throw new RuntimeException("There must be exactly one permissions manager; found "
+ + matches);
+ }
+ }
+
protected BasePermissionActivity.Result requestPermissions(
String[] permissions, int requestCode, Class<?> clazz, Runnable postRequestAction)
throws Exception {
@@ -299,20 +334,24 @@ public abstract class BasePermissionsTest {
protected void clickAllowButton() throws Exception {
scrollToBottomIfWatch();
- getUiDevice().wait(
- Until.findObject(mAutomotive
- ? By.res("android:id/button1")
- : By.res("com.android.packageinstaller:id/permission_allow_button")),
- GLOBAL_TIMEOUT_MILLIS).click();
+ if (mAutomotive) {
+ clickStringRes("grant_dialog_button_allow");
+ } else {
+ getUiDevice().wait(
+ Until.findObject(By.res("com.android.packageinstaller:id/permission_allow_button")),
+ GLOBAL_TIMEOUT_MILLIS).click();
+ }
}
protected void clickDenyButton() throws Exception {
scrollToBottomIfWatch();
- getUiDevice().wait(
- Until.findObject(mAutomotive
- ? By.res("android:id/button3")
- : By.res("com.android.packageinstaller:id/permission_deny_button")),
- GLOBAL_TIMEOUT_MILLIS).click();
+ if (mAutomotive) {
+ clickStringRes("grant_dialog_button_deny");
+ } else {
+ getUiDevice().wait(
+ Until.findObject(By.res("com.android.packageinstaller:id/permission_deny_button")),
+ GLOBAL_TIMEOUT_MILLIS).click();
+ }
}
protected void clickDontAskAgainCheckbox() throws Exception {
@@ -324,11 +363,22 @@ public abstract class BasePermissionsTest {
protected void clickDontAskAgainButton() throws Exception {
scrollToBottomIfWatch();
- getUiDevice().wait(
- Until.findObject(mAutomotive
- ? By.res("android:id/button2")
- : By.res("com.android.packageinstaller:id/permission_deny_dont_ask_again_button")),
- GLOBAL_TIMEOUT_MILLIS).click();
+ if (mAutomotive) {
+ clickStringRes("never_ask_again");
+ } else {
+ getUiDevice().wait(
+ Until.findObject(By.res("com.android.packageinstaller:id/permission_deny_dont_ask_again_button")),
+ GLOBAL_TIMEOUT_MILLIS).click();
+ }
+ }
+
+ private void clickStringRes(String res) throws TimeoutException, UiObjectNotFoundException {
+ String s = mPermissionControllerResources.getString(mPermissionControllerResources
+ .getIdentifier(res, "string", "com.android.packageinstaller"));
+ waitForIdle();
+ getUiDevice().wait(Until.findObject(By.text(
+ Pattern.compile(Pattern.quote(s), Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE))),
+ GLOBAL_TIMEOUT_MILLIS).click();
}
protected void grantPermission(String permission) throws Exception {
diff --git a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/UsePermissionTest23.java b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/UsePermissionTest23.java
index 12df59b8c5e..5ddd2dab55f 100644
--- a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/UsePermissionTest23.java
+++ b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/UsePermissionTest23.java
@@ -41,14 +41,12 @@ public class UsePermissionTest23 extends BasePermissionsTest {
private boolean mLeanback;
private boolean mWatch;
- private boolean mAutomotive;
@Before
public void initialize() {
PackageManager pm = getInstrumentation().getContext().getPackageManager();
mLeanback = pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK);
mWatch = pm.hasSystemFeature(PackageManager.FEATURE_WATCH);
- mAutomotive = pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
}
@Test
@@ -679,7 +677,7 @@ public class UsePermissionTest23 extends BasePermissionsTest {
}
private void denyWithPrejudice() throws Exception {
- if (mLeanback || mWatch || mAutomotive) {
+ if (mLeanback || mWatch) {
clickDontAskAgainButton();
} else {
clickDontAskAgainCheckbox();
diff --git a/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java b/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java
index 640139f53e7..9c5c6be46d1 100644
--- a/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java
+++ b/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java
@@ -100,9 +100,12 @@ public class PermissionGroupChange {
}
protected void clickAllowButton() throws Exception {
- mUiDevice.findObject(new UiSelector().resourceId(mAutomotive
- ? "android:id/button1"
- : "com.android.packageinstaller:id/permission_allow_button")).click();
+ if (mAutomotive) {
+ mUiDevice.findObject(new UiSelector().textMatches("(?i)Allow")).click();
+ } else {
+ mUiDevice.findObject(new UiSelector().resourceId(
+ "com.android.packageinstaller:id/permission_allow_button")).click();
+ }
}
private void grantPermissionViaUi() throws Throwable {