Split up locktask reboot CTS
Split up DeviceOwnerTest#testLockTaskAfterReboot_deviceOwnerUser into
two tests. This prevents the problem reported in http://b/111383175
where the test runner was moving onto the next step before finishing
LockTaskHostDrivenTest#testLockTaskisActiveAndCantBeInterrupted.
Also adds javadoc to that method explaining the problem.
Test: atest DevivceOwnerTest
Bug: 111383175
Change-Id: I19e2f139fffcc6c5ab5d2a8a30561ef96d7ab47c
diff --git a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/LockTaskHostDrivenTest.java b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/LockTaskHostDrivenTest.java
index f9f9a33..1d6105d 100644
--- a/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/LockTaskHostDrivenTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceOwner/src/com/android/cts/deviceowner/LockTaskHostDrivenTest.java
@@ -69,6 +69,10 @@
mUiDevice.waitForIdle();
}
+ /**
+ * On low-RAM devices, this test can take too long to finish, so the test runner can incorrectly
+ * assume it's finished. Therefore, only use it once in a given test.
+ */
@Test
public void testLockTaskIsActiveAndCantBeInterrupted() throws Exception {
mUiDevice.waitForIdle();
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java
index 12a1002..0146826 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/DeviceOwnerTest.java
@@ -535,6 +535,24 @@
// Check that kiosk mode is working and can't be interrupted
runDeviceTestsAsUser(DEVICE_OWNER_PKG, ".LockTaskHostDrivenTest",
"testLockTaskIsActiveAndCantBeInterrupted", mPrimaryUserId);
+ } finally {
+ runDeviceTestsAsUser(DEVICE_OWNER_PKG, ".LockTaskHostDrivenTest",
+ "clearDefaultHomeIntentReceiver", mPrimaryUserId);
+ }
+ }
+
+ public void testLockTaskAfterReboot_tryOpeningSettings_deviceOwnerUser() throws Exception {
+ if (!mHasFeature) {
+ return;
+ }
+
+ try {
+ // Just start kiosk mode
+ runDeviceTestsAsUser(DEVICE_OWNER_PKG, ".LockTaskHostDrivenTest", "startLockTask",
+ mPrimaryUserId);
+
+ // Reboot while in kiosk mode and then unlock the device
+ getDevice().reboot();
// Try to open settings via adb
executeShellCommand("am start -a android.settings.SETTINGS");