1 package android.app; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.content.Context; 6 import android.os.Build; 7 import android.os.LocaleList; 8 import androidx.test.core.app.ActivityScenario; 9 import androidx.test.core.app.ApplicationProvider; 10 import androidx.test.ext.junit.runners.AndroidJUnit4; 11 import androidx.test.filters.SdkSuppress; 12 import org.junit.Test; 13 import org.junit.runner.RunWith; 14 import org.robolectric.testapp.TestActivity; 15 16 /** Compatibility test for {@link LocaleManager}. */ 17 @RunWith(AndroidJUnit4.class) 18 @SdkSuppress(minSdkVersion = Build.VERSION_CODES.TIRAMISU) 19 public class LocaleManagerTest { 20 21 @Test localeManager_applicationInstance_isNotSameAsActivityInstance()22 public void localeManager_applicationInstance_isNotSameAsActivityInstance() { 23 LocaleManager applicationLocaleManager = 24 (LocaleManager) 25 ApplicationProvider.getApplicationContext().getSystemService(Context.LOCALE_SERVICE); 26 27 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 28 scenario.onActivity( 29 activity -> { 30 LocaleManager activityLocaleManager = 31 (LocaleManager) activity.getSystemService(Context.LOCALE_SERVICE); 32 assertThat(applicationLocaleManager).isNotSameInstanceAs(activityLocaleManager); 33 }); 34 } 35 } 36 37 @Test localeManager_activityInstance_isSameAsActivityInstance()38 public void localeManager_activityInstance_isSameAsActivityInstance() { 39 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 40 scenario.onActivity( 41 activity -> { 42 LocaleManager activityLocaleManager = 43 (LocaleManager) activity.getSystemService(Context.LOCALE_SERVICE); 44 LocaleManager anotherActivityLocaleManager = 45 (LocaleManager) activity.getSystemService(Context.LOCALE_SERVICE); 46 assertThat(anotherActivityLocaleManager).isSameInstanceAs(activityLocaleManager); 47 }); 48 } 49 } 50 51 @Test localeManager_instance_retrievesSameApplicationLocales()52 public void localeManager_instance_retrievesSameApplicationLocales() { 53 LocaleManager applicationLocaleManager = 54 (LocaleManager) 55 ApplicationProvider.getApplicationContext().getSystemService(Context.LOCALE_SERVICE); 56 57 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 58 scenario.onActivity( 59 activity -> { 60 LocaleManager activityLocaleManager = 61 (LocaleManager) activity.getSystemService(Context.LOCALE_SERVICE); 62 63 LocaleList applicationLocales = applicationLocaleManager.getApplicationLocales(); 64 LocaleList activityLocales = activityLocaleManager.getApplicationLocales(); 65 66 assertThat(activityLocales).isEqualTo(applicationLocales); 67 }); 68 } 69 } 70 } 71