10ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze/* 20ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * Copyright (C) 2016 The Android Open Source Project 30ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * 40ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * Licensed under the Apache License, Version 2.0 (the "License"); 50ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * you may not use this file except in compliance with the License. 60ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * You may obtain a copy of the License at 70ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * 80ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * http://www.apache.org/licenses/LICENSE-2.0 90ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * 100ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * Unless required by applicable law or agreed to in writing, software 110ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * distributed under the License is distributed on an "AS IS" BASIS, 120ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * See the License for the specific language governing permissions and 140ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * limitations under the License. 150ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze * 160ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze */ 170ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze 180ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzepackage com.android.settings.search; 190ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze 200ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport android.app.Activity; 210ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport android.view.Menu; 226e88635e97b200e4d070480e215c70ffc0ae9b37Fan Zhang 230ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport com.android.settings.TestConfig; 24a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport com.android.settings.dashboard.SiteMapManager; 25fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhangimport com.android.settings.testutils.SettingsRobolectricTestRunner; 266e88635e97b200e4d070480e215c70ffc0ae9b37Fan Zhang 270ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.junit.Before; 280ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.junit.Test; 290ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.junit.runner.RunWith; 300ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.mockito.Answers; 310ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.mockito.Mock; 320ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.mockito.MockitoAnnotations; 330ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.robolectric.Robolectric; 340ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzeimport org.robolectric.annotation.Config; 350ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze 3618fcb08308b50e73bbb380d3c9fc3261a4df7c83Matthew Fritzeimport static com.google.common.truth.Truth.assertThat; 370ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze 380ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze@RunWith(SettingsRobolectricTestRunner.class) 390ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 400ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritzepublic class SearchFeatureProviderImplTest { 410ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze private SearchFeatureProviderImpl mProvider; 420ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze private Activity mActivity; 430ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze 440ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze @Mock(answer = Answers.RETURNS_DEEP_STUBS) 450ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze private Menu menu; 460ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze 470ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze @Before 480ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze public void setUp() { 490ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze MockitoAnnotations.initMocks(this); 500ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze mActivity = Robolectric.buildActivity(Activity.class).create().visible().get(); 519955db636016e7f18358f7b5d24a14b55df4dabfMatthew Fritze mProvider = new SearchFeatureProviderImpl(); 520ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze } 530ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze 540ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze @Test 55be0989cc615724f07f5717c9bf17e12560872bb4Matthew Fritze public void getSiteMapManager_shouldCacheInstance() { 56a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang final SiteMapManager manager1 = mProvider.getSiteMapManager(); 57a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang final SiteMapManager manager2 = mProvider.getSiteMapManager(); 58a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang 59a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang assertThat(manager1).isSameAs(manager2); 60a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang } 61fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang 62fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang @Test 63fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang public void getDatabaseSearchLoader_shouldCleanupQuery() { 64fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang final String query = " space "; 65fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang final DatabaseResultLoader loader = mProvider.getDatabaseSearchLoader(mActivity, query); 66fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang 67fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang assertThat(loader.mQueryText).isEqualTo(query.trim()); 68fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang } 69fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang 70fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang @Test 71fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang public void getInstalledAppSearchLoader_shouldCleanupQuery() { 72fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang final String query = " space "; 73fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang final InstalledAppResultLoader loader = 74fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang mProvider.getInstalledAppSearchLoader(mActivity, query); 75fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang 76fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang assertThat(loader.mQuery).isEqualTo(query.trim()); 77fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang } 78fbcf4e6e14d090aaced06d3f8708d6e9df1962baFan Zhang 790ed37c351333429f58e1561fcb8e6af9c2041507Matthew Fritze} 80