• 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.content.RestrictionsManager;
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 RestrictionsManager}. */
15 @RunWith(AndroidJUnit4.class)
16 public class RestrictionsManagerTest {
17 
18   @Test
restrictionsManager_applicationInstance_isNotSameAsActivityInstance()19   public void restrictionsManager_applicationInstance_isNotSameAsActivityInstance() {
20     RestrictionsManager applicationRestrictionsManager =
21         (RestrictionsManager)
22             ApplicationProvider.getApplicationContext()
23                 .getSystemService(Context.RESTRICTIONS_SERVICE);
24 
25     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
26       scenario.onActivity(
27           activity -> {
28             RestrictionsManager activityRestrictionsManager =
29                 (RestrictionsManager) activity.getSystemService(Context.RESTRICTIONS_SERVICE);
30 
31             assertThat(applicationRestrictionsManager)
32                 .isNotSameInstanceAs(activityRestrictionsManager);
33           });
34     }
35   }
36 
37   @Test
restrictionsManager_activityInstance_isSameAsActivityInstance()38   public void restrictionsManager_activityInstance_isSameAsActivityInstance() {
39     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
40       scenario.onActivity(
41           activity -> {
42             RestrictionsManager activityRestrictionsManager =
43                 (RestrictionsManager) activity.getSystemService(Context.RESTRICTIONS_SERVICE);
44             RestrictionsManager anotherActivityRestrictionsManager =
45                 (RestrictionsManager) activity.getSystemService(Context.RESTRICTIONS_SERVICE);
46 
47             assertThat(anotherActivityRestrictionsManager)
48                 .isSameInstanceAs(activityRestrictionsManager);
49           });
50     }
51   }
52 
53   @Test
restrictionsManager_hasRestrictionsProvider_isConsistentAcrossContexts()54   public void restrictionsManager_hasRestrictionsProvider_isConsistentAcrossContexts() {
55     RestrictionsManager applicationRestrictionsManager =
56         (RestrictionsManager)
57             ApplicationProvider.getApplicationContext()
58                 .getSystemService(Context.RESTRICTIONS_SERVICE);
59 
60     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
61       scenario.onActivity(
62           activity -> {
63             RestrictionsManager activityRestrictionsManager =
64                 (RestrictionsManager) activity.getSystemService(Context.RESTRICTIONS_SERVICE);
65 
66             boolean applicationHasProvider =
67                 applicationRestrictionsManager.hasRestrictionsProvider();
68             boolean activityHasProvider = activityRestrictionsManager.hasRestrictionsProvider();
69 
70             assertThat(activityHasProvider).isEqualTo(applicationHasProvider);
71           });
72     }
73   }
74 }
75