* @return a list of keys in the Slices database matching on {@param isPlatformSlice}.
*/
public List<String> getSliceKeys(boolean isPlatformSlice) {
+ verifyIndexing();
final String whereClause;
if (isPlatformSlice) {
import android.text.TextUtils;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.wifi.WifiSettings;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
-import android.database.ContentObserver;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.provider.Settings;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.search.FakeIndexProvider;
+import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.DatabaseTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeSliderController;
import com.android.settings.testutils.FakeToggleController;
-import com.android.settings.testutils.FakeUnavailablePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.After;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.accessibility.AccessibilitySlicePreferenceController;
-import com.android.settings.search.FakeIndexProvider;
+import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.FakeFeatureFactory;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
+import android.view.accessibility.AccessibilityManager;
-import com.android.settings.search.FakeIndexProvider;
+import com.android.settings.testutils.FakeIndexProvider;
+import com.android.settings.search.SearchFeatureProvider;
+import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.DatabaseTestUtils;
+import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAccessibilityManager;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
+
+import org.robolectric.shadow.api.Shadow;
+
@RunWith(SettingsRobolectricTestRunner.class)
public class SlicesDatabaseAccessorTest {
assertThat(keys).containsExactly(key);
}
+ @Test
+ @Config(qualifiers = "mcc999")
+ public void getSliceKeys_indexesDatabase() {
+ // Force new indexing
+ Locale.setDefault(new Locale("ca"));
+ // Register the fake a11y Service
+ ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
+ RuntimeEnvironment.application.getSystemService(AccessibilityManager.class));
+ shadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
+ final SearchFeatureProvider provider = new SearchFeatureProviderImpl();
+ final SlicesFeatureProvider sliceProvider = spy(new SlicesFeatureProviderImpl());
+ final FakeFeatureFactory factory = FakeFeatureFactory.setupForTest();
+ factory.searchFeatureProvider = provider;
+ factory.slicesFeatureProvider = sliceProvider;
+ // Fake the indexable list.
+ provider.getSearchIndexableResources().getProviderValues().clear();
+ provider.getSearchIndexableResources().getProviderValues().add(
+ FakeIndexProvider.class);
+
+ final SlicesDatabaseAccessor accessor = new SlicesDatabaseAccessor(mContext);
+ final List<String> keys = accessor.getSliceKeys(true);
+
+ assertThat(keys).isNotEmpty();
+ }
+
private void insertSpecialCase(String key) {
insertSpecialCase(key, true);
}
public final UserFeatureProvider userFeatureProvider;
public final AssistGestureFeatureProvider assistGestureFeatureProvider;
public final BluetoothFeatureProvider bluetoothFeatureProvider;
- public final SlicesFeatureProvider slicesFeatureProvider;
- public SearchFeatureProvider searchFeatureProvider;
public final AccountFeatureProvider mAccountFeatureProvider;
public final DeviceIndexFeatureProvider deviceIndexFeatureProvider;
+ public SlicesFeatureProvider slicesFeatureProvider;
+ public SearchFeatureProvider searchFeatureProvider;
+
/**
* Call this in {@code @Before} method of the test class to use fake factory.
*/
*
*/
-package com.android.settings.search;
+package com.android.settings.testutils;
import android.content.Context;
import android.provider.SearchIndexableResource;
import com.android.settings.R;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
import java.util.ArrayList;
import java.util.List;