diff options
author | 2017-02-02 18:28:04 +0000 | |
---|---|---|
committer | 2017-02-03 12:20:20 +0000 | |
commit | a7bd04e89271fe0bce7bb5136bc8df0466827c6c (patch) | |
tree | 5f54938da81906946e48c4bb55a8edbb4189d739 | |
parent | 8e332cc54b203a3fe7a014e506c3fcc07a60e539 (diff) |
Clear affiliation ids and lock task packages when clearing DO/PO
Test: runtest -c com.android.server.devicepolicy.DevicePolicyManagerTest frameworks-services
Change-Id: I38eea34cff82766c7e3b8cd79dd9757a212bb451
2 files changed, 12 insertions, 0 deletions
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 3c1d2744dd2e..275422e5c7e3 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -6706,6 +6706,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { policy.mDelegationMap.clear(); policy.mStatusBarDisabled = false; policy.mUserProvisioningState = DevicePolicyManager.STATE_USER_UNMANAGED; + policy.mAffiliationIds.clear(); + policy.mLockTaskPackages.clear(); saveSettingsLocked(userId); try { 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 f4e4e089dec6..2ff5e9d1254b 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java @@ -2089,9 +2089,19 @@ public class DevicePolicyManagerTest extends DpmTestBase { assertTrue(dpm.getAffiliationIds(admin2).isEmpty()); assertFalse(dpm.isAffiliatedUser()); + // Set affiliation ids again, then clear PO to check that the user becomes unaffiliated + dpm.setAffiliationIds(admin2, userAffiliationIds); + assertTrue(dpm.isAffiliatedUser()); + dpm.clearProfileOwner(admin2); + assertFalse(dpm.isAffiliatedUser()); + // Check that the system user remains affiliated. mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID; assertTrue(dpm.isAffiliatedUser()); + + // Clear the device owner - the user becomes unaffiliated. + clearDeviceOwner(); + assertFalse(dpm.isAffiliatedUser()); } public void testGetUserProvisioningState_defaultResult() { |