• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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