Add RESTRICTED bucket tests.
Make sure user launch removes an app from the RESTRICTED bucket and that
a user can force an app into the RESTRICTED bucket.
Bug: 145551233
Test: atest android.app.usage.cts.UsageStatsTest
Change-Id: If5d69f5dbf32dd18cccf0c270a8feaf967f91050
diff --git a/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java b/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
index 7fe1b0a..84259e1 100644
--- a/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
+++ b/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
@@ -24,7 +24,14 @@
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
-import android.app.*;
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.AppOpsManager;
+import android.app.KeyguardManager;
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
import android.app.usage.EventStats;
import android.app.usage.UsageEvents;
import android.app.usage.UsageEvents.Event;
@@ -51,8 +58,8 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.compatibility.common.util.AppStandbyUtils;
-
import com.android.compatibility.common.util.SystemUtil;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -601,6 +608,34 @@
fail("Couldn't find a user unlocked event.");
}
+ @Test
+ public void testUserForceIntoRestricted() throws IOException {
+ launchSubActivity(TaskRootActivity.class);
+ assertEquals("Activity launch didn't bring app up to ACTIVE bucket",
+ UsageStatsManager.STANDBY_BUCKET_ACTIVE,
+ mUsageStatsManager.getAppStandbyBucket(mTargetPackage));
+
+ // User force shouldn't have to deal with the timeout.
+ mUiDevice.executeShellCommand("am set-standby-bucket " + mTargetPackage + " restricted");
+ assertEquals("User was unable to force an ACTIVE app down into RESTRICTED bucket",
+ UsageStatsManager.STANDBY_BUCKET_RESTRICTED,
+ mUsageStatsManager.getAppStandbyBucket(mTargetPackage));
+
+ }
+
+ @Test
+ public void testUserLaunchRemovesFromRestricted() throws IOException {
+ mUiDevice.executeShellCommand("am set-standby-bucket " + mTargetPackage + " restricted");
+ assertEquals("User was unable to force an app into RESTRICTED bucket",
+ UsageStatsManager.STANDBY_BUCKET_RESTRICTED,
+ mUsageStatsManager.getAppStandbyBucket(mTargetPackage));
+
+ launchSubActivity(TaskRootActivity.class);
+ assertEquals("Activity launch didn't bring RESTRICTED app into ACTIVE bucket",
+ UsageStatsManager.STANDBY_BUCKET_ACTIVE,
+ mUsageStatsManager.getAppStandbyBucket(mTargetPackage));
+ }
+
static final int[] INTERACTIVE_EVENTS = new int[] {
Event.SCREEN_INTERACTIVE,
Event.SCREEN_NON_INTERACTIVE
@@ -1158,8 +1193,6 @@
assertEquals("Unexpected number of activity stops", 2, stops);
}
-
-
@AppModeFull(reason = "No usage events access in instant apps")
@Test
public void testSuddenDestroy() throws Exception {