DatabaseResultLoaderTest.java revision 314b09eb4b6bff2626604155e4273956aeaa24b5
17fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze/*
27fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * Copyright (C) 2017 The Android Open Source Project
37fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze *
47fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * Licensed under the Apache License, Version 2.0 (the "License");
57fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * you may not use this file except in compliance with the License.
67fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * You may obtain a copy of the License at
77fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze *
87fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze *      http://www.apache.org/licenses/LICENSE-2.0
97fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze *
107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * Unless required by applicable law or agreed to in writing, software
117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * distributed under the License is distributed on an "AS IS" BASIS,
127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * See the License for the specific language governing permissions and
147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * limitations under the License.
157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze *
167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze */
177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
187fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzepackage com.android.settings.search;
197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.content.ContentValues;
217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.content.Context;
227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.database.sqlite.SQLiteDatabase;
23a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang
247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.SettingsRobolectricTestRunner;
257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.TestConfig;
26a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport com.android.settings.dashboard.SiteMapManager;
277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.search2.DatabaseIndexingUtils;
287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.search2.DatabaseResultLoader;
29a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhangimport com.android.settings.testutils.DatabaseTestUtils;
30a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport com.android.settings.testutils.FakeFeatureFactory;
31a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang
327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.After;
337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.Before;
347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.Test;
357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.runner.RunWith;
36a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.Answers;
37a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.Mock;
38a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.MockitoAnnotations;
397fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.robolectric.RuntimeEnvironment;
407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.robolectric.annotation.Config;
417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport static com.google.common.truth.Truth.assertThat;
43a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.anyString;
44a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.eq;
45a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.times;
46a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.verify;
47a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.when;
487fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
497fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@RunWith(SettingsRobolectricTestRunner.class)
507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzepublic class DatabaseResultLoaderTest {
527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
53a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
54a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang    private Context mMockContext;
55a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang    @Mock
56a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang    private SiteMapManager mSiteMapManager;
57a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang    private Context mContext;
587fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    private DatabaseResultLoader loader;
597fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    SQLiteDatabase mDb;
617fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
627fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Before
637fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void setUp() {
64a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang        MockitoAnnotations.initMocks(this);
657fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        mContext = RuntimeEnvironment.application;
66a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang        FakeFeatureFactory.setupForTest(mMockContext);
67a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang        FakeFeatureFactory factory =
68a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mMockContext);
69a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang        when(factory.searchFeatureProvider.getSiteMapManager())
70a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang                .thenReturn(mSiteMapManager);
717fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        mDb = IndexDatabaseHelper.getInstance(mContext).getWritableDatabase();
727fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        setUpDb();
737fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
747fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
757fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @After
767fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void cleanUp() {
77a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang        DatabaseTestUtils.clearDb();
787fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
797fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
807fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
817fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testMatchTitle() {
827fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "title");
833f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(2);
843f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        verify(mSiteMapManager, times(2)).buildBreadCrumb(eq(mContext), anyString(), anyString());
857fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
867fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
877fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
887fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testMatchSummary() {
897fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "summary");
903f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(2);
917fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
927fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
937fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
947fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testMatchKeywords() {
957fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "keywords");
963f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(2);
977fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
987fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
997fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
1007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testMatchEntries() {
1017fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "entries");
1023f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(2);
1037fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
1047fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
1057fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
1067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testSpecialCaseWord_MatchesNonPrefix() {
1077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        insertSpecialCase("Data usage");
1087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "usage");
1097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
1107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
1117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
1127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
1137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testSpecialCaseSpace_Matches() {
1147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        insertSpecialCase("space");
1157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, " space ");
1167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
1177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
1187fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
1197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
1207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testSpecialCaseDash_MatchesWordNoDash() {
1217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        insertSpecialCase("wi-fi calling");
1227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "wifi");
1237fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
1247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
1257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
1267fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
1277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testSpecialCaseDash_MatchesWordWithDash() {
1287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        insertSpecialCase("priorités seulment");
1297fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "priorités");
1307fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
1317fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
1327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
1337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
1347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testSpecialCaseDash_MatchesWordWithoutDash() {
1357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        insertSpecialCase("priorités seulment");
1367fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "priorites");
1377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
1387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
1397fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
1407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    @Test
1417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    public void testSpecialCaseDash_MatchesEntireQueryWithoutDash() {
1427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        insertSpecialCase("wi-fi calling");
1437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        loader = new DatabaseResultLoader(mContext, "wifi calling");
1447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
1457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
1467fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
147314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
148314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCasePrefix_MatchesPrefixOfEntry() {
149314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Photos");
150314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "pho");
151314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
152314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
153314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
154314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
155314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCasePrefix_DoesNotMatchNonPrefixSubstring() {
156314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Photos");
157314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "hot");
158314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(0);
159314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
160314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
161314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
162314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCaseMultiWordPrefix_MatchesPrefixOfEntry() {
163314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Apps Notifications");
164314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "Apps");
165314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
166314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
167314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
168314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
169314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCaseMultiWordPrefix_MatchesSecondWordPrefixOfEntry() {
170314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Apps Notifications");
171314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "Not");
172314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
173314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
174314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
175314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
176314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfFirstEntry() {
177314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Apps Notifications");
178314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "pp");
179314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(0);
180314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
181314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
182314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
183314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfSecondEntry() {
184314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Apps Notifications");
185314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "tion");
186314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(0);
187314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
188314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
189314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
190314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCaseMultiWordPrefixWithSpecial_MatchesPrefixOfEntry() {
191314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Apps & Notifications");
192314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "App");
193314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
194314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
195314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
196314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    @Test
197314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    public void testSpecialCaseMultiWordPrefixWithSpecial_MatchesPrefixOfSecondEntry() {
198314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        insertSpecialCase("Apps & Notifications");
199314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        loader = new DatabaseResultLoader(mContext, "No");
200314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        assertThat(loader.loadInBackground().size()).isEqualTo(1);
201314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze    }
202314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze
2037fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    private void insertSpecialCase(String specialCase) {
2047fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        String normalized = DatabaseIndexingUtils.normalizeHyphen(specialCase);
2057fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        normalized = DatabaseIndexingUtils.normalizeString(normalized);
2067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
2077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        ContentValues values = new ContentValues();
2087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DOCID, 0);
2097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us");
2107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1);
2117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, specialCase);
2127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, normalized);
2137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "");
2147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "");
2157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "");
2167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "");
2177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "");
2187fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "");
2197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME,
2207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze                "com.android.settings.gestures.GestureSettings");
2217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves");
2227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, "");
2237fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
2247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
2257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
2263f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true);
2277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
2287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
2297fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);
2307fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null);
2317fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
2327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values);
2337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
2347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
2357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    private void setUpDb() {
2367fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        ContentValues values = new ContentValues();
2377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DOCID, 0);
2387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us");
2397fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1);
2407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "alpha_title");
2417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "alpha title");
2427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "alpha_summary");
243314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "alpha summary");
2447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "alpha_summary");
245314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "alpha summary");
246314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "alpha entries");
247314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "alpha keywords");
2487fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME,
2497fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze                "com.android.settings.gestures.GestureSettings");
2507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves");
2517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, "");
2527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
2537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
2547fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
2553f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true);
2567fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
2577fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
2587fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);
2597fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null);
2607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
2617fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values);
2627fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
2637fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values = new ContentValues();
2647fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DOCID, 1);
2657fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us");
2667fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1);
2677fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "bravo_title");
2687fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "bravo title");
2697fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "bravo_summary");
270314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "bravo summary");
2717fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "bravo_summary");
272314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "bravo summary");
273314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "bravo entries");
274314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "bravo keywords");
2757fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME,
2767fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze                "com.android.settings.gestures.GestureSettings");
2777fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves");
2787fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, "");
2797fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
2807fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
2817fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
2823f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true);
2837fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
2847fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
2857fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);
2867fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null);
2877fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values);
2887fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
2897fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values = new ContentValues();
2907fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DOCID, 2);
2917fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us");
2927fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1);
2937fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "charlie_title");
2947fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "charlie title");
2957fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "charlie_summary");
296314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "charlie summary");
2977fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "charlie_summary");
298314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "charlie summary");
299314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "charlie entries");
300314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "charlie keywords");
3017fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME,
3027fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze                "com.android.settings.gestures.GestureSettings");
3037fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves");
3047fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, "");
3057fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, "");
3067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, "");
3077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ICON, "");
3083f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.ENABLED, false);
3097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power");
3107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0);
3117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0);
3127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null);
3137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze
3147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze        mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values);
3157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze    }
3167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze}
317