[DO NOT MERGE]Fix PermissionsHostTest#testNoResidualPermissionsOnUninstall is failing
on Baiji (and maybe other Android P based watches).
The failure is because the permission labels of certain permissions are
two long and thus get truncated in the UI. Therefore, the test can't
match them in the test.
It also tries to reduce flakiness in certain tests, such as
PermissionsHostTest#testDenialWithPrejudice23.
Bug: 132673435
Test: atest PermissionsHostTest
Change-Id: I7f8c45d05c83bad10ce36cab29d1aff9e784b96a
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
old mode 100755
new mode 100644
index 1daa5ee..eb942a3
--- 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
@@ -33,6 +33,7 @@
import android.os.SystemClock;
import android.provider.Settings;
import android.support.test.uiautomator.By;
+import android.support.test.uiautomator.Direction;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject;
import android.support.test.uiautomator.UiObject2;
@@ -45,6 +46,7 @@
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import android.widget.ScrollView;
+import android.widget.ListView;
import android.widget.Switch;
import androidx.test.InstrumentationRegistry;
@@ -294,25 +296,33 @@
protected void clickAllowButton() throws Exception {
scrollToBottomIfWatch();
- getUiDevice().findObject(new UiSelector().resourceId(
- "com.android.packageinstaller:id/permission_allow_button")).click();
+ getUiDevice().wait(
+ Until.findObject(
+ By.res("com.android.packageinstaller:id/permission_allow_button")),
+ GLOBAL_TIMEOUT_MILLIS).click();
}
protected void clickDenyButton() throws Exception {
scrollToBottomIfWatch();
- getUiDevice().findObject(new UiSelector().resourceId(
- "com.android.packageinstaller:id/permission_deny_button")).click();
+ getUiDevice().wait(
+ Until.findObject(
+ By.res("com.android.packageinstaller:id/permission_deny_button")),
+ GLOBAL_TIMEOUT_MILLIS).click();
}
protected void clickDontAskAgainCheckbox() throws Exception {
- getUiDevice().findObject(new UiSelector().resourceId(
- "com.android.packageinstaller:id/do_not_ask_checkbox")).click();
+ getUiDevice().wait(
+ Until.findObject(
+ By.res("com.android.packageinstaller:id/do_not_ask_checkbox")),
+ GLOBAL_TIMEOUT_MILLIS).click();
}
protected void clickDontAskAgainButton() throws Exception {
scrollToBottomIfWatch();
- getUiDevice().findObject(new UiSelector().resourceId(
- "com.android.packageinstaller:id/permission_deny_dont_ask_again_button")).click();
+ getUiDevice().wait(
+ Until.findObject(
+ By.res("com.android.packageinstaller:id/permission_deny_dont_ask_again_button")),
+ GLOBAL_TIMEOUT_MILLIS).click();
}
protected void grantPermission(String permission) throws Exception {
@@ -333,12 +343,9 @@
private void scrollToBottomIfWatch() throws Exception {
if (mWatch) {
- getUiDevice().wait(Until.findObject(By.clazz(ScrollView.class)), GLOBAL_TIMEOUT_MILLIS);
- UiScrollable scrollable =
- new UiScrollable(new UiSelector().className(ScrollView.class));
- if (scrollable.exists()) {
- scrollable.flingToEnd(10);
- }
+ UiObject2 scrollable = getUiDevice().wait(
+ Until.findObject(By.clazz(ScrollView.class)), GLOBAL_TIMEOUT_MILLIS);
+ if (scrollable != null) scrollable.fling(Direction.DOWN);
}
}
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 699d7ca..5ddd2da 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
@@ -489,7 +489,20 @@
@Test
public void testNoResidualPermissionsOnUninstall_part1() throws Exception {
// Grant all permissions
- grantPermissions(new String[] {
+ String[] permissions;
+ if (mWatch) {
+ // The permission labels of READ_SMS and CALL_PHONE are too long to display on watches,
+ // and thus they got truncated there and can't be matched by grantPermissions().
+ permissions = new String[] {
+ Manifest.permission.WRITE_CALENDAR,
+ Manifest.permission.WRITE_CONTACTS,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
+ Manifest.permission.RECORD_AUDIO,
+ Manifest.permission.BODY_SENSORS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.CAMERA};
+ } else {
+ permissions = new String[] {
Manifest.permission.WRITE_CALENDAR,
Manifest.permission.WRITE_CONTACTS,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
@@ -498,8 +511,9 @@
Manifest.permission.RECORD_AUDIO,
Manifest.permission.BODY_SENSORS,
Manifest.permission.ACCESS_COARSE_LOCATION,
- Manifest.permission.CAMERA
- });
+ Manifest.permission.CAMERA};
+ }
+ grantPermissions(permissions);
}
@Test