1 package android.app; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.accessibilityservice.AccessibilityServiceInfo; 6 import android.content.Context; 7 import android.view.accessibility.AccessibilityManager; 8 import androidx.test.core.app.ActivityScenario; 9 import androidx.test.core.app.ApplicationProvider; 10 import androidx.test.ext.junit.runners.AndroidJUnit4; 11 import java.util.List; 12 import org.junit.Test; 13 import org.junit.runner.RunWith; 14 import org.robolectric.testapp.TestActivity; 15 16 /** Compatibility test for {@link AccessibilityManager}. */ 17 @RunWith(AndroidJUnit4.class) 18 public class AccessibilityManagerTest { 19 20 @Test accessibilityManager_applicationInstance_isSameAsActivityInstance()21 public void accessibilityManager_applicationInstance_isSameAsActivityInstance() { 22 AccessibilityManager applicationAccessibilityManager = 23 (AccessibilityManager) 24 ApplicationProvider.getApplicationContext() 25 .getSystemService(Context.ACCESSIBILITY_SERVICE); 26 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 27 scenario.onActivity( 28 activity -> { 29 AccessibilityManager activityAccessibilityManager = 30 (AccessibilityManager) activity.getSystemService(Context.ACCESSIBILITY_SERVICE); 31 assertThat(applicationAccessibilityManager) 32 .isSameInstanceAs(activityAccessibilityManager); 33 }); 34 } 35 } 36 37 @Test accessibilityManager_activityInstance_isSameAsActivityInstance()38 public void accessibilityManager_activityInstance_isSameAsActivityInstance() { 39 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 40 scenario.onActivity( 41 activity -> { 42 AccessibilityManager activityAccessibilityManager = 43 (AccessibilityManager) activity.getSystemService(Context.ACCESSIBILITY_SERVICE); 44 AccessibilityManager anotherActivityAccessibilityManager = 45 (AccessibilityManager) activity.getSystemService(Context.ACCESSIBILITY_SERVICE); 46 assertThat(anotherActivityAccessibilityManager) 47 .isSameInstanceAs(activityAccessibilityManager); 48 }); 49 } 50 } 51 52 @Test accessibilityManager_instance_hasSameAccessibilityServices()53 public void accessibilityManager_instance_hasSameAccessibilityServices() { 54 AccessibilityManager applicationAccessibilityManager = 55 (AccessibilityManager) 56 ApplicationProvider.getApplicationContext() 57 .getSystemService(Context.ACCESSIBILITY_SERVICE); 58 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 59 scenario.onActivity( 60 activity -> { 61 AccessibilityManager activityAccessibilityManager = 62 (AccessibilityManager) activity.getSystemService(Context.ACCESSIBILITY_SERVICE); 63 64 List<AccessibilityServiceInfo> applicationServices = 65 applicationAccessibilityManager.getInstalledAccessibilityServiceList(); 66 List<AccessibilityServiceInfo> activityServices = 67 activityAccessibilityManager.getInstalledAccessibilityServiceList(); 68 69 assertThat(activityServices).isEqualTo(applicationServices); 70 }); 71 } 72 } 73 } 74