Provide installed a11y services/activities from dynamicRawData for search
Bug: 354076686 Flag: com.android.settings.accessibility.fix_a11y_settings_search Test: Search Project Relate and verify the item shows up in the search result Test: Search Talkback with keywords, verify the Talkback shows up in the search result Test: atest AccessibilitySettingsTest Change-Id: I258ecb0928308b7cde30c12104408e11cc25ecd5
This commit is contained in:
@@ -42,7 +42,6 @@ import android.platform.test.annotations.EnableFlags;
|
||||
import android.platform.test.flag.junit.SetFlagsRule;
|
||||
import android.provider.Settings;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
import android.view.accessibility.Flags;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
@@ -50,6 +49,7 @@ import androidx.test.core.app.ApplicationProvider;
|
||||
import com.android.internal.accessibility.util.AccessibilityUtils;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.XmlTestUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowAccessibilityManager;
|
||||
import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
|
||||
@@ -78,6 +78,7 @@ import org.robolectric.android.controller.ActivityController;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadow.api.Shadow;
|
||||
import org.robolectric.shadows.ShadowContentResolver;
|
||||
import org.robolectric.shadows.ShadowLooper;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -155,6 +156,53 @@ public class AccessibilitySettingsTest {
|
||||
assertThat(indexableRawList).isNull();
|
||||
}
|
||||
|
||||
@DisableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
|
||||
@Test
|
||||
public void getDynamicRawDataToIndex_hasInstalledA11yFeatures_flagOff_returnEmpty() {
|
||||
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
|
||||
List.of(mServiceInfo));
|
||||
mShadowAccessibilityManager.setInstalledAccessibilityShortcutListAsUser(
|
||||
List.of(getMockAccessibilityShortcutInfo()));
|
||||
|
||||
assertThat(AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER.getDynamicRawDataToIndex(
|
||||
mContext, /* enabled= */ true))
|
||||
.isEmpty();
|
||||
}
|
||||
|
||||
@EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
|
||||
@Test
|
||||
public void getDynamicRawDataToIndex_hasInstalledA11yFeatures_flagOn_returnRawDataForInstalledA11yFeatures() {
|
||||
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
|
||||
List.of(mServiceInfo));
|
||||
mShadowAccessibilityManager.setInstalledAccessibilityShortcutListAsUser(
|
||||
List.of(getMockAccessibilityShortcutInfo()));
|
||||
final AccessibilitySearchFeatureProvider featureProvider =
|
||||
FakeFeatureFactory.setupForTest().getAccessibilitySearchFeatureProvider();
|
||||
final String synonyms = "fake keyword1, fake keyword2";
|
||||
when(featureProvider.getSynonymsForComponent(mContext, ACTIVITY_COMPONENT_NAME))
|
||||
.thenReturn("");
|
||||
when(featureProvider.getSynonymsForComponent(mContext, SERVICE_COMPONENT_NAME))
|
||||
.thenReturn(synonyms);
|
||||
|
||||
final List<SearchIndexableRaw> indexableRawDataList =
|
||||
AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER.getDynamicRawDataToIndex(
|
||||
mContext, /* enabled= */ true);
|
||||
ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
|
||||
|
||||
assertThat(indexableRawDataList).hasSize(2);
|
||||
SearchIndexableRaw a11yActivityIndexableData = indexableRawDataList.get(0);
|
||||
assertThat(a11yActivityIndexableData.key).isEqualTo(
|
||||
ACTIVITY_COMPONENT_NAME.flattenToString());
|
||||
assertThat(a11yActivityIndexableData.title).isEqualTo(DEFAULT_LABEL);
|
||||
assertThat(a11yActivityIndexableData.keywords).isEmpty();
|
||||
|
||||
SearchIndexableRaw a11yServiceIndexableData = indexableRawDataList.get(1);
|
||||
assertThat(a11yServiceIndexableData.key).isEqualTo(
|
||||
SERVICE_COMPONENT_NAME.flattenToString());
|
||||
assertThat(a11yServiceIndexableData.title).isEqualTo(DEFAULT_LABEL);
|
||||
assertThat(a11yServiceIndexableData.keywords).isEqualTo(synonyms);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getServiceSummary_serviceCrash_showsStopped() {
|
||||
mServiceInfo.crashed = true;
|
||||
@@ -328,7 +376,7 @@ public class AccessibilitySettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
|
||||
@DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
|
||||
public void onCreate_flagDisabled_haveRegisterToSpecificUrisAndActions() {
|
||||
setupFragment();
|
||||
|
||||
@@ -341,7 +389,7 @@ public class AccessibilitySettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
|
||||
@EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
|
||||
public void onCreate_flagEnabled_haveRegisterToSpecificUrisAndActions() {
|
||||
setupFragment();
|
||||
|
||||
@@ -415,7 +463,7 @@ public class AccessibilitySettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(com.android.settings.accessibility.Flags.FLAG_CHECK_PREBUNDLED_IS_PREINSTALLED)
|
||||
@EnableFlags(Flags.FLAG_CHECK_PREBUNDLED_IS_PREINSTALLED)
|
||||
public void testNonPreinstalledApp_IncludedInDownloadedCategory() {
|
||||
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
|
||||
List.of(getMockAccessibilityServiceInfo(
|
||||
|
Reference in New Issue
Block a user