Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: chrome/test/data/webui/accessibility_audit_browsertest.js

Issue 23830003: Replace accessibility-developer-tools submodule with accessibility-audit directory containing just … (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert number of expected results in testCanIgnoreSelectors test to 2 Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/test/base/web_ui_browsertest.cc ('k') | chrome/test/data/webui/test_api.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Tests to ensure that the accessibility audit and mechanisms 6 * @fileoverview Tests to ensure that the accessibility audit and mechanisms
7 * to enable/disable it work as expected. 7 * to enable/disable it work as expected.
8 * @author aboxhall@google.com (Alice Boxhall) 8 * @author aboxhall@google.com (Alice Boxhall)
9 * @see test_api.js 9 * @see test_api.js
10 */ 10 */
(...skipping 22 matching lines...) Expand all
33 33
34 /** 34 /**
35 * Number of expected accessibility warnings, if it should be checked, 35 * Number of expected accessibility warnings, if it should be checked,
36 * otherwise null. 36 * otherwise null.
37 * @type {?number} 37 * @type {?number}
38 */ 38 */
39 expectedErrors: null, 39 expectedErrors: null,
40 40
41 isAsync: false, 41 isAsync: false,
42 42
43 accessibilityAuditConfig: function() {
44 if (!this.accessibilityAuditConfig_) {
45 testing.Test.prototype.accessibilityAuditConfig.call(this);
46 }
47 this.accessibilityAuditConfig_.auditRulesToRun = ['lowContrastElements',
48 'badAriaRole',
49 'controlsWithoutLabel'];
50 return this.accessibilityAuditConfig_;
51 },
52
43 tearDown: function() { 53 tearDown: function() {
44 var accessibilityResults = this.getAccessibilityResults(); 54 var accessibilityResults = this.getAccessibilityResults();
45 var numAccessibilityErrors = 0; 55 var numAccessibilityErrors = 0;
46 var numAccessibilityWarnings = 0; 56 var numAccessibilityWarnings = 0;
47 for (var i = 0; i < accessibilityResults.length; i++) { 57 for (var i = 0; i < accessibilityResults.length; i++) {
48 var result = accessibilityResults[i]; 58 var result = accessibilityResults[i];
49 if (result.rule.severity == axs.constants.Severity.Warning) 59 if (result.rule.severity == axs.constants.Severity.Warning)
50 numAccessibilityWarnings++; 60 numAccessibilityWarnings++;
51 else 61 else
52 numAccessibilityErrors++; 62 numAccessibilityErrors++;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 axs.Audit = audit.proxy(); 144 axs.Audit = audit.proxy();
135 } 145 }
136 146
137 /** 147 /**
138 * Creates an expectation that the global axs.Audit object will have its run() 148 * Creates an expectation that the global axs.Audit object will have its run()
139 * method called |times| times. 149 * method called |times| times.
140 * This creates an interstitial mock axs.Audit object with the expectation, and 150 * This creates an interstitial mock axs.Audit object with the expectation, and
141 * delegates to the real axs.Audit object to run the actual audit. 151 * delegates to the real axs.Audit object to run the actual audit.
142 * @param {number} times The number of times the audit is expected to run. 152 * @param {number} times The number of times the audit is expected to run.
143 */ 153 */
144 function expectAuditWillRun(times) { 154 function expectAuditWillRun(times, auditConfig) {
145 var audit = createMockAudit(); 155 var audit = createMockAudit();
146 var realAudit = axs.Audit; 156 var realAudit = axs.Audit;
147 var expectedInvocation = audit.expects(exactly(times)).run(ANYTHING); 157 var expectedInvocation = audit.expects(exactly(times)).run(ANYTHING);
148 var willArgs = []; 158 var willArgs = [];
149 for (var i = 0; i < times; i++) 159 for (var i = 0; i < times; i++)
150 willArgs.push(callFunction(realAudit.run)); 160 willArgs.push(callFunction(realAudit.run, auditConfig));
151 expectedInvocation.will.apply(expectedInvocation, willArgs); 161 expectedInvocation.will.apply(expectedInvocation, willArgs);
152 axs.Audit = audit.proxy(); 162 axs.Audit = audit.proxy();
153 axs.Audit.createReport = realAudit.createReport; 163 axs.Audit.createReport = realAudit.createReport;
154 axs.Audit.auditResults = realAudit.auditResults; 164 axs.Audit.auditResults = realAudit.auditResults;
155 axs.Audit.accessibilityErrorMessage = realAudit.accessibilityErrorMessage; 165 axs.Audit.accessibilityErrorMessage = realAudit.accessibilityErrorMessage;
156 } 166 }
157 167
158 // Test that an audit failure causes a test failure, if both 168 // Test that an audit failure causes a test failure, if both
159 // |runAccessibilityChecks| and |accessibilityIssuesAreErrors| are true. 169 // |runAccessibilityChecks| and |accessibilityIssuesAreErrors| are true.
160 TEST_F('WebUIAccessibilityAuditBrowserTest_ShouldFail', 'testWithAuditFailures', 170 TEST_F('WebUIAccessibilityAuditBrowserTest_ShouldFail', 'testWithAuditFailures',
161 function() { 171 function() {
162 expectAuditWillRun(1); 172 expectAuditWillRun(1, this.accessibilityAuditConfig());
163 addAuditFailures(); 173 addAuditFailures();
164 }); 174 });
165 175
166 // Test that the accessibility audit does not run if |runAccessibilityChecks| 176 // Test that the accessibility audit does not run if |runAccessibilityChecks|
167 // is false. 177 // is false.
168 TEST_F('WebUIAccessibilityAuditBrowserTest', 178 TEST_F('WebUIAccessibilityAuditBrowserTest',
169 'testWithAuditFailures_a11yChecksDisabled', 179 'testWithAuditFailures_a11yChecksDisabled',
170 function() { 180 function() {
171 expectAuditWillNotRun(); 181 expectAuditWillNotRun();
172 this.disableAccessibilityChecks(); 182 this.disableAccessibilityChecks();
173 addAuditFailures(); 183 addAuditFailures();
174 }); 184 });
175 185
176 // Tests that the accessibility audit will run but not cause a test failure when 186 // Tests that the accessibility audit will run but not cause a test failure when
177 // accessibilityIssuesAreErrors(false) is called in the test function 187 // accessibilityIssuesAreErrors(false) is called in the test function
178 TEST_F('WebUIAccessibilityAuditBrowserTest', 188 TEST_F('WebUIAccessibilityAuditBrowserTest',
179 'testWithAuditFailures_a11yIssuesAreWarnings', 189 'testWithAuditFailures_a11yIssuesAreWarnings',
180 function() { 190 function() {
181 this.accessibilityIssuesAreErrors = false; 191 this.accessibilityIssuesAreErrors = false;
182 expectAuditWillRun(1); 192 expectAuditWillRun(1, this.accessibilityAuditConfig());
183 expectReportConsoleWarning(); 193 expectReportConsoleWarning();
184 194
185 this.expectedWarnings = 1; 195 this.expectedWarnings = 1;
186 this.expectedErrors = 2; 196 this.expectedErrors = 2;
187 this.enableAccessibilityChecks(); 197 this.enableAccessibilityChecks();
188 addAuditFailures(); 198 addAuditFailures();
189 }); 199 });
190 200
191 /** 201 /**
192 * Test fixture with |runAccessibilityChecks| set to false. 202 * Test fixture with |runAccessibilityChecks| set to false.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 function() { 238 function() {
229 expectAuditWillNotRun(); 239 expectAuditWillNotRun();
230 addAuditFailures(); 240 addAuditFailures();
231 }); 241 });
232 242
233 // Test that the accessibility audit does run if the enableAccessibilityChecks() 243 // Test that the accessibility audit does run if the enableAccessibilityChecks()
234 // method is called in the test function. 244 // method is called in the test function.
235 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture_ShouldFail', 245 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture_ShouldFail',
236 'testWithAuditFailures', 246 'testWithAuditFailures',
237 function() { 247 function() {
238 expectAuditWillRun(1); 248 expectAuditWillRun(1, this.accessibilityAuditConfig());
239 this.enableAccessibilityChecks(); 249 this.enableAccessibilityChecks();
240 addAuditFailures(); 250 addAuditFailures();
241 }); 251 });
242 252
243 // Test that the accessibility audit runs when the expectAccessibilityOk() 253 // Test that the accessibility audit runs when the expectAccessibilityOk()
244 // method is called. 254 // method is called.
245 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture', 255 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture',
246 'testRunningAuditManually_noErrors', 256 'testRunningAuditManually_noErrors',
247 function() { 257 function() {
248 expectAuditWillRun(1); 258 expectAuditWillRun(1, this.accessibilityAuditConfig());
249 expectAccessibilityOk(); 259 expectAccessibilityOk();
250 }); 260 });
251 261
252 // Test that calling expectAccessibilityOk() when there are accessibility issues 262 // Test that calling expectAccessibilityOk() when there are accessibility issues
253 // on the page causes the test to fail. 263 // on the page causes the test to fail.
254 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture_ShouldFail', 264 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture_ShouldFail',
255 'testRunningAuditManually_withErrors', 265 'testRunningAuditManually_withErrors',
256 function() { 266 function() {
257 expectAuditWillRun(1); 267 expectAuditWillRun(1, this.accessibilityAuditConfig());
258 addAuditFailures(); 268 addAuditFailures();
259 expectAccessibilityOk(); 269 expectAccessibilityOk();
260 }); 270 });
261 271
262 // Test that calling expectAccessibilityOk() multiple times will cause the 272 // Test that calling expectAccessibilityOk() multiple times will cause the
263 // accessibility audit to run multiple times. 273 // accessibility audit to run multiple times.
264 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture', 274 TEST_F('WebUIAccessibilityAuditBrowserTest_TestsDisabledInFixture',
265 'testRunningAuditManuallySeveralTimes', function() { 275 'testRunningAuditManuallySeveralTimes', function() {
266 expectAuditWillRun(2); 276 expectAuditWillRun(2, this.accessibilityAuditConfig());
267 expectAccessibilityOk(); 277 expectAccessibilityOk();
268 expectAccessibilityOk(); 278 expectAccessibilityOk();
269 }); 279 });
270 280
271 /** 281 /**
272 * Test fixture with |accessibilityIssuesAreErrors| set to false. 282 * Test fixture with |accessibilityIssuesAreErrors| set to false.
273 * @constructor 283 * @constructor
274 * @extends {WebUIAccessibilityAuditBrowserTest} 284 * @extends {WebUIAccessibilityAuditBrowserTest}
275 */ 285 */
276 function WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings() {} 286 function WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings() {}
(...skipping 17 matching lines...) Expand all
294 304
295 testShouldFail: true 305 testShouldFail: true
296 }; 306 };
297 307
298 308
299 // Tests that the accessibility audit will run but not cause a test failure when 309 // Tests that the accessibility audit will run but not cause a test failure when
300 // |accessibilityIssuesAreErrors| is false in the test fixture. 310 // |accessibilityIssuesAreErrors| is false in the test fixture.
301 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings', 311 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings',
302 'testWithAuditFailures', 312 'testWithAuditFailures',
303 function() { 313 function() {
304 expectAuditWillRun(1); 314 expectAuditWillRun(1, this.accessibilityAuditConfig());
305 expectReportConsoleWarning(); 315 expectReportConsoleWarning();
306 this.expectedWarnings = 1; 316 this.expectedWarnings = 1;
307 this.expectedErrors = 2; 317 this.expectedErrors = 2;
308 318
309 this.enableAccessibilityChecks(); 319 this.enableAccessibilityChecks();
310 addAuditFailures(); 320 addAuditFailures();
311 }); 321 });
312 322
313 // Tests that the accessibility audit will run and call a test failure when 323 // Tests that the accessibility audit will run and call a test failure when
314 // accessibilityIssuesAreErrors(true) is called in the test function. 324 // accessibilityIssuesAreErrors(true) is called in the test function.
315 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings_ShouldFail', 325 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings_ShouldFail',
316 'testWithAuditFailuresAndIssuesAreErrors', 326 'testWithAuditFailuresAndIssuesAreErrors',
317 function() { 327 function() {
318 expectAuditWillRun(1); 328 expectAuditWillRun(1, this.accessibilityAuditConfig());
319 this.expectedWarnings = 1; 329 this.expectedWarnings = 1;
320 this.expectedErrors = 2; 330 this.expectedErrors = 2;
321 331
322 this.accessibilityIssuesAreErrors = true; 332 this.accessibilityIssuesAreErrors = true;
323 this.enableAccessibilityChecks(); 333 this.enableAccessibilityChecks();
324 334
325 addAuditFailures(); 335 addAuditFailures();
326 }); 336 });
327 337
328 // Tests that the accessibility audit will run twice if expectAccessibilityOk() 338 // Tests that the accessibility audit will run twice if expectAccessibilityOk()
329 // is called during the test function and |runAccessibilityChecks| is true in 339 // is called during the test function and |runAccessibilityChecks| is true in
330 // the test fixture. 340 // the test fixture.
331 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings', 341 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings',
332 'testWithAuditFailuresAndExpectA11yOk', 342 'testWithAuditFailuresAndExpectA11yOk',
333 function() { 343 function() {
334 expectAuditWillRun(2); 344 expectAuditWillRun(2, this.accessibilityAuditConfig());
335 345
336 expectAccessibilityOk(); 346 expectAccessibilityOk();
337 347
338 this.expectedWarnings = 1; 348 this.expectedWarnings = 1;
339 this.expectedErrors = 2; 349 this.expectedErrors = 2;
340 expectReportConsoleWarning(); 350 expectReportConsoleWarning();
341 351
342 this.enableAccessibilityChecks(); 352 this.enableAccessibilityChecks();
343 353
344 addAuditFailures(); 354 addAuditFailures();
345 }); 355 });
346 356
347 // Tests that parts of the page can be ignored on a per-audit rule basis. 357 // Tests that parts of the page can be ignored on a per-audit rule basis.
348 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings', 358 TEST_F('WebUIAccessibilityAuditBrowserTest_IssuesAreWarnings',
349 'testCanIgnoreSelectors', 359 'testCanIgnoreSelectors',
350 function() { 360 function() {
351 this.disableAccessibilityChecks(); 361 this.disableAccessibilityChecks();
352
353 addAuditFailures(); 362 addAuditFailures();
354 var accessibilityResults = []; 363 var accessibilityResults = [];
355 try { 364 try {
356 assertAccessibilityOk(accessibilityResults); 365 assertAccessibilityOk(accessibilityResults);
357 } catch (e) { 366 } catch (e) {
358 // Expected error from assertion 367 // Expected error from assertion
359 } 368 }
360 expectEquals(3, accessibilityResults.length); 369 expectEquals(3, accessibilityResults.length);
361 370
362 accessibilityResults.length = 0; 371 accessibilityResults.length = 0;
363 372
364 this.accessibilityAuditConfig().ignoreSelectors('lowContrastElements', 'P'); 373 this.accessibilityAuditConfig().ignoreSelectors('lowContrastElements', 'P');
365 try { 374 try {
366 assertAccessibilityOk(accessibilityResults); 375 assertAccessibilityOk(accessibilityResults);
367 } catch (e) { 376 } catch (e) {
368 // Expected error from assertion 377 // Expected error from assertion
369 } 378 }
370 expectEquals(2, accessibilityResults.length); 379 expectEquals(2, accessibilityResults.length);
371 for (var i = 0; i < accessibilityResults.length; i++) { 380 for (var i = 0; i < accessibilityResults.length; i++) {
372 expectFalse(accessibilityResults[i].rule.name == 'lowContrastElements'); 381 expectFalse(accessibilityResults[i].rule.name == 'lowContrastElements');
373 } 382 }
374 }); 383 });
OLDNEW
« no previous file with comments | « chrome/test/base/web_ui_browsertest.cc ('k') | chrome/test/data/webui/test_api.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698