CTS tests for DPM#getPolicyManagedProfiles
Fixes: 226132274
Test: atest DevicePolicyManagerTest
Change-Id: I220373f303b73e790674aae2045b64427eb88b37
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java
index 3d5b284..31a662c 100644
--- a/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java
+++ b/tests/devicepolicy/src/android/devicepolicy/cts/DevicePolicyManagerTest.java
@@ -38,6 +38,7 @@
import static android.nfc.NfcAdapter.ACTION_NDEF_DISCOVERED;
import static android.nfc.NfcAdapter.EXTRA_NDEF_MESSAGES;
+import static com.android.bedstead.nene.users.UserType.MANAGED_PROFILE_TYPE_NAME;
import static com.android.bedstead.remotedpc.RemoteDpc.REMOTE_DPC_TEST_APP;
import static com.android.queryable.queries.ServiceQuery.service;
@@ -102,6 +103,7 @@
import com.android.bedstead.nene.packages.Package;
import com.android.bedstead.nene.permissions.PermissionContext;
import com.android.bedstead.nene.users.UserReference;
+import com.android.bedstead.nene.users.UserType;
import com.android.bedstead.nene.utils.Poll;
import com.android.bedstead.remotedpc.RemoteDpc;
import com.android.bedstead.testapp.TestApp;
@@ -216,6 +218,8 @@
private static final PersistableBundle ADMIN_EXTRAS_BUNDLE = createAdminExtrasBundle();
private static final String TEST_KEY = "test_key";
private static final String TEST_VALUE = "test_value";
+ private static final UserType MANAGED_PROFILE_USER_TYPE =
+ TestApis.users().supportedType(MANAGED_PROFILE_TYPE_NAME);
@Before
public void setUp() {
@@ -1706,6 +1710,7 @@
/* userdata= */ null);
}
+ @Postsubmit(reason = "new test")
@Test
@RequireRunOnPrimaryUser
@EnsureHasWorkProfile
@@ -1717,6 +1722,7 @@
/* migratedAccount= */ null));
}
+ @Postsubmit(reason = "new test")
@Test
@EnsureHasPermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
public void finalizeWorkProfileProvisioning_nullManagedProfileUser_throwsException() {
@@ -1726,6 +1732,7 @@
/* migratedAccount= */ null));
}
+ @Postsubmit(reason = "new test")
@Test
@EnsureHasPermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
public void finalizeWorkProfileProvisioning_nonExistingManagedProfileUser_throwsException() {
@@ -1735,6 +1742,7 @@
/* migratedAccount= */ null));
}
+ @Postsubmit(reason = "new test")
@Test
@RequireRunOnPrimaryUser
@EnsureHasSecondaryUser
@@ -1751,6 +1759,7 @@
}
}
+ @Postsubmit(reason = "new test")
@Test
@RequireRunOnPrimaryUser
@EnsureHasWorkProfile
@@ -1768,6 +1777,7 @@
}
}
+ @Postsubmit(reason = "new test")
@Test
@EnsureHasPermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
@EnsureHasWorkProfile
@@ -1787,6 +1797,7 @@
}
}
+ @Postsubmit(reason = "new test")
@Test
@EnsureHasPermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
@EnsureHasWorkProfile
@@ -1807,4 +1818,45 @@
}
}
+
+ @Postsubmit(reason = "new test")
+ @Test
+ @EnsureHasNoDpc
+ @EnsureHasPermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
+ public void getPolicyManagedProfiles_noManagedProfiles_returnsEmptyList() {
+ assertThat(sDevicePolicyManager.getPolicyManagedProfiles(
+ TestApis.context().instrumentationContext().getUser())).isEmpty();
+ }
+
+ @Postsubmit(reason = "new test")
+ @Test
+ @EnsureHasWorkProfile
+ @EnsureHasPermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
+ public void getPolicyManagedProfiles_hasWorkProfile_returnsWorkProfileUser() {
+ assertThat(sDevicePolicyManager.getPolicyManagedProfiles(
+ TestApis.context().instrumentationContext().getUser()))
+ .containsExactly(sDeviceState.workProfile().userHandle());
+ }
+
+ @Postsubmit(reason = "new test")
+ @Test
+ @EnsureHasNoDpc
+ @EnsureHasPermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
+ public void getPolicyManagedProfiles_hasManagedProfileNoProfileOwner_returnsEmptyList() {
+ try (UserReference user = TestApis.users().createUser().type(MANAGED_PROFILE_USER_TYPE)
+ .parent(TestApis.users().instrumented()).create()) {
+ assertThat(sDevicePolicyManager.getPolicyManagedProfiles(
+ TestApis.context().instrumentationContext().getUser()))
+ .isEmpty();
+ }
+ }
+
+ @Postsubmit(reason = "new test")
+ @Test
+ @EnsureHasNoDpc
+ @EnsureDoesNotHavePermission(MANAGE_PROFILE_AND_DEVICE_OWNERS)
+ public void getPolicyManagedProfiles_noPermission_returnsEmptyList() {
+ assertThrows(SecurityException.class, () -> sDevicePolicyManager.getPolicyManagedProfiles(
+ TestApis.context().instrumentationContext().getUser()));
+ }
}