LocationAccessCheckTest: Check the job's current user and run schedule
jobs against the current user.
This allows the test to pass on secondary users.
bug: 134619053
Change-Id: I18d1154017c0a2752fa3d373cf0739cf1216f31c
Test: cts-tradefed run cts-dev -m CtsPermissionTestCases -t android.permission.cts.LocationAccessCheckTest
diff --git a/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java b/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java
index e9b639f..db30b83 100644
--- a/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java
+++ b/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java
@@ -248,7 +248,9 @@
* Force a run of the location check.
*/
private static void runLocationCheck() {
- runShellCommand("cmd jobscheduler run -f " + PERMISSION_CONTROLLER_PKG + " 0");
+ runShellCommand(
+ "cmd jobscheduler run -u " + android.os.Process.myUserHandle().getIdentifier()
+ + " -f " + PERMISSION_CONTROLLER_PKG + " 0");
}
/**
@@ -436,12 +438,16 @@
*/
private static void resetPermissionController() throws Throwable {
clearPackageData(PERMISSION_CONTROLLER_PKG);
+ int currentUserId = android.os.Process.myUserHandle().getIdentifier();
// Wait until jobs are cleared
eventually(() -> {
JobSchedulerServiceDumpProto dump = getJobSchedulerDump();
+
for (RegisteredJob job : dump.registeredJobs) {
- assertNotEquals(job.dump.sourcePackageName, PERMISSION_CONTROLLER_PKG);
+ if (job.dump.sourceUserId == currentUserId) {
+ assertNotEquals(job.dump.sourcePackageName, PERMISSION_CONTROLLER_PKG);
+ }
}
}, UNEXPECTED_TIMEOUT_MILLIS);
@@ -465,7 +471,8 @@
eventually(() -> {
JobSchedulerServiceDumpProto dump = getJobSchedulerDump();
for (RegisteredJob job : dump.registeredJobs) {
- if (job.dump.sourcePackageName.equals(PERMISSION_CONTROLLER_PKG)) {
+ if (job.dump.sourceUserId == currentUserId
+ && job.dump.sourcePackageName.equals(PERMISSION_CONTROLLER_PKG)) {
return;
}
}