Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +4 −7 Original line number Diff line number Diff line Loading @@ -1012,8 +1012,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub + Binder.getCallingPid() + " for device id " + deviceId + " with package names " + Arrays.toString(client.mPackageNames)); } return IntPair.of(mProxyManager.getStateLocked(deviceId, mUiAutomationManager.isUiAutomationRunningLocked()), return IntPair.of(mProxyManager.getStateLocked(deviceId), client.mLastSentRelevantEventTypes); } mGlobalClients.register(callback, client); Loading @@ -1028,8 +1027,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub + Binder.getCallingPid() + " for device id " + deviceId + " with package names " + Arrays.toString(client.mPackageNames)); } return IntPair.of(mProxyManager.getStateLocked(deviceId, mUiAutomationManager.isUiAutomationRunningLocked()), return IntPair.of(mProxyManager.getStateLocked(deviceId), client.mLastSentRelevantEventTypes); } userState.mUserClients.register(callback, client); Loading Loading @@ -4024,9 +4022,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub final long identity = Binder.clearCallingIdentity(); try { mProxyManager.registerProxy(client, displayId, mContext, sIdCounter++, mMainHandler, mSecurityPolicy, this, getTraceManager(), mWindowManagerService); mProxyManager.registerProxy(client, displayId, sIdCounter++, mSecurityPolicy, this, getTraceManager(), mWindowManagerService); synchronized (mLock) { notifyClearAccessibilityCacheLocked(); Loading services/accessibility/java/com/android/server/accessibility/ProxyManager.java +23 −23 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ import java.util.function.Consumer; * proxy connection will belong to a separate user state. * * TODO(241117292): Remove or cut down during simultaneous user refactoring. * TODO(262244375): Add unit tests. */ public class ProxyManager { private static final boolean DEBUG = false; Loading Loading @@ -128,7 +127,7 @@ public class ProxyManager { RemoteCallbackList<IAccessibilityManagerClient> getCurrentUserClientsLocked(); } ProxyManager(Object lock, AccessibilityWindowManager awm, public ProxyManager(Object lock, AccessibilityWindowManager awm, Context context, Handler mainHandler, UiAutomationManager uiAutomationManager, SystemSupport systemSupport) { mLock = lock; Loading @@ -144,9 +143,7 @@ public class ProxyManager { * Creates the service connection. */ public void registerProxy(IAccessibilityServiceClient client, int displayId, Context context, int id, Handler mainHandler, AccessibilitySecurityPolicy securityPolicy, int id, AccessibilitySecurityPolicy securityPolicy, AbstractAccessibilityServiceConnection.SystemSupport systemSupport, AccessibilityTrace trace, WindowManagerInternal windowManagerInternal) throws RemoteException { Loading @@ -169,8 +166,8 @@ public class ProxyManager { info.setComponentName(new ComponentName(PROXY_COMPONENT_PACKAGE_NAME, componentClassDisplayName)); ProxyAccessibilityServiceConnection connection = new ProxyAccessibilityServiceConnection(context, info.getComponentName(), info, id, mainHandler, mLock, securityPolicy, systemSupport, trace, new ProxyAccessibilityServiceConnection(mContext, info.getComponentName(), info, id, mMainHandler, mLock, securityPolicy, systemSupport, trace, windowManagerInternal, mA11yWindowManager, displayId, deviceId); Loading Loading @@ -263,7 +260,7 @@ public class ProxyManager { * When the connection is removed from tracking in ProxyManager, propagate changes to other a11y * system components like the input filter and IAccessibilityManagerClients. */ public void updateStateForRemovedDisplay(int displayId, int deviceId) { private void updateStateForRemovedDisplay(int displayId, int deviceId) { mA11yWindowManager.stopTrackingDisplayProxy(displayId); // A11yInputFilter isn't thread-safe, so post on the system thread. mMainHandler.post( Loading Loading @@ -360,8 +357,9 @@ public class ProxyManager { /** * If there is at least one proxy, accessibility is enabled. */ public int getStateLocked(int deviceId, boolean automationRunning) { public int getStateLocked(int deviceId) { int clientState = 0; final boolean automationRunning = mUiAutomationManager.isUiAutomationRunningLocked(); if (automationRunning) { clientState |= AccessibilityManager.STATE_FLAG_ACCESSIBILITY_ENABLED; } Loading @@ -387,7 +385,7 @@ public class ProxyManager { /** * If there is at least one proxy, accessibility is enabled. */ public int getStateForDisplayIdLocked(ProxyAccessibilityServiceConnection proxy) { private int getStateForDisplayIdLocked(ProxyAccessibilityServiceConnection proxy) { int clientState = 0; if (proxy != null) { clientState |= AccessibilityManager.STATE_FLAG_ACCESSIBILITY_ENABLED; Loading @@ -409,14 +407,14 @@ public class ProxyManager { /** * Gets the last state for a device. */ public int getLastSentStateLocked(int deviceId) { private int getLastSentStateLocked(int deviceId) { return mLastStates.get(deviceId, 0); } /** * Sets the last state for a device. */ public void setLastStateLocked(int deviceId, int proxyState) { private void setLastStateLocked(int deviceId, int proxyState) { mLastStates.put(deviceId, proxyState); } Loading @@ -429,7 +427,7 @@ public class ProxyManager { * Virtual Device, the app clients will get the aggregated event types for all proxy-ed displays * belonging to a VirtualDevice. */ public void updateRelevantEventTypesLocked(int deviceId) { private void updateRelevantEventTypesLocked(int deviceId) { if (!isProxyedDeviceId(deviceId)) { return; } Loading @@ -452,7 +450,7 @@ public class ProxyManager { /** * Returns the relevant event types for a Client. */ int computeRelevantEventTypesLocked(AccessibilityManagerService.Client client) { public int computeRelevantEventTypesLocked(AccessibilityManagerService.Client client) { int relevantEventTypes = 0; for (int i = 0; i < mProxyA11yServiceConnections.size(); i++) { final ProxyAccessibilityServiceConnection proxy = Loading Loading @@ -578,9 +576,8 @@ public class ProxyManager { /** * Updates the states of the app AccessibilityManagers. */ public void scheduleUpdateProxyClientsIfNeededLocked(int deviceId) { final int proxyState = getStateLocked(deviceId, mUiAutomationManager.isUiAutomationRunningLocked()); private void scheduleUpdateProxyClientsIfNeededLocked(int deviceId) { final int proxyState = getStateLocked(deviceId); if (DEBUG) { Slog.v(LOG_TAG, "State for device id " + deviceId + " is " + proxyState); Slog.v(LOG_TAG, "Last state for device id " + deviceId + " is " Loading @@ -606,7 +603,7 @@ public class ProxyManager { * * @see AccessibilityManager.AccessibilityServicesStateChangeListener */ public void scheduleNotifyProxyClientsOfServicesStateChangeLocked(int deviceId) { private void scheduleNotifyProxyClientsOfServicesStateChangeLocked(int deviceId) { if (DEBUG) { Slog.v(LOG_TAG, "Notify services state change at device id " + deviceId); } Loading @@ -625,7 +622,7 @@ public class ProxyManager { /** * Updates the focus appearance of AccessibilityManagerClients. */ public void updateFocusAppearanceLocked(int deviceId) { private void updateFocusAppearanceLocked(int deviceId) { if (DEBUG) { Slog.v(LOG_TAG, "Update proxy focus appearance at device id " + deviceId); } Loading Loading @@ -764,7 +761,7 @@ public class ProxyManager { /** * Sets a Client device id if the app uid belongs to the virtual device. */ public void updateDeviceIdsIfNeededLocked(int deviceId) { private void updateDeviceIdsIfNeededLocked(int deviceId) { final RemoteCallbackList<IAccessibilityManagerClient> userClients = mSystemSupport.getCurrentUserClientsLocked(); final RemoteCallbackList<IAccessibilityManagerClient> globalClients = Loading @@ -777,7 +774,7 @@ public class ProxyManager { /** * Updates the device ids of IAccessibilityManagerClients if needed. */ public void updateDeviceIdsIfNeededLocked(int deviceId, private void updateDeviceIdsIfNeededLocked(int deviceId, @NonNull RemoteCallbackList<IAccessibilityManagerClient> clients) { final VirtualDeviceManagerInternal localVdm = getLocalVdm(); if (localVdm == null) { Loading Loading @@ -809,14 +806,17 @@ public class ProxyManager { } } void setAccessibilityInputFilter(AccessibilityInputFilter filter) { /** * Sets the input filter for enabling and disabling features for proxy displays. */ public void setAccessibilityInputFilter(AccessibilityInputFilter filter) { if (DEBUG) { Slog.v(LOG_TAG, "Set proxy input filter to " + filter); } mA11yInputFilter = filter; } VirtualDeviceManagerInternal getLocalVdm() { private VirtualDeviceManagerInternal getLocalVdm() { if (mLocalVdm == null) { mLocalVdm = LocalServices.getService(VirtualDeviceManagerInternal.class); } Loading services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -281,8 +281,8 @@ public class AccessibilityManagerServiceTest { @Test public void testRegisterProxy() throws Exception { mA11yms.registerProxyForDisplay(mMockServiceClient, TEST_DISPLAY); verify(mProxyManager).registerProxy(eq(mMockServiceClient), eq(TEST_DISPLAY), eq(mTestableContext), anyInt(), any(), eq(mMockSecurityPolicy), verify(mProxyManager).registerProxy(eq(mMockServiceClient), eq(TEST_DISPLAY), anyInt(), eq(mMockSecurityPolicy), eq(mA11yms), eq(mA11yms.getTraceManager()), eq(mMockWindowManagerService)); } Loading @@ -295,7 +295,7 @@ public class AccessibilityManagerServiceTest { assertThrows(SecurityException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, TEST_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading @@ -307,7 +307,7 @@ public class AccessibilityManagerServiceTest { assertThrows(SecurityException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, TEST_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading @@ -316,7 +316,7 @@ public class AccessibilityManagerServiceTest { public void testRegisterProxyForDefaultDisplay() throws Exception { assertThrows(IllegalArgumentException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, Display.DEFAULT_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading @@ -325,7 +325,7 @@ public class AccessibilityManagerServiceTest { public void testRegisterProxyForInvalidDisplay() throws Exception { assertThrows(IllegalArgumentException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, Display.INVALID_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading services/tests/servicestests/src/com/android/server/accessibility/ProxyAccessibilityServiceConnectionTest.java +21 −2 Original line number Diff line number Diff line Loading @@ -29,12 +29,14 @@ import android.accessibilityservice.AccessibilityTrace; import android.content.ComponentName; import android.content.Context; import android.content.res.Resources; import android.graphics.Color; import android.os.Handler; import android.view.accessibility.AccessibilityEvent; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -79,12 +81,15 @@ public class ProxyAccessibilityServiceConnectionTest { WindowManagerInternal mMockWindowManagerInternal; ProxyAccessibilityServiceConnection mProxyConnection; AccessibilityServiceInfo mAccessibilityServiceInfo; private int mFocusStrokeWidthDefaultValue; private int mFocusColorDefaultValue; @Before public void setup() { final Resources resources = getInstrumentation().getContext().getResources(); MockitoAnnotations.initMocks(this); when(mMockContext.getResources()).thenReturn(resources); when(mMockSecurityPolicy.checkAccessibilityAccess(any())).thenReturn(true); mAccessibilityServiceInfo = new AccessibilityServiceInfo(); mProxyConnection = new ProxyAccessibilityServiceConnection(mMockContext, COMPONENT_NAME, Loading @@ -92,10 +97,13 @@ public class ProxyAccessibilityServiceConnectionTest { getInstrumentation().getContext().getMainLooper()), mMockLock, mMockSecurityPolicy, mMockSystemSupport, mMockA11yTrace, mMockWindowManagerInternal, mMockA11yWindowManager, DISPLAY_ID, DEVICE_ID); mFocusStrokeWidthDefaultValue = mProxyConnection.getFocusStrokeWidthLocked(); mFocusColorDefaultValue = mProxyConnection.getFocusColorLocked(); } @Test public void testSetInstalledAndEnabledServices_clientChanged() { public void testSetInstalledAndEnabledServices_updateInfos_notifiesSystemOfProxyChange() { final List<AccessibilityServiceInfo> infos = new ArrayList<>(); final AccessibilityServiceInfo info1 = new AccessibilityServiceInfo(); infos.add(info1); Loading @@ -105,6 +113,17 @@ public class ProxyAccessibilityServiceConnectionTest { verify(mMockSystemSupport).onProxyChanged(DEVICE_ID); } @Test public void testSetFocusAppearance_updateAppearance_notifiesSystemOfProxyChange() { final int updatedWidth = mFocusStrokeWidthDefaultValue + 10; final int updatedColor = mFocusColorDefaultValue == Color.BLUE ? Color.RED : Color.BLUE; mProxyConnection.setFocusAppearance(updatedWidth, updatedColor); verify(mMockSystemSupport).onProxyChanged(DEVICE_ID); } @Test public void testSetInstalledAndEnabledServices_returnList() { final List<AccessibilityServiceInfo> infos = new ArrayList<>(); Loading Loading @@ -196,7 +215,7 @@ public class ProxyAccessibilityServiceConnectionTest { } @Test public void testSetServiceInfo_setIllegalOperationExceptionThrown_() { public void testSetServiceInfo_setIllegalOperationExceptionThrown() { UnsupportedOperationException thrown = assertThrows( UnsupportedOperationException.class, Loading services/tests/servicestests/src/com/android/server/accessibility/ProxyManagerTest.java 0 → 100644 +527 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +4 −7 Original line number Diff line number Diff line Loading @@ -1012,8 +1012,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub + Binder.getCallingPid() + " for device id " + deviceId + " with package names " + Arrays.toString(client.mPackageNames)); } return IntPair.of(mProxyManager.getStateLocked(deviceId, mUiAutomationManager.isUiAutomationRunningLocked()), return IntPair.of(mProxyManager.getStateLocked(deviceId), client.mLastSentRelevantEventTypes); } mGlobalClients.register(callback, client); Loading @@ -1028,8 +1027,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub + Binder.getCallingPid() + " for device id " + deviceId + " with package names " + Arrays.toString(client.mPackageNames)); } return IntPair.of(mProxyManager.getStateLocked(deviceId, mUiAutomationManager.isUiAutomationRunningLocked()), return IntPair.of(mProxyManager.getStateLocked(deviceId), client.mLastSentRelevantEventTypes); } userState.mUserClients.register(callback, client); Loading Loading @@ -4024,9 +4022,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub final long identity = Binder.clearCallingIdentity(); try { mProxyManager.registerProxy(client, displayId, mContext, sIdCounter++, mMainHandler, mSecurityPolicy, this, getTraceManager(), mWindowManagerService); mProxyManager.registerProxy(client, displayId, sIdCounter++, mSecurityPolicy, this, getTraceManager(), mWindowManagerService); synchronized (mLock) { notifyClearAccessibilityCacheLocked(); Loading
services/accessibility/java/com/android/server/accessibility/ProxyManager.java +23 −23 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ import java.util.function.Consumer; * proxy connection will belong to a separate user state. * * TODO(241117292): Remove or cut down during simultaneous user refactoring. * TODO(262244375): Add unit tests. */ public class ProxyManager { private static final boolean DEBUG = false; Loading Loading @@ -128,7 +127,7 @@ public class ProxyManager { RemoteCallbackList<IAccessibilityManagerClient> getCurrentUserClientsLocked(); } ProxyManager(Object lock, AccessibilityWindowManager awm, public ProxyManager(Object lock, AccessibilityWindowManager awm, Context context, Handler mainHandler, UiAutomationManager uiAutomationManager, SystemSupport systemSupport) { mLock = lock; Loading @@ -144,9 +143,7 @@ public class ProxyManager { * Creates the service connection. */ public void registerProxy(IAccessibilityServiceClient client, int displayId, Context context, int id, Handler mainHandler, AccessibilitySecurityPolicy securityPolicy, int id, AccessibilitySecurityPolicy securityPolicy, AbstractAccessibilityServiceConnection.SystemSupport systemSupport, AccessibilityTrace trace, WindowManagerInternal windowManagerInternal) throws RemoteException { Loading @@ -169,8 +166,8 @@ public class ProxyManager { info.setComponentName(new ComponentName(PROXY_COMPONENT_PACKAGE_NAME, componentClassDisplayName)); ProxyAccessibilityServiceConnection connection = new ProxyAccessibilityServiceConnection(context, info.getComponentName(), info, id, mainHandler, mLock, securityPolicy, systemSupport, trace, new ProxyAccessibilityServiceConnection(mContext, info.getComponentName(), info, id, mMainHandler, mLock, securityPolicy, systemSupport, trace, windowManagerInternal, mA11yWindowManager, displayId, deviceId); Loading Loading @@ -263,7 +260,7 @@ public class ProxyManager { * When the connection is removed from tracking in ProxyManager, propagate changes to other a11y * system components like the input filter and IAccessibilityManagerClients. */ public void updateStateForRemovedDisplay(int displayId, int deviceId) { private void updateStateForRemovedDisplay(int displayId, int deviceId) { mA11yWindowManager.stopTrackingDisplayProxy(displayId); // A11yInputFilter isn't thread-safe, so post on the system thread. mMainHandler.post( Loading Loading @@ -360,8 +357,9 @@ public class ProxyManager { /** * If there is at least one proxy, accessibility is enabled. */ public int getStateLocked(int deviceId, boolean automationRunning) { public int getStateLocked(int deviceId) { int clientState = 0; final boolean automationRunning = mUiAutomationManager.isUiAutomationRunningLocked(); if (automationRunning) { clientState |= AccessibilityManager.STATE_FLAG_ACCESSIBILITY_ENABLED; } Loading @@ -387,7 +385,7 @@ public class ProxyManager { /** * If there is at least one proxy, accessibility is enabled. */ public int getStateForDisplayIdLocked(ProxyAccessibilityServiceConnection proxy) { private int getStateForDisplayIdLocked(ProxyAccessibilityServiceConnection proxy) { int clientState = 0; if (proxy != null) { clientState |= AccessibilityManager.STATE_FLAG_ACCESSIBILITY_ENABLED; Loading @@ -409,14 +407,14 @@ public class ProxyManager { /** * Gets the last state for a device. */ public int getLastSentStateLocked(int deviceId) { private int getLastSentStateLocked(int deviceId) { return mLastStates.get(deviceId, 0); } /** * Sets the last state for a device. */ public void setLastStateLocked(int deviceId, int proxyState) { private void setLastStateLocked(int deviceId, int proxyState) { mLastStates.put(deviceId, proxyState); } Loading @@ -429,7 +427,7 @@ public class ProxyManager { * Virtual Device, the app clients will get the aggregated event types for all proxy-ed displays * belonging to a VirtualDevice. */ public void updateRelevantEventTypesLocked(int deviceId) { private void updateRelevantEventTypesLocked(int deviceId) { if (!isProxyedDeviceId(deviceId)) { return; } Loading @@ -452,7 +450,7 @@ public class ProxyManager { /** * Returns the relevant event types for a Client. */ int computeRelevantEventTypesLocked(AccessibilityManagerService.Client client) { public int computeRelevantEventTypesLocked(AccessibilityManagerService.Client client) { int relevantEventTypes = 0; for (int i = 0; i < mProxyA11yServiceConnections.size(); i++) { final ProxyAccessibilityServiceConnection proxy = Loading Loading @@ -578,9 +576,8 @@ public class ProxyManager { /** * Updates the states of the app AccessibilityManagers. */ public void scheduleUpdateProxyClientsIfNeededLocked(int deviceId) { final int proxyState = getStateLocked(deviceId, mUiAutomationManager.isUiAutomationRunningLocked()); private void scheduleUpdateProxyClientsIfNeededLocked(int deviceId) { final int proxyState = getStateLocked(deviceId); if (DEBUG) { Slog.v(LOG_TAG, "State for device id " + deviceId + " is " + proxyState); Slog.v(LOG_TAG, "Last state for device id " + deviceId + " is " Loading @@ -606,7 +603,7 @@ public class ProxyManager { * * @see AccessibilityManager.AccessibilityServicesStateChangeListener */ public void scheduleNotifyProxyClientsOfServicesStateChangeLocked(int deviceId) { private void scheduleNotifyProxyClientsOfServicesStateChangeLocked(int deviceId) { if (DEBUG) { Slog.v(LOG_TAG, "Notify services state change at device id " + deviceId); } Loading @@ -625,7 +622,7 @@ public class ProxyManager { /** * Updates the focus appearance of AccessibilityManagerClients. */ public void updateFocusAppearanceLocked(int deviceId) { private void updateFocusAppearanceLocked(int deviceId) { if (DEBUG) { Slog.v(LOG_TAG, "Update proxy focus appearance at device id " + deviceId); } Loading Loading @@ -764,7 +761,7 @@ public class ProxyManager { /** * Sets a Client device id if the app uid belongs to the virtual device. */ public void updateDeviceIdsIfNeededLocked(int deviceId) { private void updateDeviceIdsIfNeededLocked(int deviceId) { final RemoteCallbackList<IAccessibilityManagerClient> userClients = mSystemSupport.getCurrentUserClientsLocked(); final RemoteCallbackList<IAccessibilityManagerClient> globalClients = Loading @@ -777,7 +774,7 @@ public class ProxyManager { /** * Updates the device ids of IAccessibilityManagerClients if needed. */ public void updateDeviceIdsIfNeededLocked(int deviceId, private void updateDeviceIdsIfNeededLocked(int deviceId, @NonNull RemoteCallbackList<IAccessibilityManagerClient> clients) { final VirtualDeviceManagerInternal localVdm = getLocalVdm(); if (localVdm == null) { Loading Loading @@ -809,14 +806,17 @@ public class ProxyManager { } } void setAccessibilityInputFilter(AccessibilityInputFilter filter) { /** * Sets the input filter for enabling and disabling features for proxy displays. */ public void setAccessibilityInputFilter(AccessibilityInputFilter filter) { if (DEBUG) { Slog.v(LOG_TAG, "Set proxy input filter to " + filter); } mA11yInputFilter = filter; } VirtualDeviceManagerInternal getLocalVdm() { private VirtualDeviceManagerInternal getLocalVdm() { if (mLocalVdm == null) { mLocalVdm = LocalServices.getService(VirtualDeviceManagerInternal.class); } Loading
services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -281,8 +281,8 @@ public class AccessibilityManagerServiceTest { @Test public void testRegisterProxy() throws Exception { mA11yms.registerProxyForDisplay(mMockServiceClient, TEST_DISPLAY); verify(mProxyManager).registerProxy(eq(mMockServiceClient), eq(TEST_DISPLAY), eq(mTestableContext), anyInt(), any(), eq(mMockSecurityPolicy), verify(mProxyManager).registerProxy(eq(mMockServiceClient), eq(TEST_DISPLAY), anyInt(), eq(mMockSecurityPolicy), eq(mA11yms), eq(mA11yms.getTraceManager()), eq(mMockWindowManagerService)); } Loading @@ -295,7 +295,7 @@ public class AccessibilityManagerServiceTest { assertThrows(SecurityException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, TEST_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading @@ -307,7 +307,7 @@ public class AccessibilityManagerServiceTest { assertThrows(SecurityException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, TEST_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading @@ -316,7 +316,7 @@ public class AccessibilityManagerServiceTest { public void testRegisterProxyForDefaultDisplay() throws Exception { assertThrows(IllegalArgumentException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, Display.DEFAULT_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading @@ -325,7 +325,7 @@ public class AccessibilityManagerServiceTest { public void testRegisterProxyForInvalidDisplay() throws Exception { assertThrows(IllegalArgumentException.class, () -> mA11yms.registerProxyForDisplay(mMockServiceClient, Display.INVALID_DISPLAY)); verify(mProxyManager, never()).registerProxy(any(), anyInt(), any(), anyInt(), any(), any(), verify(mProxyManager, never()).registerProxy(any(), anyInt(), anyInt(), any(), any(), any(), any()); } Loading
services/tests/servicestests/src/com/android/server/accessibility/ProxyAccessibilityServiceConnectionTest.java +21 −2 Original line number Diff line number Diff line Loading @@ -29,12 +29,14 @@ import android.accessibilityservice.AccessibilityTrace; import android.content.ComponentName; import android.content.Context; import android.content.res.Resources; import android.graphics.Color; import android.os.Handler; import android.view.accessibility.AccessibilityEvent; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -79,12 +81,15 @@ public class ProxyAccessibilityServiceConnectionTest { WindowManagerInternal mMockWindowManagerInternal; ProxyAccessibilityServiceConnection mProxyConnection; AccessibilityServiceInfo mAccessibilityServiceInfo; private int mFocusStrokeWidthDefaultValue; private int mFocusColorDefaultValue; @Before public void setup() { final Resources resources = getInstrumentation().getContext().getResources(); MockitoAnnotations.initMocks(this); when(mMockContext.getResources()).thenReturn(resources); when(mMockSecurityPolicy.checkAccessibilityAccess(any())).thenReturn(true); mAccessibilityServiceInfo = new AccessibilityServiceInfo(); mProxyConnection = new ProxyAccessibilityServiceConnection(mMockContext, COMPONENT_NAME, Loading @@ -92,10 +97,13 @@ public class ProxyAccessibilityServiceConnectionTest { getInstrumentation().getContext().getMainLooper()), mMockLock, mMockSecurityPolicy, mMockSystemSupport, mMockA11yTrace, mMockWindowManagerInternal, mMockA11yWindowManager, DISPLAY_ID, DEVICE_ID); mFocusStrokeWidthDefaultValue = mProxyConnection.getFocusStrokeWidthLocked(); mFocusColorDefaultValue = mProxyConnection.getFocusColorLocked(); } @Test public void testSetInstalledAndEnabledServices_clientChanged() { public void testSetInstalledAndEnabledServices_updateInfos_notifiesSystemOfProxyChange() { final List<AccessibilityServiceInfo> infos = new ArrayList<>(); final AccessibilityServiceInfo info1 = new AccessibilityServiceInfo(); infos.add(info1); Loading @@ -105,6 +113,17 @@ public class ProxyAccessibilityServiceConnectionTest { verify(mMockSystemSupport).onProxyChanged(DEVICE_ID); } @Test public void testSetFocusAppearance_updateAppearance_notifiesSystemOfProxyChange() { final int updatedWidth = mFocusStrokeWidthDefaultValue + 10; final int updatedColor = mFocusColorDefaultValue == Color.BLUE ? Color.RED : Color.BLUE; mProxyConnection.setFocusAppearance(updatedWidth, updatedColor); verify(mMockSystemSupport).onProxyChanged(DEVICE_ID); } @Test public void testSetInstalledAndEnabledServices_returnList() { final List<AccessibilityServiceInfo> infos = new ArrayList<>(); Loading Loading @@ -196,7 +215,7 @@ public class ProxyAccessibilityServiceConnectionTest { } @Test public void testSetServiceInfo_setIllegalOperationExceptionThrown_() { public void testSetServiceInfo_setIllegalOperationExceptionThrown() { UnsupportedOperationException thrown = assertThrows( UnsupportedOperationException.class, Loading
services/tests/servicestests/src/com/android/server/accessibility/ProxyManagerTest.java 0 → 100644 +527 −0 File added.Preview size limit exceeded, changes collapsed. Show changes