Commit c83a6227 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Settings: Move settings_accessibility_test to OS settings only

SettingsAccessibilityTest is now only used by the OS settings a11y
tests, because browser settings a11y tests have been migrated to use
SettingsAccessibilityV3Test. Rename the class and folder to reflect
this, change the browsePreload to chrome://os-settings, and remove
extraLibraries and setup logic that were only used by browser settings.
This allows several OS settings a11y subclasses to inherit from the
new OSSettingsAccessibilityTest, and avoid needing to override
browsePreload. Include the file in the build only on Chrome OS, and
remove the line disabling kSettingsPolymer3 as this is no longer
respected.

Bug: 1069258
Change-Id: I38a719d6156c6e4505f7c63cd9c6a9060b4c1adc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2150295
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatardpapad <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#759505}
parent 3fb5d786
......@@ -107,13 +107,15 @@ js2gtest("browser_tests_js_webui") {
"a11y/accessibility_audit_rules.js",
"a11y/accessibility_test.js",
"polymer_browser_test_base.js",
"settings/a11y/settings_accessibility_test.js",
"settings/a11y/settings_accessibility_v3_test.js",
"//third_party/axe-core/axe.js",
]
if (is_chromeos) {
gen_include_files += [ "settings/a11y/crostini_accessibility_test.js" ]
gen_include_files += [
"settings/chromeos/a11y/os_settings_accessibility_test.js",
"settings/chromeos/a11y/crostini_accessibility_test.js",
]
}
extra_js_files = [
......@@ -133,16 +135,16 @@ js2gtest("browser_tests_js_webui") {
"../chromeos/oobe_webui_browsertest.js",
"chromeos/edu_login/edu_login_browsertest.js",
"set_time_dialog_browsertest.js",
"settings/a11y/crostini_settings_details_a11y_test.js",
"settings/a11y/crostini_settings_export_import_a11y_test.js",
"settings/a11y/crostini_settings_shared_paths_a11y_test.js",
"settings/a11y/crostini_settings_shared_usb_devices_a11y_test.js",
"settings/a11y/crostini_settings_subpage_a11y_test.js",
"settings/a11y/google_assistant_a11y_test.js",
"settings/a11y/manage_accessibility_a11y_test.js",
"settings/a11y/multidevice_a11y_test.js",
"settings/a11y/multidevice_features_a11y_test.js",
"settings/a11y/tts_subpage_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_details_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_export_import_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_shared_paths_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_shared_usb_devices_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_subpage_a11y_test.js",
"settings/chromeos/a11y/google_assistant_a11y_test.js",
"settings/chromeos/a11y/manage_accessibility_a11y_test.js",
"settings/chromeos/a11y/multidevice_a11y_test.js",
"settings/chromeos/a11y/multidevice_features_a11y_test.js",
"settings/chromeos/a11y/tts_subpage_a11y_test.js",
"settings/chromeos/os_settings_browsertest.js",
"settings/chromeos/os_settings_ui_browsertest.js",
"sys_internals/sys_internals_browsertest.js",
......
......@@ -11,7 +11,6 @@
GEN_INCLUDE([
'//chrome/test/data/webui/a11y/accessibility_test.js',
'//chrome/test/data/webui/polymer_browser_test_base.js',
'//chrome/test/data/webui/settings/a11y/settings_accessibility_test.js',
]);
GEN('#include "chrome/browser/chromeos/crostini/crostini_pref_names.h"');
......
......@@ -9,13 +9,14 @@
GEN_INCLUDE([
'crostini_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
name: 'CROSTINI_DETAILS',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptions,
axeOptions: OSSettingsAccessibilityTest.axeOptions,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(settings.routes.CROSTINI_DETAILS);
......@@ -24,5 +25,5 @@ AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
......@@ -10,13 +10,14 @@
GEN_INCLUDE([
'crostini_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
name: 'CROSTINI_EXPORT_IMPORT',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptions,
axeOptions: OSSettingsAccessibilityTest.axeOptions,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(
......@@ -26,5 +27,5 @@ AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
......@@ -9,13 +9,14 @@
GEN_INCLUDE([
'crostini_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
name: 'CROSTINI_SHARED_PATHS',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptions,
axeOptions: OSSettingsAccessibilityTest.axeOptions,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(
......@@ -25,5 +26,5 @@ AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
......@@ -10,13 +10,14 @@
GEN_INCLUDE([
'crostini_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
name: 'CROSTINI_SHARED_USB_DEVICES',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptions,
axeOptions: OSSettingsAccessibilityTest.axeOptions,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(
......@@ -26,5 +27,5 @@ AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
......@@ -9,13 +9,14 @@
GEN_INCLUDE([
'crostini_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
name: 'CROSTINI',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock,
axeOptions: OSSettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(settings.routes.CROSTINI);
......@@ -24,5 +25,5 @@ AccessibilityTest.define('CrostiniAccessibilityTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
......@@ -7,10 +7,10 @@
* Chrome OS only.
*/
// SettingsAccessibilityTest fixture.
// OSSettingsAccessibilityTest fixture.
GEN_INCLUDE([
'//chrome/test/data/webui/polymer_browser_test_base.js',
'settings_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
// eslint-disable-next-line no-var
......@@ -25,9 +25,9 @@ AccessibilityTest.define('GoogleAssistantA11yTest', {
/** @override */
name: 'GOOGLE_ASSISTANT',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptions,
axeOptions: OSSettingsAccessibilityTest.axeOptions,
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
/** @override */
setup: function() {
......
......@@ -7,25 +7,20 @@
* Chrome OS only.
*/
// SettingsAccessibilityTest fixture.
// OSSettingsAccessibilityTest fixture.
GEN_INCLUDE([
'//chrome/test/data/webui/polymer_browser_test_base.js',
'settings_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
// eslint-disable-next-line no-var
var ManageAccessibilityA11yTest = class extends PolymerTest {
/** @override */
get browsePreload() {
return 'chrome://os-settings/';
}
};
var ManageAccessibilityA11yTest = class extends OSSettingsAccessibilityTest {};
AccessibilityTest.define('ManageAccessibilityA11yTest', {
/** @override */
name: 'MANAGE_ACCESSIBILITY',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptions,
axeOptions: OSSettingsAccessibilityTest.axeOptions,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(
......@@ -35,5 +30,5 @@ AccessibilityTest.define('ManageAccessibilityA11yTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
......@@ -9,22 +9,17 @@
GEN_INCLUDE([
'//chrome/test/data/webui/polymer_browser_test_base.js',
'settings_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
// eslint-disable-next-line no-var
var MultideviceA11yTest = class extends PolymerTest {
/** @override */
get browsePreload() {
return 'chrome://os-settings/';
}
};
var MultideviceA11yTest = class extends OSSettingsAccessibilityTest {};
AccessibilityTest.define('MultideviceA11yTest', {
/** @override */
name: 'MULTIDEVICE',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock,
axeOptions: OSSettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(settings.routes.MULTIDEVICE);
......@@ -33,5 +28,5 @@ AccessibilityTest.define('MultideviceA11yTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
......@@ -9,22 +9,17 @@
GEN_INCLUDE([
'//chrome/test/data/webui/polymer_browser_test_base.js',
'settings_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
// eslint-disable-next-line no-var
var MultideviceFeaturesA11yTest = class extends PolymerTest {
/** @override */
get browsePreload() {
return 'chrome://os-settings/';
}
};
var MultideviceFeaturesA11yTest = class extends OSSettingsAccessibilityTest {};
AccessibilityTest.define('MultideviceFeaturesA11yTest', {
/** @override */
name: 'MULTIDEVICE_FEATURES_ACCESSIBILITY',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock,
axeOptions: OSSettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(
......@@ -35,7 +30,7 @@ AccessibilityTest.define('MultideviceFeaturesA11yTest', {
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter:
Object.assign({}, SettingsAccessibilityTest.violationFilter, {
Object.assign({}, OSSettingsAccessibilityTest.violationFilter, {
// Excuse link without an underline.
// TODO(https://crbug.com/894602): Remove this exception when settled
// with UX.
......
......@@ -10,17 +10,15 @@ GEN_INCLUDE([
'//chrome/test/data/webui/polymer_browser_test_base.js',
]);
GEN('#include "chrome/browser/ui/ui_features.h"');
/**
* Test fixture for Accessibility of Chrome Settings.
* @constructor
* @extends {PolymerTest}
*/
function SettingsAccessibilityTest() {}
function OSSettingsAccessibilityTest() {}
// Default accessibility audit options. Specify in test definition to use.
SettingsAccessibilityTest.axeOptions = {
OSSettingsAccessibilityTest.axeOptions = {
'rules': {
// Disable 'skip-link' check since there are few tab stops before the main
// content.
......@@ -33,16 +31,16 @@ SettingsAccessibilityTest.axeOptions = {
// TODO(crbug.com/1002627): This block prevents generation of a
// link-in-text-block browser-test. This can be removed once the bug is
// addressed, and usage should be replaced with
// SettingsAccessibilityTest.axeOptions
SettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock =
Object.assign({}, SettingsAccessibilityTest.axeOptions, {
'rules': Object.assign({}, SettingsAccessibilityTest.axeOptions.rules, {
// OSSettingsAccessibilityTest.axeOptions
OSSettingsAccessibilityTest.axeOptionsExcludeLinkInTextBlock =
Object.assign({}, OSSettingsAccessibilityTest.axeOptions, {
'rules': Object.assign({}, OSSettingsAccessibilityTest.axeOptions.rules, {
'link-in-text-block': {enabled: false},
})
});
// Default accessibility audit options. Specify in test definition to use.
SettingsAccessibilityTest.violationFilter = {
OSSettingsAccessibilityTest.violationFilter = {
'aria-valid-attr': function(nodeResult) {
const attributeWhitelist = [
'aria-active-attribute', // Polymer components use aria-active-attribute.
......@@ -71,23 +69,9 @@ SettingsAccessibilityTest.violationFilter = {
},
};
SettingsAccessibilityTest.prototype = {
OSSettingsAccessibilityTest.prototype = {
__proto__: PolymerTest.prototype,
/** @override */
browsePreload: 'chrome://settings/',
// Include files that define the mocha tests.
extraLibraries: [
...PolymerTest.prototype.extraLibraries,
'../ensure_lazy_loaded.js',
],
/** @override */
featureList: {disabled: ['features::kSettingsPolymer3']},
setUp: function() {
PolymerTest.prototype.setUp.call(this);
settings.ensureLazyLoaded();
},
browsePreload: 'chrome://os-settings/',
};
......@@ -7,31 +7,25 @@
* Chrome OS only.
*/
// SettingsAccessibilityTest fixture.
// OSSettingsAccessibilityTest fixture.
GEN_INCLUDE([
'//chrome/test/data/webui/polymer_browser_test_base.js',
'settings_accessibility_test.js',
'os_settings_accessibility_test.js',
]);
// TODO(crbug/950007): refactor this into an OSSettingsAccessibilityTest class
// eslint-disable-next-line no-var
var TtsAccessibilityTest = class extends PolymerTest {
var TtsAccessibilityTest = class extends OSSettingsAccessibilityTest {
/** @override */
get commandLineSwitches() {
return ['enable-experimental-a11y-features'];
}
/** @override */
get browsePreload() {
return 'chrome://os-settings/';
}
};
AccessibilityTest.define('TtsAccessibilityTest', {
/** @override */
name: 'MANAGE_TTS_SETTINGS',
/** @override */
axeOptions: SettingsAccessibilityTest.axeOptions,
axeOptions: OSSettingsAccessibilityTest.axeOptions,
/** @override */
setup: function() {
settings.Router.getInstance().navigateTo(
......@@ -41,5 +35,5 @@ AccessibilityTest.define('TtsAccessibilityTest', {
/** @override */
tests: {'Accessible with No Changes': function() {}},
/** @override */
violationFilter: SettingsAccessibilityTest.violationFilter,
violationFilter: OSSettingsAccessibilityTest.violationFilter,
});
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment