Blocks resources from adding headers that match settings

Certain Xml resources have a single setting for the page
which often means the header and setting have the same
title. This CL stops the header from being indexed in
that case.

Bug: 33701673
Test: make RunSettingsRoboTests
Change-Id: Ie617414010e654c41fd014aa2fe297e6d2088ca5
This commit is contained in:
Matthew Fritze
2017-02-15 10:03:41 -08:00
parent c65e3a19a1
commit 04615bc1b6
2 changed files with 38 additions and 13 deletions

View File

@@ -15,7 +15,7 @@
*
*/
package com.android.settings.search;
package com.android.settings.search2;
import android.content.Context;
import android.database.Cursor;
@@ -25,8 +25,8 @@ import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.search.IndexDatabaseHelper.SiteMapColumns;
import com.android.settings.search2.DatabaseIndexingManager;
import com.android.settings.search.IndexDatabaseHelper;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.testutils.DatabaseTestUtils;
import org.junit.After;
@@ -43,7 +43,6 @@ 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;
import static org.mockito.Mockito.spy;
@@ -625,6 +624,16 @@ public class DatabaseIndexingManagerTest {
assertThat(cursor.getCount()).isEqualTo(4);
}
@Test
public void testResourceWithTitleAndSettingName_TitleNotInserted() {
SearchIndexableResource resource = getFakeResource(R.xml.swipe_to_notification_settings);
mManager.indexFromResource(mDb, localeStr, resource, new ArrayList<String>());
Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE" +
" enabled = 1", null);
assertThat(cursor.getCount()).isEqualTo(1);
}
// Util functions
private SearchIndexableRaw getFakeRaw() {