Load admin data in DPMS asynchronously during boot.
Bug: 71902030
Bug: 71710099
Test: atest services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
Test: Ran boot tests - go/run-boottest
Test: manual
Change-Id: I34970c6f41877c7e3ece4843d47831374d455067
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
index 1df0ff2..d26a3c7 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -186,6 +186,7 @@
initializeDpms();
Mockito.reset(getServices().usageStatsManagerInternal);
+ Mockito.reset(getServices().networkPolicyManagerInternal);
setUpPackageManagerForAdmin(admin1, DpmMockContext.CALLER_UID);
setUpPackageManagerForAdmin(admin2, DpmMockContext.CALLER_UID);
setUpPackageManagerForAdmin(admin3, DpmMockContext.CALLER_UID);
@@ -211,7 +212,6 @@
LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class);
dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext);
- dpms.handleStart();
dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY);
dpms.systemReady(SystemService.PHASE_BOOT_COMPLETED);
@@ -283,7 +283,7 @@
assertNull(LocalServices.getService(DevicePolicyManagerInternal.class));
}
- public void testHandleStart() throws Exception {
+ public void testLoadAdminData() throws Exception {
// Device owner in SYSTEM_USER
setDeviceOwner();
// Profile owner in CALLER_USER_HANDLE
@@ -307,6 +307,23 @@
MockUtils.checkAdminApps(admin2.getPackageName(),
adminAnotherPackage.getPackageName()),
eq(DpmMockContext.CALLER_USER_HANDLE));
+ verify(getServices().usageStatsManagerInternal).onAdminDataAvailable();
+ verify(getServices().networkPolicyManagerInternal).onAdminDataAvailable();
+ }
+
+ public void testLoadAdminData_noAdmins() throws Exception {
+ final int ANOTHER_USER_ID = 15;
+ getServices().addUser(ANOTHER_USER_ID, 0);
+
+ initializeDpms();
+
+ // Verify
+ verify(getServices().usageStatsManagerInternal).setActiveAdminApps(
+ null, DpmMockContext.CALLER_USER_HANDLE);
+ verify(getServices().usageStatsManagerInternal).setActiveAdminApps(
+ null, ANOTHER_USER_ID);
+ verify(getServices().usageStatsManagerInternal).onAdminDataAvailable();
+ verify(getServices().networkPolicyManagerInternal).onAdminDataAvailable();
}
/**