Merge "Fixing A11yServiceInfo.packageNames set to Null not work"

This commit is contained in:
Jacky Kao
2020-07-08 23:50:25 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 0 deletions

View File

@@ -295,6 +295,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ
mEventTypes = info.eventTypes;
mFeedbackType = info.feedbackType;
String[] packageNames = info.packageNames;
mPackageNames.clear();
if (packageNames != null) {
mPackageNames.addAll(Arrays.asList(packageNames));
}

View File

@@ -51,6 +51,7 @@ import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
@@ -270,6 +271,25 @@ public class AbstractAccessibilityServiceConnectionTest {
verify(mMockSystemSupport).onClientChangeLocked(true);
}
@Test
public void setServiceInfo_ChangePackageNames_updateSuccess() {
assertTrue(mServiceConnection.mPackageNames.isEmpty());
final AccessibilityServiceInfo serviceInfo = new AccessibilityServiceInfo();
updateServiceInfo(serviceInfo, 0, 0, A11Y_SERVICE_FLAG,
new String[] {PACKAGE_NAME1, PACKAGE_NAME2},
1000);
mServiceConnection.setServiceInfo(serviceInfo);
assertEquals(serviceInfo.packageNames.length, mServiceConnection.mPackageNames.size());
assertTrue(mServiceConnection.mPackageNames.containsAll(
Arrays.asList(mServiceConnection.getServiceInfo().packageNames)));
updateServiceInfo(serviceInfo, 0, 0, A11Y_SERVICE_FLAG, null, 1000);
mServiceConnection.setServiceInfo(serviceInfo);
assertTrue(mServiceConnection.mPackageNames.isEmpty());
}
@Test
public void canReceiveEvents_hasEventType_returnTrue() {
final AccessibilityServiceInfo serviceInfo = new AccessibilityServiceInfo();