Merge "[DO NOT MERGE]Fix PermissionsHostTest#testNoResidualPermissionsOnUninstall is failing on Baiji (and maybe other Android P based watches)." into pie-cts-dev
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