summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java378
1 files changed, 378 insertions, 0 deletions
diff --git a/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java
index f221b75564a3..148c96850d34 100644
--- a/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java
@@ -18,6 +18,20 @@ package com.android.server.statusbar;
import static android.app.ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE;
import static android.app.ActivityManager.PROCESS_STATE_TOP;
+import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
+import static android.app.StatusBarManager.DISABLE2_MASK;
+import static android.app.StatusBarManager.DISABLE2_NONE;
+import static android.app.StatusBarManager.DISABLE2_NOTIFICATION_SHADE;
+import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;
+import static android.app.StatusBarManager.DISABLE2_ROTATE_SUGGESTIONS;
+import static android.app.StatusBarManager.DISABLE_BACK;
+import static android.app.StatusBarManager.DISABLE_CLOCK;
+import static android.app.StatusBarManager.DISABLE_HOME;
+import static android.app.StatusBarManager.DISABLE_MASK;
+import static android.app.StatusBarManager.DISABLE_NONE;
+import static android.app.StatusBarManager.DISABLE_RECENT;
+import static android.app.StatusBarManager.DISABLE_SEARCH;
+import static android.app.StatusBarManager.DISABLE_SYSTEM_INFO;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
@@ -137,6 +151,7 @@ public class StatusBarManagerServiceTest {
LocalServices.addService(PackageManagerInternal.class, mPackageManagerInternal);
when(mMockStatusBar.asBinder()).thenReturn(mMockStatusBar);
+ when(mMockStatusBar.isBinderAlive()).thenReturn(true);
when(mApplicationInfo.loadLabel(any())).thenReturn(APP_NAME);
mockHandleIncomingUser();
@@ -722,6 +737,369 @@ public class StatusBarManagerServiceTest {
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
}
+ @Test
+ public void testGetDisableFlags() throws Exception {
+ String packageName = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ mStatusBarManagerService.disable(DISABLE_NONE, mMockStatusBar, packageName);
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetHomeDisabled() throws Exception {
+ int expectedFlags = DISABLE_MASK & DISABLE_HOME;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ // disable
+ mStatusBarManagerService.disable(expectedFlags, mMockStatusBar, pkg);
+ // check that disable works
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetSystemInfoDisabled() throws Exception {
+ int expectedFlags = DISABLE_MASK & DISABLE_SYSTEM_INFO;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ // disable
+ mStatusBarManagerService.disable(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetRecentDisabled() throws Exception {
+ int expectedFlags = DISABLE_MASK & DISABLE_RECENT;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ // disable
+ mStatusBarManagerService.disable(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetBackDisabled() throws Exception {
+ int expectedFlags = DISABLE_MASK & DISABLE_BACK;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ // disable
+ mStatusBarManagerService.disable(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetClockDisabled() throws Exception {
+ int expectedFlags = DISABLE_MASK & DISABLE_CLOCK;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ // disable home
+ mStatusBarManagerService.disable(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetSearchDisabled() throws Exception {
+ int expectedFlags = DISABLE_MASK & DISABLE_SEARCH;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE, mStatusBarManagerService.getDisableFlags(mMockStatusBar,
+ userId)[0]);
+ // disable
+ mStatusBarManagerService.disable(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetQuickSettingsDisabled2() throws Exception {
+ int expectedFlags = DISABLE2_MASK & DISABLE2_QUICK_SETTINGS;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE2_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ // disable
+ mStatusBarManagerService.disable2(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testSetSystemIconsDisabled2() throws Exception {
+ int expectedFlags = DISABLE2_MASK & DISABLE2_QUICK_SETTINGS;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE, mStatusBarManagerService.getDisableFlags(mMockStatusBar,
+ userId)[1]);
+ // disable
+ mStatusBarManagerService.disable2(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testSetNotificationShadeDisabled2() throws Exception {
+ int expectedFlags = DISABLE2_MASK & DISABLE2_NOTIFICATION_SHADE;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE, mStatusBarManagerService.getDisableFlags(mMockStatusBar,
+ userId)[1]);
+ // disable
+ mStatusBarManagerService.disable2(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+
+ @Test
+ public void testSetGlobalActionsDisabled2() throws Exception {
+ int expectedFlags = DISABLE2_MASK & DISABLE2_GLOBAL_ACTIONS;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE, mStatusBarManagerService.getDisableFlags(mMockStatusBar,
+ userId)[1]);
+ // disable
+ mStatusBarManagerService.disable2(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testSetRotateSuggestionsDisabled2() throws Exception {
+ int expectedFlags = DISABLE2_MASK & DISABLE2_ROTATE_SUGGESTIONS;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ // disable
+ mStatusBarManagerService.disable2(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testSetTwoDisable2Flags() throws Exception {
+ int expectedFlags = DISABLE2_MASK & DISABLE2_ROTATE_SUGGESTIONS & DISABLE2_QUICK_SETTINGS;
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ // disable
+ mStatusBarManagerService.disable2(expectedFlags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testSetTwoDisableFlagsRemoveOne() throws Exception {
+ int twoFlags = DISABLE_MASK & DISABLE_HOME & DISABLE_BACK;
+ int expectedFlag = DISABLE_MASK & DISABLE_HOME;
+
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ // disable
+ mStatusBarManagerService.disable(twoFlags, mMockStatusBar, pkg);
+ mStatusBarManagerService.disable(DISABLE_NONE, mMockStatusBar, pkg);
+ mStatusBarManagerService.disable(expectedFlag, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlag,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ }
+
+ @Test
+ public void testSetTwoDisable2FlagsRemoveOne() throws Exception {
+ int twoFlags = DISABLE2_MASK & DISABLE2_ROTATE_SUGGESTIONS & DISABLE2_QUICK_SETTINGS;
+ int expectedFlag = DISABLE2_MASK & DISABLE2_QUICK_SETTINGS;
+
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE, mStatusBarManagerService.getDisableFlags(mMockStatusBar,
+ userId)[1]);
+ // disable
+ mStatusBarManagerService.disable2(twoFlags, mMockStatusBar, pkg);
+ mStatusBarManagerService.disable2(DISABLE2_NONE, mMockStatusBar, pkg);
+ mStatusBarManagerService.disable2(expectedFlag, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(expectedFlag,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testDisableBothFlags() throws Exception {
+ int disableFlags = DISABLE_MASK & DISABLE_BACK & DISABLE_HOME;
+ int disable2Flags = DISABLE2_MASK & DISABLE2_QUICK_SETTINGS & DISABLE2_ROTATE_SUGGESTIONS;
+
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE, mStatusBarManagerService.getDisableFlags(mMockStatusBar,
+ userId)[0]);
+ assertEquals(DISABLE2_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ // disable
+ mStatusBarManagerService.disable(disableFlags, mMockStatusBar, pkg);
+ mStatusBarManagerService.disable2(disable2Flags, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(disableFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ assertEquals(disable2Flags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testDisableBothFlagsEnable1Flags() throws Exception {
+ int disableFlags = DISABLE_MASK & DISABLE_BACK & DISABLE_HOME;
+ int disable2Flags = DISABLE2_MASK & DISABLE2_QUICK_SETTINGS & DISABLE2_ROTATE_SUGGESTIONS;
+
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ assertEquals(DISABLE2_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ // disable
+ mStatusBarManagerService.disable(disableFlags, mMockStatusBar, pkg);
+ mStatusBarManagerService.disable2(disable2Flags, mMockStatusBar, pkg);
+ // re-enable one
+ mStatusBarManagerService.disable(DISABLE_NONE, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ assertEquals(disable2Flags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testDisableBothFlagsEnable2Flags() throws Exception {
+ int disableFlags = DISABLE_MASK & DISABLE_BACK & DISABLE_HOME;
+ int disable2Flags = DISABLE2_MASK & DISABLE2_QUICK_SETTINGS & DISABLE2_ROTATE_SUGGESTIONS;
+
+ String pkg = mContext.getPackageName();
+ int userId = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(userId);
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ assertEquals(DISABLE2_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ // disable
+ mStatusBarManagerService.disable(disableFlags, mMockStatusBar, pkg);
+ mStatusBarManagerService.disable2(disable2Flags, mMockStatusBar, pkg);
+ // re-enable one
+ mStatusBarManagerService.disable2(DISABLE_NONE, mMockStatusBar, pkg);
+ // check that right flag is disabled
+ assertEquals(disableFlags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[0]);
+ assertEquals(DISABLE2_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, userId)[1]);
+ }
+
+ @Test
+ public void testDifferentUsersDisable() throws Exception {
+ int user1Id = 0;
+ mockUidCheck();
+ mockCurrentUserCheck(user1Id);
+ int user2Id = 14;
+ mockComponentInfo(user2Id);
+ mockEverything(user2Id);
+
+ int expectedUser1Flags = DISABLE_MASK & DISABLE_BACK;
+ int expectedUser2Flags = DISABLE_MASK & DISABLE_HOME;
+ String pkg = mContext.getPackageName();
+
+ // before disabling
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, user1Id)[0]);
+ assertEquals(DISABLE_NONE,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, user2Id)[0]);
+ // disable
+ mStatusBarManagerService.disableForUser(expectedUser1Flags, mMockStatusBar, pkg, user1Id);
+ mStatusBarManagerService.disableForUser(expectedUser2Flags, mMockStatusBar, pkg, user2Id);
+ // check that right flag is disabled
+ assertEquals(expectedUser1Flags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, user1Id)[0]);
+ assertEquals(expectedUser2Flags,
+ mStatusBarManagerService.getDisableFlags(mMockStatusBar, user2Id)[0]);
+ }
+
+
private void mockUidCheck() {
mockUidCheck(TEST_PACKAGE);
}