diff options
| author | 2024-12-02 19:39:42 +0000 | |
|---|---|---|
| committer | 2024-12-02 20:16:31 +0000 | |
| commit | 910e8387ac3707a63bb76482f47db4f9a66a0d98 (patch) | |
| tree | 1d68efc6eb5b18efbcb0276df6a6102ed1d868ae | |
| parent | 64ae6a5d62755d4681a6588e7414330a07ee7efd (diff) | |
Switch to the same user as the current user on the test device
BUG: 380299157
Test: atest AccessibilityManagerServiceTest
Flag: TEST_ONLY
Change-Id: I5297759daa5b9f1ee145cc7c614b68b750727e7a
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java | 202 |
1 files changed, 93 insertions, 109 deletions
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java index 27de7644f6b2..ee7bde0bc3da 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java @@ -138,10 +138,12 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.AdditionalAnswers; import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatchers; import org.mockito.Captor; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import org.mockito.internal.util.reflection.FieldReader; @@ -259,6 +261,11 @@ public class AccessibilityManagerServiceTest { mMockA11yController); when(mMockA11yController.isAccessibilityTracingEnabled()).thenReturn(false); when(mMockUserManagerInternal.isUserUnlockingOrUnlocked(anyInt())).thenReturn(true); + when(mMockSecurityPolicy.resolveCallingUserIdEnforcingPermissionsLocked(anyInt())) + .then(AdditionalAnswers.returnsFirstArg()); + when(mMockSecurityPolicy.resolveCallingUserIdEnforcingPermissionsLocked( + eq(UserHandle.USER_CURRENT))) + .thenReturn(mTestableContext.getUserId()); final ArrayList<Display> displays = new ArrayList<>(); final Display defaultDisplay = new Display(DisplayManagerGlobal.getInstance(), @@ -282,14 +289,21 @@ public class AccessibilityManagerServiceTest { mInputFilter, mProxyManager, mFakePermissionEnforcer); + mA11yms.switchUser(mTestableContext.getUserId()); + mTestableLooper.processAllMessages(); + FieldSetter.setField(mA11yms, + AccessibilityManagerService.class.getDeclaredField("mHasInputFilter"), true); + FieldSetter.setField(mA11yms, + AccessibilityManagerService.class.getDeclaredField("mInputFilter"), mInputFilter); final AccessibilityUserState userState = new AccessibilityUserState( - mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); - mA11yms.mUserStates.put(mA11yms.getCurrentUserIdLocked(), userState); + mTestableContext.getUserId(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); AccessibilityManager am = mTestableContext.getSystemService(AccessibilityManager.class); mA11yManagerServiceOnDevice = (IAccessibilityManager) new FieldReader(am, AccessibilityManager.class.getDeclaredField("mService")).read(); FieldSetter.setField(am, AccessibilityManager.class.getDeclaredField("mService"), mA11yms); + Mockito.clearInvocations(mMockMagnificationConnectionManager); } @After @@ -652,7 +666,6 @@ public class AccessibilityManagerServiceTest { mA11yms.getCurrentUserIdLocked()); userState.setMagnificationCapabilitiesLocked( ACCESSIBILITY_MAGNIFICATION_MODE_ALL); - //userState.setMagnificationSingleFingerTripleTapEnabledLocked(false); userState.setMagnificationSingleFingerTripleTapEnabledLocked(false); // Invokes client change to trigger onUserStateChanged. @@ -1025,6 +1038,7 @@ public class AccessibilityManagerServiceTest { when(mMockSecurityPolicy.canRegisterService(any())).thenReturn(true); mA11yms.switchUser(mA11yms.getCurrentUserIdLocked() + 1); + mTestableLooper.processAllMessages(); assertThat(lockState.get()).containsExactly(false); } @@ -1114,9 +1128,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_enableSoftwareShortcut_shortcutTurnedOn() throws Exception { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); setupShortcutTargetServices(); String target = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); @@ -1135,9 +1146,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableHardwareShortcutsForTargets_shortcutDialogSetting_isShown() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); Settings.Secure.putInt( mTestableContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN, @@ -1165,9 +1173,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_disableSoftwareShortcut_shortcutTurnedOff() throws Exception { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); String target = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); enableShortcutsForTargets_enableSoftwareShortcut_shortcutTurnedOn(); @@ -1185,9 +1190,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_enableSoftwareShortcutWithMagnification_menuSizeIncreased() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); mA11yms.enableShortcutsForTargets( @@ -1231,9 +1233,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_enableAlwaysOnServiceSoftwareShortcut_turnsOnAlwaysOnService() throws Exception { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); setupShortcutTargetServices(); @@ -1254,9 +1253,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_disableAlwaysOnServiceSoftwareShortcut_turnsOffAlwaysOnService() throws Exception { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); enableShortcutsForTargets_enableAlwaysOnServiceSoftwareShortcut_turnsOnAlwaysOnService(); mA11yms.enableShortcutsForTargets( @@ -1296,9 +1292,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_disableStandardServiceSoftwareShortcutWithServiceOn_wontTurnOffService() throws Exception { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); enableShortcutsForTargets_enableStandardServiceSoftwareShortcut_wontTurnOnService(); AccessibilityUtils.setAccessibilityServiceState( mTestableContext, TARGET_STANDARD_A11Y_SERVICE, /* enabled= */ true); @@ -1319,9 +1312,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_enableTripleTapShortcut_settingUpdated() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); mA11yms.enableShortcutsForTargets( @@ -1341,9 +1331,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_disableTripleTapShortcut_settingUpdated() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); enableShortcutsForTargets_enableTripleTapShortcut_settingUpdated(); mA11yms.enableShortcutsForTargets( @@ -1362,9 +1349,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_enableMultiFingerMultiTapsShortcut_settingUpdated() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); mA11yms.enableShortcutsForTargets( @@ -1384,9 +1368,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_disableMultiFingerMultiTapsShortcut_settingUpdated() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); enableShortcutsForTargets_enableMultiFingerMultiTapsShortcut_settingUpdated(); mA11yms.enableShortcutsForTargets( @@ -1406,9 +1387,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_enableVolumeKeysShortcut_shortcutSet() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); setupShortcutTargetServices(); @@ -1428,9 +1406,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_disableVolumeKeysShortcut_shortcutNotSet() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); enableShortcutsForTargets_enableVolumeKeysShortcut_shortcutSet(); mA11yms.enableShortcutsForTargets( @@ -1450,9 +1425,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_enableQuickSettings_shortcutSet() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); setupShortcutTargetServices(); @@ -1478,9 +1450,6 @@ public class AccessibilityManagerServiceTest { @Test public void enableShortcutsForTargets_disableQuickSettings_shortcutNotSet() { - // TODO(b/111889696): Remove the user 0 assumption once we support multi-user - assumeTrue("The test is setup to run as a user 0", - isSameCurrentUser(mA11yms, mTestableContext)); enableShortcutsForTargets_enableQuickSettings_shortcutSet(); mA11yms.enableShortcutsForTargets( @@ -1684,14 +1653,17 @@ public class AccessibilityManagerServiceTest { @Test @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT) public void restoreShortcutTargets_qs_a11yQsTargetsRestored() { + // TODO: remove the assumption when we fix b/381294327 + assumeTrue("The test is setup to run as a user 0", + mTestableContext.getUserId() == UserHandle.USER_SYSTEM); String daltonizerTile = AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME.flattenToString(); String colorInversionTile = AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME.flattenToString(); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); userState.updateShortcutTargetsLocked(Set.of(daltonizerTile), QUICK_SETTINGS); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.mUserStates.put(userState.mUserId, userState); broadcastSettingRestored( ShortcutUtils.convertToKey(QUICK_SETTINGS), @@ -1707,15 +1679,18 @@ public class AccessibilityManagerServiceTest { @Test @DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT) public void restoreShortcutTargets_qs_a11yQsTargetsNotRestored() { + // TODO: remove the assumption when we fix b/381294327 + assumeTrue("The test is setup to run as a user 0", + mTestableContext.getUserId() == UserHandle.USER_SYSTEM); String daltonizerTile = AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME.flattenToString(); String colorInversionTile = AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME.flattenToString(); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); userState.updateShortcutTargetsLocked(Set.of(daltonizerTile), QUICK_SETTINGS); putShortcutSettingForUser(QUICK_SETTINGS, daltonizerTile, userState.mUserId); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.mUserStates.put(userState.mUserId, userState); broadcastSettingRestored( ShortcutUtils.convertToKey(QUICK_SETTINGS), @@ -1740,13 +1715,13 @@ public class AccessibilityManagerServiceTest { ComponentName::getPackageName).toList().toArray(new String[0]); PackageMonitor monitor = spy(mA11yms.getPackageMonitor()); - when(monitor.getChangingUserId()).thenReturn(UserHandle.USER_SYSTEM); + when(monitor.getChangingUserId()).thenReturn(userState.mUserId); mA11yms.setPackageMonitor(monitor); assertTrue(mA11yms.getPackageMonitor().onHandleForceStop( new Intent(), packages, - UserHandle.USER_SYSTEM, + userState.mUserId, false )); } @@ -1763,13 +1738,13 @@ public class AccessibilityManagerServiceTest { ComponentName::getPackageName).toList().toArray(new String[0]); PackageMonitor monitor = spy(mA11yms.getPackageMonitor()); - when(monitor.getChangingUserId()).thenReturn(UserHandle.USER_SYSTEM); + when(monitor.getChangingUserId()).thenReturn(userState.mUserId); mA11yms.setPackageMonitor(monitor); assertFalse(mA11yms.getPackageMonitor().onHandleForceStop( new Intent(), packages, - UserHandle.USER_SYSTEM, + userState.mUserId, true )); } @@ -1778,13 +1753,13 @@ public class AccessibilityManagerServiceTest { @EnableFlags(Flags.FLAG_MANAGER_PACKAGE_MONITOR_LOGIC_FIX) public void onHandleForceStop_dontDoIt_packageNotEnabled_returnsFalse() { PackageMonitor monitor = spy(mA11yms.getPackageMonitor()); - when(monitor.getChangingUserId()).thenReturn(UserHandle.USER_SYSTEM); + when(monitor.getChangingUserId()).thenReturn(mA11yms.getCurrentUserIdLocked()); mA11yms.setPackageMonitor(monitor); assertFalse(mA11yms.getPackageMonitor().onHandleForceStop( new Intent(), new String[]{"FOO", "BAR"}, - UserHandle.USER_SYSTEM, + mA11yms.getCurrentUserIdLocked(), false )); } @@ -1792,13 +1767,16 @@ public class AccessibilityManagerServiceTest { @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE) public void restoreShortcutTargets_hardware_targetsMerged() { + // TODO: remove the assumption when we fix b/381294327 + assumeTrue("The test is setup to run as a user 0", + mTestableContext.getUserId() == UserHandle.USER_SYSTEM); mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); final String servicePrevious = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); final String otherPrevious = TARGET_MAGNIFICATION; final String serviceRestored = TARGET_STANDARD_A11Y_SERVICE_NAME; final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); mA11yms.enableShortcutsForTargets( true, HARDWARE, List.of(servicePrevious, otherPrevious), userState.mUserId); @@ -1819,16 +1797,19 @@ public class AccessibilityManagerServiceTest { android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE, Flags.FLAG_CLEAR_DEFAULT_FROM_A11Y_SHORTCUT_TARGET_SERVICE_RESTORE}) public void restoreShortcutTargets_hardware_alreadyHadDefaultService_doesNotClear() { + // TODO: remove the assumption when we fix b/381294327 + assumeTrue("The test is setup to run as a user 0", + mTestableContext.getUserId() == UserHandle.USER_SYSTEM); final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; mTestableContext.getOrCreateTestableResources().addOverride( R.string.config_defaultAccessibilityService, serviceDefault); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); // default is present in userState & setting, so it's not cleared - putShortcutSettingForUser(HARDWARE, serviceDefault, UserHandle.USER_SYSTEM); + putShortcutSettingForUser(HARDWARE, serviceDefault, userState.mUserId); userState.updateShortcutTargetsLocked(Set.of(serviceDefault), HARDWARE); broadcastSettingRestored( @@ -1847,6 +1828,9 @@ public class AccessibilityManagerServiceTest { android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE, Flags.FLAG_CLEAR_DEFAULT_FROM_A11Y_SHORTCUT_TARGET_SERVICE_RESTORE}) public void restoreShortcutTargets_hardware_didNotHaveDefaultService_clearsDefaultService() { + // TODO: remove the assumption when we fix b/381294327 + assumeTrue("The test is setup to run as a user 0", + mTestableContext.getUserId() == UserHandle.USER_SYSTEM); final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); // Restored value from the broadcast contains both default and non-default service. @@ -1854,8 +1838,8 @@ public class AccessibilityManagerServiceTest { mTestableContext.getOrCreateTestableResources().addOverride( R.string.config_defaultAccessibilityService, serviceDefault); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); broadcastSettingRestored(ShortcutUtils.convertToKey(HARDWARE), @@ -1874,6 +1858,9 @@ public class AccessibilityManagerServiceTest { android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE, Flags.FLAG_CLEAR_DEFAULT_FROM_A11Y_SHORTCUT_TARGET_SERVICE_RESTORE}) public void restoreShortcutTargets_hardware_nullSetting_clearsDefaultService() { + // TODO: remove the assumption when we fix b/381294327 + assumeTrue("The test is setup to run as a user 0", + mTestableContext.getUserId() == UserHandle.USER_SYSTEM); final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); // Restored value from the broadcast contains both default and non-default service. @@ -1881,13 +1868,13 @@ public class AccessibilityManagerServiceTest { mTestableContext.getOrCreateTestableResources().addOverride( R.string.config_defaultAccessibilityService, serviceDefault); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); // UserState has default, but setting is null (this emulates a typical scenario in SUW). userState.updateShortcutTargetsLocked(Set.of(serviceDefault), HARDWARE); - putShortcutSettingForUser(HARDWARE, null, UserHandle.USER_SYSTEM); + putShortcutSettingForUser(HARDWARE, null, userState.mUserId); broadcastSettingRestored(ShortcutUtils.convertToKey(HARDWARE), /*newValue=*/combinedRestored); @@ -1905,8 +1892,8 @@ public class AccessibilityManagerServiceTest { public void onNavButtonNavigation_migratesGestureTargets() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); userState.updateShortcutTargetsLocked( Set.of(TARGET_STANDARD_A11Y_SERVICE_NAME), SOFTWARE); @@ -1929,20 +1916,20 @@ public class AccessibilityManagerServiceTest { public void onNavButtonNavigation_gestureTargets_noButtonTargets_navBarButtonMode() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); userState.updateShortcutTargetsLocked(Set.of(), SOFTWARE); userState.updateShortcutTargetsLocked( Set.of(TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString()), GESTURE); ShortcutUtils.setButtonMode( - mTestableContext, ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU, UserHandle.USER_SYSTEM); + mTestableContext, ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU, userState.mUserId); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_3BUTTON, userState.mUserId); mA11yms.updateShortcutsForCurrentNavigationMode(); - assertThat(ShortcutUtils.getButtonMode(mTestableContext, UserHandle.USER_SYSTEM)) + assertThat(ShortcutUtils.getButtonMode(mTestableContext, userState.mUserId)) .isEqualTo(ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR); } @@ -1951,11 +1938,11 @@ public class AccessibilityManagerServiceTest { public void onGestureNavigation_floatingMenuMode() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); ShortcutUtils.setButtonMode( - mTestableContext, ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR, UserHandle.USER_SYSTEM); + mTestableContext, ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR, userState.mUserId); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_GESTURAL, userState.mUserId); @@ -1970,8 +1957,8 @@ public class AccessibilityManagerServiceTest { public void onNavigation_revertGestureTargets() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); userState.updateShortcutTargetsLocked( Set.of(TARGET_STANDARD_A11Y_SERVICE_NAME), SOFTWARE); @@ -1994,8 +1981,8 @@ public class AccessibilityManagerServiceTest { public void onNavigation_gestureNavigation_gestureButtonMode_migratesTargetsToGesture() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); userState.updateShortcutTargetsLocked(Set.of( TARGET_STANDARD_A11Y_SERVICE_NAME, @@ -2003,7 +1990,7 @@ public class AccessibilityManagerServiceTest { userState.updateShortcutTargetsLocked(Set.of(), GESTURE); ShortcutUtils.setButtonMode( - mTestableContext, ACCESSIBILITY_BUTTON_MODE_GESTURE, UserHandle.USER_SYSTEM); + mTestableContext, ACCESSIBILITY_BUTTON_MODE_GESTURE, userState.mUserId); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_GESTURAL, userState.mUserId); mA11yms.updateShortcutsForCurrentNavigationMode(); @@ -2019,11 +2006,11 @@ public class AccessibilityManagerServiceTest { @DisableFlags(android.provider.Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED) public void onNavigation_gestureNavigation_correctsButtonMode() { final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); ShortcutUtils.setButtonMode( - mTestableContext, ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR, UserHandle.USER_SYSTEM); + mTestableContext, ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR, userState.mUserId); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_GESTURAL, userState.mUserId); @@ -2037,11 +2024,11 @@ public class AccessibilityManagerServiceTest { @DisableFlags(android.provider.Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED) public void onNavigation_navBarNavigation_correctsButtonMode() { final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); setupShortcutTargetServices(userState); ShortcutUtils.setButtonMode( - mTestableContext, ACCESSIBILITY_BUTTON_MODE_GESTURE, UserHandle.USER_SYSTEM); + mTestableContext, ACCESSIBILITY_BUTTON_MODE_GESTURE, userState.mUserId); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_3BUTTON, userState.mUserId); @@ -2055,8 +2042,8 @@ public class AccessibilityManagerServiceTest { public void showAccessibilityTargetSelection_navBarNavigationMode_softwareExtra() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_3BUTTON, userState.mUserId); @@ -2071,8 +2058,8 @@ public class AccessibilityManagerServiceTest { public void showAccessibilityTargetSelection_gestureNavigationMode_softwareExtra() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_GESTURAL, userState.mUserId); @@ -2087,8 +2074,8 @@ public class AccessibilityManagerServiceTest { public void showAccessibilityTargetSelection_gestureNavigationMode_gestureExtra() { mFakePermissionEnforcer.grant(Manifest.permission.STATUS_BAR_SERVICE); final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_GESTURAL, userState.mUserId); @@ -2122,18 +2109,19 @@ public class AccessibilityManagerServiceTest { public void switchUser_callsUserInitializationCompleteCallback() throws RemoteException { mA11yms.mUserInitializationCompleteCallbacks.add(mUserInitializationCompleteCallback); - mA11yms.switchUser(UserHandle.MIN_SECONDARY_USER_ID); + int newUserId = mA11yms.getCurrentUserIdLocked() + 1; + mA11yms.switchUser(newUserId); + mTestableLooper.processAllMessages(); - verify(mUserInitializationCompleteCallback).onUserInitializationComplete( - UserHandle.MIN_SECONDARY_USER_ID); + verify(mUserInitializationCompleteCallback).onUserInitializationComplete(newUserId); } @Test @DisableFlags(android.provider.Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED) public void getShortcutTypeForGenericShortcutCalls_softwareType() { final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); assertThat(mA11yms.getShortcutTypeForGenericShortcutCalls(userState.mUserId)) .isEqualTo(SOFTWARE); @@ -2143,8 +2131,8 @@ public class AccessibilityManagerServiceTest { @EnableFlags(android.provider.Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED) public void getShortcutTypeForGenericShortcutCalls_gestureNavigationMode_gestureType() { final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_GESTURAL, userState.mUserId); @@ -2156,8 +2144,8 @@ public class AccessibilityManagerServiceTest { @EnableFlags(android.provider.Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED) public void getShortcutTypeForGenericShortcutCalls_buttonNavigationMode_softwareType() { final AccessibilityUserState userState = new AccessibilityUserState( - UserHandle.USER_SYSTEM, mTestableContext, mA11yms); - mA11yms.mUserStates.put(UserHandle.USER_SYSTEM, userState); + mA11yms.getCurrentUserIdLocked(), mTestableContext, mA11yms); + mA11yms.mUserStates.put(userState.mUserId, userState); Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), NAVIGATION_MODE, NAV_BAR_MODE_3BUTTON, userState.mUserId); @@ -2348,13 +2336,13 @@ public class AccessibilityManagerServiceTest { private Set<String> readStringsFromSetting(String setting) { final Set<String> result = new ArraySet<>(); mA11yms.readColonDelimitedSettingToSet( - setting, UserHandle.USER_SYSTEM, str -> str, result); + setting, mA11yms.getCurrentUserIdLocked(), str -> str, result); return result; } private void writeStringsToSetting(Set<String> strings, String setting) { mA11yms.persistColonDelimitedSetToSettingLocked( - setting, UserHandle.USER_SYSTEM, strings, str -> str); + setting, mA11yms.getCurrentUserIdLocked(), strings, str -> str); } private void broadcastSettingRestored(String setting, String newValue) { @@ -2525,10 +2513,6 @@ public class AccessibilityManagerServiceTest { } } - private static boolean isSameCurrentUser(AccessibilityManagerService service, Context context) { - return service.getCurrentUserIdLocked() == context.getUserId(); - } - private void putShortcutSettingForUser(@UserShortcutType int shortcutType, String shortcutValue, int userId) { Settings.Secure.putStringForUser( |