Check flag to see whether to show accessibility usage dialog.

Test: Manually set/unset flag, see/don't see dialog.
Test: atest AccessibilityUsagePreferenceControllerTest
Change-Id: I214cf0bf4c67889f48e43fdf774a943dd11e6c34
This commit is contained in:
Joel Galenson
2019-02-15 08:12:08 -08:00
parent b87dfdc189
commit 858fa64d4a
2 changed files with 25 additions and 1 deletions

View File

@@ -22,8 +22,11 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_
import static com.google.common.truth.Truth.assertThat;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Context;
import android.provider.DeviceConfig;
import android.view.accessibility.AccessibilityManager;
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -31,6 +34,7 @@ import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowAccessibilityManager;
@@ -38,6 +42,7 @@ import java.util.ArrayList;
import java.util.Arrays;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowDeviceConfig.class})
public class AccessibilityUsagePreferenceControllerTest {
private Context mContext;
@@ -54,10 +59,23 @@ public class AccessibilityUsagePreferenceControllerTest {
@After
public void tearDown() {
ShadowAccessibilityManager.reset();
ShadowDeviceConfig.reset();
}
@Test
public void isAvailable_permissionHubNotSet_shouldReturnUnsupported() {
mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
AccessibilityUsagePreferenceController controller =
new AccessibilityUsagePreferenceController(mContext, "test_key");
// We have not yet set the property to show the Permissions Hub.
assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
@Test
public void getAvailabilityStatus_noEnabledServices_shouldReturnUnsupported() {
DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE,
DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
AccessibilityUsagePreferenceController controller =
new AccessibilityUsagePreferenceController(mContext, "test_key");
@@ -67,6 +85,8 @@ public class AccessibilityUsagePreferenceControllerTest {
@Test
public void getAvailabilityStatus_enabledServices_shouldReturnAvailableUnsearchable() {
DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE,
DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
mAccessibilityManager.setEnabledAccessibilityServiceList(
new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo())));
AccessibilityUsagePreferenceController controller =