Merge "Index database before getting Uri Descendants" into pi-dev
am: a7fd137e2d
Change-Id: I88d50fd6157b9a62209e0afa1e6a791974a3c38b
This commit is contained in:
@@ -89,6 +89,7 @@ public class SlicesDatabaseAccessor {
|
||||
* @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) {
|
||||
|
@@ -27,6 +27,7 @@ import android.database.Cursor;
|
||||
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;
|
||||
|
||||
|
@@ -31,7 +31,6 @@ import android.content.ContentResolver;
|
||||
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;
|
||||
@@ -40,14 +39,13 @@ import android.util.Pair;
|
||||
|
||||
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;
|
||||
|
@@ -33,7 +33,7 @@ import android.text.TextUtils;
|
||||
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;
|
||||
|
@@ -25,9 +25,13 @@ import android.content.ContentValues;
|
||||
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;
|
||||
@@ -35,8 +39,15 @@ import org.junit.Before;
|
||||
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 {
|
||||
@@ -157,6 +168,31 @@ 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);
|
||||
}
|
||||
|
@@ -63,11 +63,12 @@ public class FakeFeatureFactory extends FeatureFactory {
|
||||
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.
|
||||
*/
|
||||
|
@@ -15,12 +15,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
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;
|
Reference in New Issue
Block a user