DatabaseResultLoaderTest.java revision 52b6f8887bb67b43066739c244e89e54caf2718b
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 18b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritzepackage com.android.settings.search2; 197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.content.ContentValues; 217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.content.Context; 2252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritzeimport android.content.Intent; 237fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.database.sqlite.SQLiteDatabase; 24a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.SettingsRobolectricTestRunner; 267fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.TestConfig; 27a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport com.android.settings.dashboard.SiteMapManager; 28b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritzeimport com.android.settings.search.IndexDatabaseHelper; 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 4252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritzeimport java.util.ArrayList; 43b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritzeimport java.util.List; 44b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport static com.google.common.truth.Truth.assertThat; 46a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.anyString; 47a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.eq; 48a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.times; 49a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.verify; 50a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.when; 517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@RunWith(SettingsRobolectricTestRunner.class) 537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 547fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzepublic class DatabaseResultLoaderTest { 557fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 56a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang @Mock(answer = Answers.RETURNS_DEEP_STUBS) 57a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private Context mMockContext; 58a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang @Mock 59a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private SiteMapManager mSiteMapManager; 60a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private Context mContext; 617fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze private DatabaseResultLoader loader; 627fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 6352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String titleOne = "titleOne"; 6452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String titleTwo = "titleTwo"; 6552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String titleThree = "titleThree"; 6652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String titleFour = "titleFour"; 6752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String summaryOne = "summaryOne"; 6852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String summaryTwo = "summaryTwo"; 6952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String summaryThree = "summaryThree"; 7052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze private final String summaryFour = "summaryFour"; 7152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 727fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze SQLiteDatabase mDb; 737fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 747fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Before 757fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void setUp() { 76a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang MockitoAnnotations.initMocks(this); 777fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mContext = RuntimeEnvironment.application; 78a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang FakeFeatureFactory.setupForTest(mMockContext); 79a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang FakeFeatureFactory factory = 80a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang (FakeFeatureFactory) FakeFeatureFactory.getFactory(mMockContext); 81a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang when(factory.searchFeatureProvider.getSiteMapManager()) 82a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang .thenReturn(mSiteMapManager); 837fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb = IndexDatabaseHelper.getInstance(mContext).getWritableDatabase(); 847fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze setUpDb(); 857fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 867fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 877fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @After 887fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void cleanUp() { 89a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang DatabaseTestUtils.clearDb(); 907fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 917fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 927fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 937fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchTitle() { 9440ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "title", mSiteMapManager); 953f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 963f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze verify(mSiteMapManager, times(2)).buildBreadCrumb(eq(mContext), anyString(), anyString()); 977fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 987fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 997fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 1007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchSummary() { 10140ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "summary", mSiteMapManager); 1023f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 1037fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1047fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1057fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 1067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchKeywords() { 10740ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "keywords", mSiteMapManager); 1083f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 1097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 1127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchEntries() { 11340ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "entries", mSiteMapManager); 1143f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 1157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 11852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseWord_matchesNonPrefix() { 1197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("Data usage"); 12040ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "usage", mSiteMapManager); 1217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1237fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 12552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseSpace_matches() { 1267fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("space"); 12740ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, " space ", mSiteMapManager); 1287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1297fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1307fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1317fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 13252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordNoDash() { 1337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("wi-fi calling"); 13440ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "wifi", mSiteMapManager); 1357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1367fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 13952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordWithDash() { 1407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("priorités seulment"); 14140ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "priorités", mSiteMapManager); 1427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 14652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordWithoutDash() { 1477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("priorités seulment"); 14840ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "priorites", mSiteMapManager); 1497fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 15352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesEntireQueryWithoutDash() { 1547fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("wi-fi calling"); 15540ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "wifi calling", mSiteMapManager); 1567fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1577fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1587fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 159314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 16052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCasePrefix_matchesPrefixOfEntry() { 161314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Photos"); 16240ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "pho", mSiteMapManager); 163314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 164314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 165314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 166314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 167314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCasePrefix_DoesNotMatchNonPrefixSubstring() { 168314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Photos"); 16940ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "hot", mSiteMapManager); 170314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 171314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 172314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 173314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 17452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefix_matchesPrefixOfEntry() { 175314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 17640ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "Apps", mSiteMapManager); 177314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 178314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 179314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 180314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 18152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefix_matchesSecondWordPrefixOfEntry() { 182314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 18340ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "Not", mSiteMapManager); 184314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 185314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 186314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 187314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 188314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfFirstEntry() { 189314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 19040ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "pp", mSiteMapManager); 191314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 192314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 193314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 194314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 195314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfSecondEntry() { 196314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 19740ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "tion", mSiteMapManager); 198314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 199314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 200314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 201314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 20252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefixWithSpecial_matchesPrefixOfEntry() { 203314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps & Notifications"); 20440ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "App", mSiteMapManager); 205314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 206314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 207314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 208314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 20952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefixWithSpecial_matchesPrefixOfSecondEntry() { 210314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps & Notifications"); 21140ce0fab758714c973945ec8f053c52076d5fc50Matthew Fritze loader = new DatabaseResultLoader(mContext, "No", mSiteMapManager); 212314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 213314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 214314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 215b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze @Test 21652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testDeDupe_noDuplicates_originalListReturn() { 21752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Three elements with unique titles and summaries 21852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze List<SearchResult> results = new ArrayList(); 21952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze IntentPayload intentPayload = new IntentPayload(new Intent()); 22052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 22152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult.Builder builder = new SearchResult.Builder(); 22252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleOne) 22352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryOne) 22452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(intentPayload); 22552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultOne = builder.build(); 22652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultOne); 22752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 22852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleTwo) 22952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryTwo); 23052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultTwo = builder.build(); 23152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultTwo); 23252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 23352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleThree) 23452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryThree); 23552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultThree = builder.build(); 23652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultThree); 23752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 23852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader = new DatabaseResultLoader(mContext, "", null); 23952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader.removeDuplicates(results); 24052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.size()).isEqualTo(3); 24152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(0)).isEqualTo(resultOne); 24252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(1)).isEqualTo(resultTwo); 24352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(2)).isEqualTo(resultThree); 24452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze } 24552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 24652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze @Test 24752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testDeDupe_oneDuplicate_duplicateRemoved() { 24852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze List<SearchResult> results = new ArrayList(); 24952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze IntentPayload intentPayload = new IntentPayload(new Intent()); 25052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 25152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult.Builder builder = new SearchResult.Builder(); 25252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleOne) 25352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryOne) 25452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addRank(0) 25552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(intentPayload); 25652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultOne = builder.build(); 25752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultOne); 25852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 25952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Duplicate of the first element 26052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleOne) 26152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryOne) 26252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addRank(1); 26352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultTwo = builder.build(); 26452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultTwo); 26552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 26652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Unique 26752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleThree) 26852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryThree); 26952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultThree = builder.build(); 27052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultThree); 27152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 27252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader = new DatabaseResultLoader(mContext, "", null); 27352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader.removeDuplicates(results); 27452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.size()).isEqualTo(2); 27552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(0)).isEqualTo(resultOne); 27652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(1)).isEqualTo(resultThree); 27752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze } 27852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 27952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze @Test 28052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testDeDupe_firstDupeInline_secondDuplicateRemoved() { 28152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze List<SearchResult> results = new ArrayList(); 28252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze InlineSwitchPayload inlinePayload = new InlineSwitchPayload("", 0, 28352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze null); 28452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze IntentPayload intentPayload = new IntentPayload(new Intent()); 28552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 28652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult.Builder builder = new SearchResult.Builder(); 28752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Inline result 28852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleOne) 28952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryOne) 29052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addRank(0) 29152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(inlinePayload); 29252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultOne = builder.build(); 29352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultOne); 29452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 29552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Duplicate of first result, but Intent Result. Should be removed. 29652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleOne) 29752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryOne) 29852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addRank(1) 29952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(intentPayload); 30052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultTwo = builder.build(); 30152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultTwo); 30252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 30352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Unique 30452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleThree) 30552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryThree); 30652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultThree = builder.build(); 30752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultThree); 30852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 30952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader = new DatabaseResultLoader(mContext, "", null); 31052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader.removeDuplicates(results); 31152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.size()).isEqualTo(2); 31252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(0)).isEqualTo(resultOne); 31352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(1)).isEqualTo(resultThree); 31452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze } 31552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 31652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze @Test 31752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testDeDupe_secondDupeInline_firstDuplicateRemoved() { 31852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze /* 31952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * Create a list as follows: 32052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (5) Intent Four 32152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (4) Inline Two 32252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (3) Intent Three 32352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (2) Intent Two 32452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (1) Intent One 32552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * 32652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * After removing duplicates: 32752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (4) Intent Four 32852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (3) Inline Two 32952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (2) Intent Three 33052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze * (1) Intent One 33152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze */ 33252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze List<SearchResult> results = new ArrayList(); 33352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze InlineSwitchPayload inlinePayload = new InlineSwitchPayload("", 0, 33452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze null); 33552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze IntentPayload intentPayload = new IntentPayload(new Intent()); 33652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 33752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 33852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult.Builder builder = new SearchResult.Builder(); 33952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Intent One 34052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleOne) 34152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryOne) 34252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(intentPayload); 34352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultOne = builder.build(); 34452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultOne); 34552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 34652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Intent Two 34752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleTwo) 34852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryTwo) 34952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(intentPayload); 35052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultTwo = builder.build(); 35152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultTwo); 35252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 35352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Intent Three 35452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleThree) 35552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryThree); 35652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultThree = builder.build(); 35752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultThree); 35852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 35952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Inline Two 36052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleTwo) 36152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryTwo) 36252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(inlinePayload); 36352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultFour = builder.build(); 36452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultFour); 36552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 36652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze // Intent Four 36752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze builder.addTitle(titleFour) 36852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addSummary(summaryOne) 36952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze .addPayload(intentPayload); 37052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze SearchResult resultFive = builder.build(); 37152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze results.add(resultFive); 37252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 37352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader = new DatabaseResultLoader(mContext, "", null); 37452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze loader.removeDuplicates(results); 37552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.size()).isEqualTo(4); 37652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(0)).isEqualTo(resultOne); 37752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(1)).isEqualTo(resultThree); 37852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(2)).isEqualTo(resultFour); 37952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze assertThat(results.get(3)).isEqualTo(resultFive); 38052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze } 38152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 38252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze @Test 38352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseTwoWords_firstWordMatches_ranksHigher() { 384b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze final String caseOne = "Apple pear"; 385b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze final String caseTwo = "Banana apple"; 386b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze insertSpecialCase(caseOne); 387b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze insertSpecialCase(caseTwo); 388b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze loader = new DatabaseResultLoader(mContext, "App", null); 389b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze List<? extends SearchResult> results = loader.loadInBackground(); 390b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 391b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(0).title).isEqualTo(caseOne); 392b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(1).title).isEqualTo(caseTwo); 393b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(0).rank).isLessThan(results.get(1).rank); 394b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze } 395b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 3967fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze private void insertSpecialCase(String specialCase) { 3977fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze String normalized = DatabaseIndexingUtils.normalizeHyphen(specialCase); 3987fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze normalized = DatabaseIndexingUtils.normalizeString(normalized); 3997fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 4007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze ContentValues values = new ContentValues(); 401b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, normalized.hashCode()); 4027fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 4037fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 4047fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, specialCase); 4057fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, normalized); 4067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, ""); 4077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, ""); 4087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, ""); 4097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, ""); 4107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, ""); 4117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, ""); 4127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 4137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 4147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 4157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 4167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 4177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 4187fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 4193f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 4207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power"); 4217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 4227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 4237fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null); 4247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 4257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 4267fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 4277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 4287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze private void setUpDb() { 4297fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze ContentValues values = new ContentValues(); 4307fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 0); 4317fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 4327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 4337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "alpha_title"); 4347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "alpha title"); 4357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "alpha_summary"); 436314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "alpha summary"); 4377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "alpha_summary"); 438314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "alpha summary"); 439314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "alpha entries"); 440314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "alpha keywords"); 4417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 4427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 4437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 4447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 4457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 4467fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 4477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 4483f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 4497fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power"); 4507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 4517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 4527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null); 4537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 4547fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 4557fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 4567fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values = new ContentValues(); 4577fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 1); 4587fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 4597fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 4607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "bravo_title"); 4617fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "bravo title"); 4627fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "bravo_summary"); 463314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "bravo summary"); 4647fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "bravo_summary"); 465314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "bravo summary"); 466314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "bravo entries"); 467314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "bravo keywords"); 4687fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 4697fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 4707fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 4717fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 4727fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 4737fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 4747fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 4753f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 4767fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power"); 4777fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 4787fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 4797fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null); 4807fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 4817fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 4827fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values = new ContentValues(); 4837fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 2); 4847fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 4857fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 4867fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "charlie_title"); 4877fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "charlie title"); 4887fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "charlie_summary"); 489314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "charlie summary"); 4907fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "charlie_summary"); 491314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "charlie summary"); 492314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "charlie entries"); 493314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "charlie keywords"); 4947fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 4957fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 4967fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 4977fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 4987fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 4997fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 5007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 5013f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, false); 5027fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power"); 5037fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 5047fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 5057fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, (String) null); 5067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 5077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 5087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 509b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze}