1 package android.app; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.content.ComponentName; 6 import android.content.Context; 7 import androidx.test.core.app.ActivityScenario; 8 import androidx.test.core.app.ApplicationProvider; 9 import androidx.test.ext.junit.runners.AndroidJUnit4; 10 import org.junit.Test; 11 import org.junit.runner.RunWith; 12 import org.robolectric.testapp.TestActivity; 13 14 /** Compatibility test for {@link SearchManager}. */ 15 @RunWith(AndroidJUnit4.class) 16 public class SearchManagerTest { 17 18 @Test searchManager_applicationInstance_isNotSameAsActivityInstance()19 public void searchManager_applicationInstance_isNotSameAsActivityInstance() { 20 SearchManager applicationSearchManager = 21 (SearchManager) 22 ApplicationProvider.getApplicationContext().getSystemService(Context.SEARCH_SERVICE); 23 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 24 scenario.onActivity( 25 activity -> { 26 SearchManager activitySearchManager = 27 (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); 28 assertThat(applicationSearchManager).isNotSameInstanceAs(activitySearchManager); 29 }); 30 } 31 } 32 33 @Test searchManager_activityInstance_isSameAsActivityInstance()34 public void searchManager_activityInstance_isSameAsActivityInstance() { 35 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 36 scenario.onActivity( 37 activity -> { 38 SearchManager activitySearchManager = 39 (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); 40 SearchManager anotherActivitySearchManager = 41 (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); 42 assertThat(anotherActivitySearchManager).isSameInstanceAs(activitySearchManager); 43 }); 44 } 45 } 46 47 @Test searchManager_globalSearchActivity_retrievesSameValues()48 public void searchManager_globalSearchActivity_retrievesSameValues() { 49 SearchManager applicationSearchManager = 50 (SearchManager) 51 ApplicationProvider.getApplicationContext().getSystemService(Context.SEARCH_SERVICE); 52 53 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 54 scenario.onActivity( 55 activity -> { 56 SearchManager activitySearchManager = 57 (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); 58 59 ComponentName applicationGlobalSearchActivity = 60 applicationSearchManager.getGlobalSearchActivity(); 61 ComponentName activityGlobalSearchActivity = 62 activitySearchManager.getGlobalSearchActivity(); 63 64 assertThat(applicationGlobalSearchActivity).isEqualTo(activityGlobalSearchActivity); 65 }); 66 } 67 } 68 } 69