package org.robolectric.shadows; import android.accessibilityservice.AccessibilityServiceInfo; import android.content.pm.ServiceInfo; import android.view.accessibility.AccessibilityManager; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.robolectric.TestRunners; import static android.content.Context.ACCESSIBILITY_SERVICE; import static org.assertj.core.api.Assertions.assertThat; import static org.robolectric.Shadows.shadowOf; @RunWith(TestRunners.MultiApiSelfTest.class) public class ShadowAccessibilityManagerTest { private AccessibilityManager accessibilityManager; private ShadowAccessibilityManager shadowAccessibilityManager; @Before public void setUp() throws Exception { accessibilityManager = (AccessibilityManager) RuntimeEnvironment.application.getSystemService(ACCESSIBILITY_SERVICE); shadowAccessibilityManager = shadowOf(accessibilityManager); } @Test public void shouldReturnTrueWhenEnabled() { shadowAccessibilityManager.setEnabled(true); assertThat(accessibilityManager.isEnabled()).isTrue(); } @Test public void shouldReturnTrueForTouchExplorationWhenEnabled() { shadowAccessibilityManager.setTouchExplorationEnabled(true); assertThat(accessibilityManager.isTouchExplorationEnabled()).isTrue(); } @Test public void shouldReturnExpectedEnabledServiceList() { List<AccessibilityServiceInfo> expected = new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo())); shadowAccessibilityManager.setEnabledAccessibilityServiceList(expected); assertThat(accessibilityManager.getEnabledAccessibilityServiceList(0)).isEqualTo(expected); } @Test public void shouldReturnExpectedInstalledServiceList() { List<AccessibilityServiceInfo> expected = new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo())); shadowAccessibilityManager.setInstalledAccessibilityServiceList(expected); assertThat(accessibilityManager.getInstalledAccessibilityServiceList()).isEqualTo(expected); } @Test public void shouldReturnExpectedAccessibilityServiceList() { List<ServiceInfo> expected = new ArrayList<>(Arrays.asList(new ServiceInfo())); shadowAccessibilityManager.setAccessibilityServiceList(expected); assertThat(accessibilityManager.getAccessibilityServiceList()).isEqualTo(expected); } }