Index everything into the database and disable invalid ones

Change-Id: I7eb931009b722c10487f6212113a8993463b7bce
Fixes: 34142852
Test: make RunSettingsRoboTests
This commit is contained in:
Matthew Fritze
2017-01-18 09:39:25 -08:00
parent 2a7c6bd840
commit 3f3b547e4a
4 changed files with 111 additions and 81 deletions

View File

@@ -41,6 +41,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import static com.android.settings.dashboard.SiteMapManager.SITE_MAP_COLUMNS;
import static com.google.common.truth.Truth.assertThat;
@@ -51,7 +52,7 @@ import static org.mockito.Mockito.spy;
public class DatabaseIndexingManagerTest {
private final String localeStr = "en_US";
private final int rank = 42;
private final int rank = 8;
private final String title = "title\u2011title";
private final String updatedTitle = "title-title";
private final String normalizedTitle = "titletitle";
@@ -212,6 +213,20 @@ public class DatabaseIndexingManagerTest {
assertThat(cursor.getCount()).isEqualTo(6);
}
@Test
public void testAddResourceWithNIKs_RowsInsertedDisabled() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
// Only add 2 of 6 items to be disabled.
String[] keys = {"gesture_double_tap_power", "gesture_swipe_down_fingerprint"};
Map<String, List<String>> niks = getNonIndexableKeys(keys);
mManager.indexOneSearchIndexableData(mDb, localeStr, resource, niks);
Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
assertThat(cursor.getCount()).isEqualTo(2);
cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
assertThat(cursor.getCount()).isEqualTo(4);
}
@Test
public void testAddResourceHeader_RowsMatch() {
SearchIndexableResource resource = getFakeResource(R.xml.application_settings);
@@ -529,21 +544,19 @@ public class DatabaseIndexingManagerTest {
@Test
public void testResourceProvider_ResourceRowInserted() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
resource.xmlResId = 0;
SearchIndexableResource resource = getFakeResource(0);
resource.className = "com.android.settings.LegalSettings";
mManager.indexOneSearchIndexableData(mDb, localeStr, resource,
new HashMap<>());
Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
assertThat(cursor.getCount()).isEqualTo(2);
assertThat(cursor.getCount()).isEqualTo(6);
}
@Test
public void testResourceProvider_ResourceRowMatches() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
resource.xmlResId = 0;
resource.className = "com.android.settings.LegalSettings";
SearchIndexableResource resource = getFakeResource(0);
resource.className = "com.android.settings.display.ScreenZoomSettings";
mManager.indexOneSearchIndexableData(mDb, localeStr, resource,
new HashMap<>());
@@ -555,9 +568,9 @@ public class DatabaseIndexingManagerTest {
// Data Rank
assertThat(cursor.getInt(1)).isEqualTo(rank);
// Data Title
assertThat(cursor.getString(2)).isEqualTo("Legal information");
assertThat(cursor.getString(2)).isEqualTo("Display size");
// Normalized Title
assertThat(cursor.getString(3)).isEqualTo("legal information");
assertThat(cursor.getString(3)).isEqualTo("display size");
// Summary On
assertThat(cursor.getString(4)).isEmpty();
// Summary On Normalized
@@ -569,12 +582,13 @@ public class DatabaseIndexingManagerTest {
// Entries - only on for list preferences
assertThat(cursor.getString(8)).isNull();
// Keywords
assertThat(cursor.getString(9)).isEmpty();
assertThat(cursor.getString(9)).isEqualTo(
"display density screen zoom scale scaling");
// Screen Title
assertThat(cursor.getString(10)).isEqualTo("Legal information");
assertThat(cursor.getString(10)).isEqualTo("Display size");
// Class Name
assertThat(cursor.getString(11))
.isEqualTo("com.android.settings.LegalSettings");
.isEqualTo("com.android.settings.display.ScreenZoomSettings");
// Icon
assertThat(cursor.getInt(12)).isEqualTo(iconResId);
// Intent Action
@@ -595,6 +609,20 @@ public class DatabaseIndexingManagerTest {
assertThat(cursor.getBlob(20)).isNull();
}
@Test
public void testResourceProvider_DisabledResourceRowsInserted() {
SearchIndexableResource resource = getFakeResource(0);
resource.className = "com.android.settings.LegalSettings";
mManager.indexOneSearchIndexableData(mDb, localeStr, resource,
new HashMap<String, List<String>>());
Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
assertThat(cursor.getCount()).isEqualTo(2);
cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
assertThat(cursor.getCount()).isEqualTo(4);
}
// Util functions
private SearchIndexableRaw getFakeRaw() {
@@ -636,4 +664,11 @@ public class DatabaseIndexingManagerTest {
sir.enabled = enabled;
return sir;
}
}
private Map<String, List<String>> getNonIndexableKeys(String[] keys) {
Map<String, List<String>> niks = new HashMap<>();
List<String> keysList = new ArrayList<>(Arrays.asList(keys));
niks.put(packageName, keysList);
return niks;
}
}

View File

@@ -80,26 +80,26 @@ public class DatabaseResultLoaderTest {
@Test
public void testMatchTitle() {
loader = new DatabaseResultLoader(mContext, "title");
assertThat(loader.loadInBackground().size()).isEqualTo(3);
verify(mSiteMapManager, times(3)).buildBreadCrumb(eq(mContext), anyString(), anyString());
assertThat(loader.loadInBackground().size()).isEqualTo(2);
verify(mSiteMapManager, times(2)).buildBreadCrumb(eq(mContext), anyString(), anyString());
}
@Test
public void testMatchSummary() {
loader = new DatabaseResultLoader(mContext, "summary");
assertThat(loader.loadInBackground().size()).isEqualTo(3);
assertThat(loader.loadInBackground().size()).isEqualTo(2);
}
@Test
public void testMatchKeywords() {
loader = new DatabaseResultLoader(mContext, "keywords");
assertThat(loader.loadInBackground().size()).isEqualTo(3);
assertThat(loader.loadInBackground().size()).isEqualTo(2);
}
@Test
public void testMatchEntries() {
loader = new DatabaseResultLoader(mContext, "entries");
assertThat(loader.loadInBackground().size()).isEqualTo(3);
assertThat(loader.loadInBackground().size()).isEqualTo(2);
}
@Test
@@ -167,7 +167,7 @@ public class DatabaseResultLoaderTest {
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true);
values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);
@@ -196,7 +196,7 @@ public class DatabaseResultLoaderTest {
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true);
values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);
@@ -223,7 +223,7 @@ public class DatabaseResultLoaderTest {
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true);
values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);
@@ -249,7 +249,7 @@ public class DatabaseResultLoaderTest {
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, "");
values.put(IndexDatabaseHelper.IndexColumns.ENABLED, false);
values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);