diff options
author | 2024-08-15 17:47:16 +0100 | |
---|---|---|
committer | 2024-08-16 15:56:04 +0100 | |
commit | 4ae520ace49e1813dc954ce0b5637eaa7a5da60d (patch) | |
tree | 011ceb15ff0d61a4c0a73f336637c9f67fc580e3 | |
parent | 6b409d9315991375f9de628ee9199d9e7009fccc (diff) |
Replace AccessibilityCheckResultReported proto with java class
Test: unit tests
Test: th
Bug: 326385939
Flag: com.android.server.accessibility.enable_a11y_checker_logging
Change-Id: Idf9ef52c8d25734863c0d33f5ade4cac967ebe12
10 files changed, 254 insertions, 137 deletions
diff --git a/services/accessibility/Android.bp b/services/accessibility/Android.bp index efa13971bce3..3d7ad0b94d1b 100644 --- a/services/accessibility/Android.bp +++ b/services/accessibility/Android.bp @@ -35,7 +35,7 @@ java_library_static { "androidx.annotation_annotation", ], static_libs: [ - "a11ychecker-protos-java-proto-lite", + "accessibility_protos_lite", "com_android_server_accessibility_flags_lib", "//frameworks/base/packages/SystemUI/aconfig:com_android_systemui_flags_lib", ], @@ -71,17 +71,6 @@ java_aconfig_library { aconfig_declarations: "com_android_server_accessibility_flags", } -java_library_static { - name: "a11ychecker-protos-java-proto-lite", - proto: { - type: "lite", - canonical_path_from_root: false, - }, - srcs: [ - "java/**/a11ychecker/proto/*.proto", - ], -} - genrule { name: "statslog-accessibility-java-gen", tools: ["stats-log-api-gen"], diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java index f7a59a4b2763..83f57b2bf31c 100644 --- a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java +++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java @@ -30,7 +30,6 @@ import android.view.accessibility.AccessibilityNodeInfo; import com.android.internal.annotations.VisibleForTesting; import com.android.server.accessibility.Flags; -import com.android.server.accessibility.a11ychecker.A11yCheckerProto.AccessibilityCheckResultReported; import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckPreset; import com.google.android.apps.common.testing.accessibility.framework.AccessibilityHierarchyCheck; @@ -58,7 +57,7 @@ public final class AccessibilityCheckerManager { private final PackageManager mPackageManager; private final Set<AccessibilityHierarchyCheck> mHierarchyChecks; private final ATFHierarchyBuilder mATFHierarchyBuilder; - private final Set<AccessibilityCheckResultReported> mCachedResults = new HashSet<>(); + private final Set<AndroidAccessibilityCheckerResult> mCachedResults = new HashSet<>(); @VisibleForTesting final A11yCheckerTimer mTimer = new A11yCheckerTimer(); @@ -85,14 +84,14 @@ public final class AccessibilityCheckerManager { * logging. Returns the check results for the given nodes. */ @RequiresPermission(allOf = {android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) - public Set<AccessibilityCheckResultReported> maybeRunA11yChecker( + public Set<AndroidAccessibilityCheckerResult> maybeRunA11yChecker( List<AccessibilityNodeInfo> nodes, @Nullable String sourceEventClassName, ComponentName a11yServiceComponentName, @UserIdInt int userId) { if (!shouldRunA11yChecker()) { return Set.of(); } - Set<AccessibilityCheckResultReported> allResults = new HashSet<>(); + Set<AndroidAccessibilityCheckerResult> allResults = new HashSet<>(); String defaultBrowserName = mPackageManager.getDefaultBrowserPackageNameAsUser(userId); try { @@ -104,7 +103,7 @@ public final class AccessibilityCheckerManager { continue; } List<AccessibilityHierarchyCheckResult> checkResults = runChecksOnNode(nodeInfo); - Set<AccessibilityCheckResultReported> filteredResults = + Set<AndroidAccessibilityCheckerResult> filteredResults = AccessibilityCheckerUtils.processResults(nodeInfo, checkResults, sourceEventClassName, mPackageManager, a11yServiceComponentName); allResults.addAll(filteredResults); @@ -127,7 +126,7 @@ public final class AccessibilityCheckerManager { return checkResults; } - public Set<AccessibilityCheckResultReported> getCachedResults() { + public Set<AndroidAccessibilityCheckerResult> getCachedResults() { return Collections.unmodifiableSet(mCachedResults); } diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java index 1b3ec5a5e6c2..fa0bb5983a5a 100644 --- a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java +++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java @@ -16,10 +16,9 @@ package com.android.server.accessibility.a11ychecker; +import android.text.TextUtils; import android.util.Slog; -import com.android.server.accessibility.a11ychecker.A11yCheckerProto.AccessibilityCheckResultReported; - import java.util.Set; @@ -35,11 +34,11 @@ public class AccessibilityCheckerStatsdLogger { /** * Writes results to statsd. */ - public static void logResults(Set<AccessibilityCheckResultReported> results) { - Slog.i(LOG_TAG, String.format("Writing %d AccessibilityCheckResultReported events", + public static void logResults(Set<AndroidAccessibilityCheckerResult> results) { + Slog.i(LOG_TAG, TextUtils.formatSimple("Writing %d AccessibilityCheckResultReported events", results.size())); - for (AccessibilityCheckResultReported result : results) { + for (AndroidAccessibilityCheckerResult result : results) { AccessibilityCheckerStatsLog.write(ATOM_ID, result.getPackageName(), result.getAppVersionCode(), diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java index fa0fed245e0d..eb24b027dc3a 100644 --- a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java +++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java @@ -17,6 +17,8 @@ package com.android.server.accessibility.a11ychecker; +import android.accessibility.AccessibilityCheckClass; +import android.accessibility.AccessibilityCheckResultType; import android.annotation.Nullable; import android.content.ComponentName; import android.content.pm.PackageInfo; @@ -25,9 +27,6 @@ import android.util.Slog; import android.view.accessibility.AccessibilityNodeInfo; import com.android.internal.annotations.VisibleForTesting; -import com.android.server.accessibility.a11ychecker.A11yCheckerProto.AccessibilityCheckClass; -import com.android.server.accessibility.a11ychecker.A11yCheckerProto.AccessibilityCheckResultReported; -import com.android.server.accessibility.a11ychecker.A11yCheckerProto.AccessibilityCheckResultType; import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResult; import com.google.android.apps.common.testing.accessibility.framework.AccessibilityHierarchyCheck; @@ -92,7 +91,7 @@ public class AccessibilityCheckerUtils { AccessibilityCheckClass.TRAVERSAL_ORDER_CHECK)); // LINT.ThenChange(/services/accessibility/java/com/android/server/accessibility/a11ychecker/proto/a11ychecker.proto) - static Set<AccessibilityCheckResultReported> processResults( + static Set<AndroidAccessibilityCheckerResult> processResults( AccessibilityNodeInfo nodeInfo, List<AccessibilityHierarchyCheckResult> checkResults, @Nullable String activityClassName, @@ -103,16 +102,16 @@ public class AccessibilityCheckerUtils { if (nodePath == null) { return Set.of(); } - AccessibilityCheckResultReported.Builder builder; + AndroidAccessibilityCheckerResult.Builder commonBuilder; try { - builder = AccessibilityCheckResultReported.newBuilder() + commonBuilder = AndroidAccessibilityCheckerResult.newBuilder() .setPackageName(appPackageName) .setAppVersionCode(getAppVersionCode(packageManager, appPackageName)) .setUiElementPath(nodePath) .setActivityName( getActivityName(packageManager, appPackageName, activityClassName)) .setWindowTitle(getWindowTitle(nodeInfo)) - .setSourceComponentName(a11yServiceComponentName.flattenToString()) + .setSourceComponentName(a11yServiceComponentName) .setSourceVersionCode( getAppVersionCode(packageManager, a11yServiceComponentName.getPackageName())); @@ -126,7 +125,8 @@ public class AccessibilityCheckerUtils { == AccessibilityCheckResult.AccessibilityCheckResultType.ERROR || checkResult.getType() == AccessibilityCheckResult.AccessibilityCheckResultType.WARNING) - .map(checkResult -> builder.setResultCheckClass( + .map(checkResult -> new AndroidAccessibilityCheckerResult.Builder( + commonBuilder).setResultCheckClass( getCheckClass(checkResult)).setResultType( getCheckResultType(checkResult)).setResultId( checkResult.getResultId()).build()) @@ -188,9 +188,9 @@ public class AccessibilityCheckerUtils { private static AccessibilityCheckResultType getCheckResultType( AccessibilityHierarchyCheckResult checkResult) { return switch (checkResult.getType()) { - case ERROR -> AccessibilityCheckResultType.ERROR; - case WARNING -> AccessibilityCheckResultType.WARNING; - default -> AccessibilityCheckResultType.UNKNOWN_RESULT_TYPE; + case ERROR -> AccessibilityCheckResultType.ERROR_CHECK_RESULT_TYPE; + case WARNING -> AccessibilityCheckResultType.WARNING_CHECK_RESULT_TYPE; + default -> AccessibilityCheckResultType.UNKNOWN_CHECK_RESULT_TYPE; }; } diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AndroidAccessibilityCheckerResult.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AndroidAccessibilityCheckerResult.java new file mode 100644 index 000000000000..c9cd9fe2555f --- /dev/null +++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AndroidAccessibilityCheckerResult.java @@ -0,0 +1,196 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.accessibility.a11ychecker; + +import android.accessibility.AccessibilityCheckClass; +import android.accessibility.AccessibilityCheckResultType; +import android.content.ComponentName; +import android.text.TextUtils; + +public class AndroidAccessibilityCheckerResult implements Cloneable { + // Package name of the app containing the checked View. + private String mPackageName; + // Version code of the app containing the checked View. + private long mAppVersionCode; + // The path of the View starting from the root element in the window. Each element is + // represented by the View's resource id, when available, or the View's class name. + private String mUiElementPath; + // Class name of the activity containing the checked View. + private String mActivityName; + // Title of the window containing the checked View. + private String mWindowTitle; + // The component name of the app running the AccessibilityService which provided the a11y node. + private String mSourceComponentName; + // Version code of the app running the AccessibilityService that provided the a11y node. + private long mSourceVersionCode; + // Class Name of the AccessibilityCheck that produced the result. + private AccessibilityCheckClass mResultCheckClass; + // Result type of the AccessibilityCheckResult. + private AccessibilityCheckResultType mResultType; + // Result ID of the AccessibilityCheckResult. + private int mResultId; + + static final class Builder { + private final AndroidAccessibilityCheckerResult mInstance; + + Builder() { + mInstance = new AndroidAccessibilityCheckerResult(); + } + + Builder(Builder otherBuilder) { + mInstance = otherBuilder.mInstance.clone(); + } + + public Builder setPackageName(String packageName) { + mInstance.mPackageName = packageName; + return this; + } + + public Builder setAppVersionCode(long versionCode) { + mInstance.mAppVersionCode = versionCode; + return this; + } + + public Builder setUiElementPath(String uiElementPath) { + mInstance.mUiElementPath = uiElementPath; + return this; + } + + public Builder setActivityName(String activityName) { + mInstance.mActivityName = activityName; + return this; + } + + public Builder setWindowTitle(String windowTitle) { + mInstance.mWindowTitle = windowTitle; + return this; + } + + public Builder setSourceComponentName(ComponentName componentName) { + mInstance.mSourceComponentName = componentName.flattenToString(); + return this; + } + + public Builder setSourceVersionCode(long versionCode) { + mInstance.mSourceVersionCode = versionCode; + return this; + } + + public Builder setResultCheckClass(AccessibilityCheckClass checkClass) { + mInstance.mResultCheckClass = checkClass; + return this; + } + + public Builder setResultType(AccessibilityCheckResultType resultType) { + mInstance.mResultType = resultType; + return this; + } + + public Builder setResultId(int resultId) { + mInstance.mResultId = resultId; + return this; + } + + public AndroidAccessibilityCheckerResult build() { + // TODO: assert all fields are set, etc + return mInstance; + } + } + + static Builder newBuilder() { + return new Builder(); + } + + public String getPackageName() { + return mPackageName; + } + + public long getAppVersionCode() { + return mAppVersionCode; + } + + public String getUiElementPath() { + return mUiElementPath; + } + + public String getActivityName() { + return mActivityName; + } + + public String getWindowTitle() { + return mWindowTitle; + } + + public String getSourceComponentName() { + return mSourceComponentName; + } + + public long getSourceVersionCode() { + return mSourceVersionCode; + } + + public AccessibilityCheckClass getResultCheckClass() { + return mResultCheckClass; + } + + public AccessibilityCheckResultType getResultType() { + return mResultType; + } + + public int getResultId() { + return mResultId; + } + + @Override + public boolean equals(Object other) { + if (!(other instanceof AndroidAccessibilityCheckerResult)) { + return false; + } + AndroidAccessibilityCheckerResult otherResult = (AndroidAccessibilityCheckerResult) other; + return mPackageName.equals(otherResult.mPackageName) + && mAppVersionCode == otherResult.mAppVersionCode + && mUiElementPath.equals(otherResult.mUiElementPath) + && mActivityName.equals(otherResult.mActivityName) + && mWindowTitle.equals(otherResult.mWindowTitle) + && mSourceComponentName.equals(otherResult.mSourceComponentName) + && mSourceVersionCode == otherResult.mSourceVersionCode + && mResultCheckClass.equals(otherResult.mResultCheckClass) + && mResultType.equals(otherResult.mResultType) + && mResultId == otherResult.mResultId; + } + + @Override + public int hashCode() { + return toString().hashCode(); + } + + @Override + public String toString() { + return TextUtils.formatSimple("%s:%d:%s:%s:%s:%s:%d:%s:%s:%d", mPackageName, + mAppVersionCode, mUiElementPath, mActivityName, mWindowTitle, mSourceComponentName, + mSourceVersionCode, mResultCheckClass.name(), mResultType.name(), mResultId); + } + + @Override + public AndroidAccessibilityCheckerResult clone() { + try { + return (AndroidAccessibilityCheckerResult) super.clone(); + } catch (CloneNotSupportedException e) { + return null; + } + } +} diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/proto/a11ychecker.proto b/services/accessibility/java/com/android/server/accessibility/a11ychecker/proto/a11ychecker.proto deleted file mode 100644 index 8beed4afa9cb..000000000000 --- a/services/accessibility/java/com/android/server/accessibility/a11ychecker/proto/a11ychecker.proto +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -syntax = "proto2"; -package android.accessibility; - -option java_package = "com.android.server.accessibility.a11ychecker"; -option java_outer_classname = "A11yCheckerProto"; - -// TODO(b/326385939): remove and replace usage with the atom extension proto, when submitted. -/** Logs the result of an AccessibilityCheck. */ -message AccessibilityCheckResultReported { - // Package name of the app containing the checked View. - optional string package_name = 1; - // Version code of the app containing the checked View. - optional int64 app_version_code = 2; - // The path of the View starting from the root element in the window. Each element is - // represented by the View's resource id, when available, or the View's class name. - optional string ui_element_path = 3; - // Class name of the activity containing the checked View. - optional string activity_name = 4; - // Title of the window containing the checked View. - optional string window_title = 5; - // The flattened component name of the app running the AccessibilityService which provided the a11y node. - optional string source_component_name = 6; - // Version code of the app running the AccessibilityService that provided the a11y node. - optional int64 source_version_code = 7; - // Class Name of the AccessibilityCheck that produced the result. - optional AccessibilityCheckClass result_check_class = 8; - // Result type of the AccessibilityCheckResult. - optional AccessibilityCheckResultType result_type = 9; - // Result ID of the AccessibilityCheckResult. - optional int32 result_id = 10; -} - -/** The AccessibilityCheck class. */ -// LINT.IfChange -enum AccessibilityCheckClass { - UNKNOWN_CHECK = 0; - CLASS_NAME_CHECK = 1; - CLICKABLE_SPAN_CHECK = 2; - DUPLICATE_CLICKABLE_BOUNDS_CHECK = 3; - DUPLICATE_SPEAKABLE_TEXT_CHECK = 4; - EDITABLE_CONTENT_DESC_CHECK = 5; - IMAGE_CONTRAST_CHECK = 6; - LINK_PURPOSE_UNCLEAR_CHECK = 7; - REDUNDANT_DESCRIPTION_CHECK = 8; - SPEAKABLE_TEXT_PRESENT_CHECK = 9; - TEXT_CONTRAST_CHECK = 10; - TEXT_SIZE_CHECK = 11; - TOUCH_TARGET_SIZE_CHECK = 12; - TRAVERSAL_ORDER_CHECK = 13; -} -// LINT.ThenChange(/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java) - -/** The type of AccessibilityCheckResult */ -enum AccessibilityCheckResultType { - UNKNOWN_RESULT_TYPE = 0; - ERROR = 1; - WARNING = 2; -} diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp index a86289b317d0..d17fdd02c776 100644 --- a/services/tests/servicestests/Android.bp +++ b/services/tests/servicestests/Android.bp @@ -36,8 +36,8 @@ android_test { "-Werror", ], static_libs: [ - "a11ychecker-protos-java-proto-lite", "aatf", + "accessibility_protos_lite", "cts-input-lib", "frameworks-base-testutils", "services.accessibility", diff --git a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java index c1b3929d3cba..5ee86ffa6b5b 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java @@ -23,7 +23,7 @@ import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_S import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME; import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_ACTIVITY_NAME; import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_DEFAULT_BROWSER; -import static com.android.server.accessibility.a11ychecker.TestUtils.createAtom; +import static com.android.server.accessibility.a11ychecker.TestUtils.createResult; import static com.android.server.accessibility.a11ychecker.TestUtils.getMockPackageManagerWithInstalledApps; import static com.google.common.truth.Truth.assertThat; @@ -32,6 +32,8 @@ import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import android.accessibility.AccessibilityCheckClass; +import android.accessibility.AccessibilityCheckResultType; import android.content.ComponentName; import android.content.pm.PackageManager; import android.platform.test.annotations.DisableFlags; @@ -112,19 +114,19 @@ public class AccessibilityCheckerManagerTest { .setViewIdResourceName("node2") .build(); - Set<A11yCheckerProto.AccessibilityCheckResultReported> results = + Set<AndroidAccessibilityCheckerResult> results = mAccessibilityCheckerManager.maybeRunA11yChecker( List.of(mockNodeInfo1, mockNodeInfo2), QUALIFIED_TEST_ACTIVITY_NAME, new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME, TEST_A11Y_SERVICE_CLASS_NAME), /*userId=*/ 0); assertThat(results).containsExactly( - createAtom(/*viewIdResourceName=*/ "node1", TEST_ACTIVITY_NAME, - A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, - A11yCheckerProto.AccessibilityCheckResultType.ERROR, /*resultId=*/ 2), - createAtom(/*viewIdResourceName=*/ "node2", TEST_ACTIVITY_NAME, - A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, - A11yCheckerProto.AccessibilityCheckResultType.ERROR, /*resultId=*/ 2) + createResult(/*viewIdResourceName=*/ "node1", TEST_ACTIVITY_NAME, + AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, + AccessibilityCheckResultType.ERROR_CHECK_RESULT_TYPE, /*resultId=*/ 2), + createResult(/*viewIdResourceName=*/ "node2", TEST_ACTIVITY_NAME, + AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, + AccessibilityCheckResultType.ERROR_CHECK_RESULT_TYPE, /*resultId=*/ 2) ); } @@ -137,7 +139,7 @@ public class AccessibilityCheckerManagerTest { .setViewIdResourceName("node1") .build(); - Set<A11yCheckerProto.AccessibilityCheckResultReported> results = + Set<AndroidAccessibilityCheckerResult> results = mAccessibilityCheckerManager.maybeRunA11yChecker( List.of(mockNodeInfo), QUALIFIED_TEST_ACTIVITY_NAME, new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME, @@ -158,16 +160,17 @@ public class AccessibilityCheckerManagerTest { .setViewIdResourceName("node1") .build(); - Set<A11yCheckerProto.AccessibilityCheckResultReported> results = + Set<AndroidAccessibilityCheckerResult> results = mAccessibilityCheckerManager.maybeRunA11yChecker( List.of(mockNodeInfo, mockNodeInfoDuplicate), QUALIFIED_TEST_ACTIVITY_NAME, new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME, TEST_A11Y_SERVICE_CLASS_NAME), /*userId=*/ 0); assertThat(results).containsExactly( - createAtom(/*viewIdResourceName=*/ "node1", TEST_ACTIVITY_NAME, - A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, - A11yCheckerProto.AccessibilityCheckResultType.ERROR, /*resultId=*/ 2) + createResult(/*viewIdResourceName=*/ "node1", TEST_ACTIVITY_NAME, + AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, + AccessibilityCheckResultType.ERROR_CHECK_RESULT_TYPE, /*resultId=*/ + 2) ); } diff --git a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java index 5b4e72e0ea45..4ec2fb9ffe6e 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java @@ -21,13 +21,15 @@ import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_S import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME; import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_ACTIVITY_NAME; import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_APP_PACKAGE_NAME; -import static com.android.server.accessibility.a11ychecker.TestUtils.createAtom; +import static com.android.server.accessibility.a11ychecker.TestUtils.createResult; import static com.android.server.accessibility.a11ychecker.TestUtils.getMockPackageManagerWithInstalledApps; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; +import android.accessibility.AccessibilityCheckClass; +import android.accessibility.AccessibilityCheckResultType; import android.content.ComponentName; import android.content.pm.PackageManager; import android.view.accessibility.AccessibilityNodeInfo; @@ -87,7 +89,7 @@ public class AccessibilityCheckerUtilsTest { AccessibilityCheckResult.AccessibilityCheckResultType.NOT_RUN, null, 5, null); - Set<A11yCheckerProto.AccessibilityCheckResultReported> atoms = + Set<AndroidAccessibilityCheckerResult> results = AccessibilityCheckerUtils.processResults( mockNodeInfo, List.of(result1, result2, result3, result4), @@ -96,13 +98,13 @@ public class AccessibilityCheckerUtilsTest { new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME, TEST_A11Y_SERVICE_CLASS_NAME)); - assertThat(atoms).containsExactly( - createAtom("TargetNode", "", - A11yCheckerProto.AccessibilityCheckClass.SPEAKABLE_TEXT_PRESENT_CHECK, - A11yCheckerProto.AccessibilityCheckResultType.WARNING, 1), - createAtom("TargetNode", "", - A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, - A11yCheckerProto.AccessibilityCheckResultType.ERROR, 2) + assertThat(results).containsExactly( + createResult("TargetNode", "", + AccessibilityCheckClass.SPEAKABLE_TEXT_PRESENT_CHECK, + AccessibilityCheckResultType.WARNING_CHECK_RESULT_TYPE, 1), + createResult("TargetNode", "", + AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK, + AccessibilityCheckResultType.ERROR_CHECK_RESULT_TYPE, 2) ); } @@ -126,7 +128,7 @@ public class AccessibilityCheckerUtilsTest { TouchTargetSizeCheck.class, AccessibilityCheckResult.AccessibilityCheckResultType.ERROR, null, 2, null); - Set<A11yCheckerProto.AccessibilityCheckResultReported> atoms = + Set<AndroidAccessibilityCheckerResult> results = AccessibilityCheckerUtils.processResults( mockNodeInfo, List.of(result1, result2), @@ -135,7 +137,7 @@ public class AccessibilityCheckerUtilsTest { new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME, TEST_A11Y_SERVICE_CLASS_NAME)); - assertThat(atoms).isEmpty(); + assertThat(results).isEmpty(); } @Test diff --git a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java index acf64b62c7d9..8e0b2ed4a9b0 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java @@ -20,6 +20,8 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.when; +import android.accessibility.AccessibilityCheckClass; +import android.accessibility.AccessibilityCheckResultType; import android.annotation.Nullable; import android.content.ComponentName; import android.content.pm.ActivityInfo; @@ -90,20 +92,20 @@ public class TestUtils { return accessibilityEvent; } - static A11yCheckerProto.AccessibilityCheckResultReported createAtom( + static AndroidAccessibilityCheckerResult createResult( String viewIdResourceName, String activityName, - A11yCheckerProto.AccessibilityCheckClass checkClass, - A11yCheckerProto.AccessibilityCheckResultType resultType, + AccessibilityCheckClass checkClass, + AccessibilityCheckResultType resultType, int resultId) { - return A11yCheckerProto.AccessibilityCheckResultReported.newBuilder() + return AndroidAccessibilityCheckerResult.newBuilder() .setPackageName(TEST_APP_PACKAGE_NAME) .setAppVersionCode(TEST_APP_VERSION_CODE) .setUiElementPath(TEST_APP_PACKAGE_NAME + ":" + viewIdResourceName) .setWindowTitle(TEST_WINDOW_TITLE) .setActivityName(activityName) .setSourceComponentName(new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME, - TEST_A11Y_SERVICE_CLASS_NAME).flattenToString()) + TEST_A11Y_SERVICE_CLASS_NAME)) .setSourceVersionCode(TEST_A11Y_SERVICE_SOURCE_VERSION_CODE) .setResultCheckClass(checkClass) .setResultType(resultType) |