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