diff options
| author | 2023-08-25 10:35:10 +0100 | |
|---|---|---|
| committer | 2023-09-04 09:52:55 +0000 | |
| commit | 8baffe32e231d6c4516984d1e9fd5a57006ce8d2 (patch) | |
| tree | 73ec3363e1ef31ded2b61fb54e029228e777c3d5 | |
| parent | bc72f89e1f88ec7e5babe37e0732bb1bc61d6b83 (diff) | |
Test new upgrade steps
Test: atest PolicyVersionUpgraderTest
Bug: 297179116
Change-Id: I185c008ac7071a91a88e6178eeb1c55cfd5ab0ba
Merged-In: I185c008ac7071a91a88e6178eeb1c55cfd5ab0ba
3 files changed, 124 insertions, 3 deletions
diff --git a/services/tests/servicestests/assets/PolicyVersionUpgraderTest/device_policies_keep_profiles_running_false.xml b/services/tests/servicestests/assets/PolicyVersionUpgraderTest/device_policies_keep_profiles_running_false.xml new file mode 100644 index 000000000000..4785a881638f --- /dev/null +++ b/services/tests/servicestests/assets/PolicyVersionUpgraderTest/device_policies_keep_profiles_running_false.xml @@ -0,0 +1,10 @@ +<?xml version='1.0' encoding='utf-8' standalone='yes' ?> +<policies setup-complete="true" provisioning-state="3"> + <keep-profiles-running value="false" /> + <admin name="com.android.frameworks.servicestests/com.android.server.devicepolicy.DummyDeviceAdmins$Admin1"> + <policies flags="991" /> + <strong-auth-unlock-timeout value="0" /> + <organization-color value="-16738680" /> + <active-password value="0" /> + </admin> +</policies> diff --git a/services/tests/servicestests/assets/PolicyVersionUpgraderTest/device_policies_keep_profiles_running_true.xml b/services/tests/servicestests/assets/PolicyVersionUpgraderTest/device_policies_keep_profiles_running_true.xml new file mode 100644 index 000000000000..07ec229fa267 --- /dev/null +++ b/services/tests/servicestests/assets/PolicyVersionUpgraderTest/device_policies_keep_profiles_running_true.xml @@ -0,0 +1,10 @@ +<?xml version='1.0' encoding='utf-8' standalone='yes' ?> +<policies setup-complete="true" provisioning-state="3"> + <keep-profiles-running value="true" /> + <admin name="com.android.frameworks.servicestests/com.android.server.devicepolicy.DummyDeviceAdmins$Admin1"> + <policies flags="991" /> + <strong-auth-unlock-timeout value="0" /> + <organization-color value="-16738680" /> + <active-password value="0" /> + </admin> +</policies> diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/PolicyVersionUpgraderTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/PolicyVersionUpgraderTest.java index eb2ee35161ff..d2b921deb0d9 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/PolicyVersionUpgraderTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/PolicyVersionUpgraderTest.java @@ -76,7 +76,7 @@ import javax.xml.parsers.DocumentBuilderFactory; public class PolicyVersionUpgraderTest extends DpmTestBase { // NOTE: Only change this value if the corresponding CL also adds a test to test the upgrade // to the new version. - private static final int LATEST_TESTED_VERSION = 5; + private static final int LATEST_TESTED_VERSION = 6; public static final String PERMISSIONS_TAG = "admin-can-grant-sensors-permissions"; public static final String DEVICE_OWNER_XML = "device_owner_2.xml"; private ComponentName mFakeAdmin; @@ -313,7 +313,7 @@ public class PolicyVersionUpgraderTest extends DpmTestBase { } @Test - public void testEffectiveKeepProfilesRunningSet() throws Exception { + public void testEffectiveKeepProfilesRunningSetToFalse4To5() throws Exception { writeVersionToXml(4); final int userId = UserHandle.USER_SYSTEM; @@ -327,10 +327,111 @@ public class PolicyVersionUpgraderTest extends DpmTestBase { Document policies = readPolicies(userId); Element keepProfilesRunning = (Element) policies.getDocumentElement() .getElementsByTagName("keep-profiles-running").item(0); - assertThat(keepProfilesRunning.getAttribute("value")).isEqualTo("false"); + + // Default value (false) is not serialized. + assertThat(keepProfilesRunning).isNull(); + } + @Test + public void testEffectiveKeepProfilesRunningIsToFalse4To6() throws Exception { + writeVersionToXml(4); + + final int userId = UserHandle.USER_SYSTEM; + mProvider.mUsers = new int[]{userId}; + preparePoliciesFile(userId, "device_policies.xml"); + + mUpgrader.upgradePolicy(6); + + assertThat(readVersionFromXml()).isAtLeast(6); + + Document policies = readPolicies(userId); + Element keepProfilesRunning = (Element) policies.getDocumentElement() + .getElementsByTagName("keep-profiles-running").item(0); + + // Default value (false) is not serialized. + assertThat(keepProfilesRunning).isNull(); + } + + /** + * Verify correct behaviour when upgrading from Android 13 + */ + @Test + public void testEffectiveKeepProfilesRunningIsToFalse3To6() throws Exception { + writeVersionToXml(3); + + final int userId = UserHandle.USER_SYSTEM; + mProvider.mUsers = new int[]{userId}; + preparePoliciesFile(userId, "device_policies.xml"); + + mUpgrader.upgradePolicy(6); + + assertThat(readVersionFromXml()).isAtLeast(6); + + Document policies = readPolicies(userId); + Element keepProfilesRunning = (Element) policies.getDocumentElement() + .getElementsByTagName("keep-profiles-running").item(0); + + // Default value (false) is not serialized. + assertThat(keepProfilesRunning).isNull(); } @Test + public void testEffectiveKeepProfilesRunningMissingInV5() throws Exception { + writeVersionToXml(5); + + final int userId = UserHandle.USER_SYSTEM; + mProvider.mUsers = new int[]{userId}; + preparePoliciesFile(userId, "device_policies.xml"); + + mUpgrader.upgradePolicy(6); + + assertThat(readVersionFromXml()).isAtLeast(6); + + Document policies = readPolicies(userId); + Element keepProfilesRunning = (Element) policies.getDocumentElement() + .getElementsByTagName("keep-profiles-running").item(0); + assertThat(keepProfilesRunning.getAttribute("value")).isEqualTo("true"); + } + + @Test + public void testEffectiveKeepProfilesRunningTrueInV5() throws Exception { + writeVersionToXml(5); + + final int userId = UserHandle.USER_SYSTEM; + mProvider.mUsers = new int[]{userId}; + preparePoliciesFile(userId, "device_policies_keep_profiles_running_true.xml"); + + mUpgrader.upgradePolicy(6); + + assertThat(readVersionFromXml()).isAtLeast(6); + + Document policies = readPolicies(userId); + Element keepProfilesRunning = (Element) policies.getDocumentElement() + .getElementsByTagName("keep-profiles-running").item(0); + assertThat(keepProfilesRunning.getAttribute("value")).isEqualTo("true"); + } + + @Test + public void testEffectiveKeepProfilesRunningFalseInV5() throws Exception { + writeVersionToXml(5); + + final int userId = UserHandle.USER_SYSTEM; + mProvider.mUsers = new int[]{userId}; + preparePoliciesFile(userId, "device_policies_keep_profiles_running_false.xml"); + + mUpgrader.upgradePolicy(6); + + assertThat(readVersionFromXml()).isAtLeast(6); + + Document policies = readPolicies(userId); + Element keepProfilesRunning = (Element) policies.getDocumentElement() + .getElementsByTagName("keep-profiles-running").item(0); + + // Default value (false) is not serialized. + assertThat(keepProfilesRunning).isNull(); + } + + + @Test public void isLatestVersionTested() { assertThat(DevicePolicyManagerService.DPMS_VERSION).isEqualTo(LATEST_TESTED_VERSION); } |