blob: 217c4d0efc67e66f9d8781e69016e5eb775bc2cd [file] [log] [blame]
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import logging
import time
from autotest_lib.client.common_lib.cros import chrome
from autotest_lib.client.cros.a11y import a11y_test_base
class accessibility_Sanity(a11y_test_base.a11y_test_base):
"""Enables then disables all a11y features via accessibilityFeatures API."""
version = 1
# Features that do not have their own separate tests
_FEATURE_LIST = [
'largeCursor',
'stickyKeys',
'highContrast',
'screenMagnifier',
'autoclick',
'virtualKeyboard'
]
def _check_chromevox(self):
"""Run ChromeVox specific checks.
Check the reported state of ChromeVox before/after enable and disable.
"""
# ChromeVox is initially off.
self._confirm_chromevox_state(False)
# Turn ChromeVox on and check that all the pieces work.
self._toggle_chromevox()
self._confirm_chromevox_state(True)
# Turn ChromeVox off.
self._toggle_chromevox()
self._confirm_chromevox_state(False)
def run_once(self):
"""Entry point of this test."""
extension_path = self._get_extension_path()
with chrome.Chrome(extension_paths=[extension_path]) as cr:
self._extension = cr.get_extension(extension_path)
# Check specific features.
self._check_chromevox()
# Enable then disable all other accessibility features.
for value in [True, False]:
for feature in self._FEATURE_LIST:
logging.info('Setting %s to %s.', feature, value)
self._set_feature(feature, value)
time.sleep(1)