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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs

Issue 1457683009: Complete live region support in ChromeVox Next. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // Include test fixture. 5 // Include test fixture.
6 GEN_INCLUDE(['../../testing/chromevox_next_e2e_test_base.js', 6 GEN_INCLUDE(['../../testing/chromevox_next_e2e_test_base.js',
7 '../../testing/assert_additions.js']); 7 '../../testing/assert_additions.js']);
8 8
9 GEN_INCLUDE(['../../testing/mock_feedback.js']); 9 GEN_INCLUDE(['../../testing/mock_feedback.js']);
10 10
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 <button id="go">Go</button> 225 <button id="go">Go</button>
226 <script> 226 <script>
227 document.getElementById('go').addEventListener('click', function() { 227 document.getElementById('go').addEventListener('click', function() {
228 document.getElementById('live').innerHTML = 'Hello, world'; 228 document.getElementById('live').innerHTML = 'Hello, world';
229 }, false); 229 }, false);
230 </script> 230 </script>
231 */}, 231 */},
232 function(rootNode) { 232 function(rootNode) {
233 var go = rootNode.find({ role: RoleType.button }); 233 var go = rootNode.find({ role: RoleType.button });
234 mockFeedback.call(go.doDefault.bind(go)) 234 mockFeedback.call(go.doDefault.bind(go))
235 .expectSpeech('Hello, world'); 235 .expectCategoryFlush('Hello, world');
236 mockFeedback.replay(); 236 mockFeedback.replay();
237 }); 237 });
238 }); 238 });
239 239
240 TEST_F('BackgroundTest', 'LiveRegionRemoveElement', function() { 240 TEST_F('BackgroundTest', 'LiveRegionRemoveElement', function() {
241 var mockFeedback = this.createMockFeedback(); 241 var mockFeedback = this.createMockFeedback();
242 this.runWithLoadedTree( 242 this.runWithLoadedTree(
243 function() {/*! 243 function() {/*!
244 <h1>Document with live region</h1> 244 <h1>Document with live region</h1>
245 <p id="live" aria-live="polite" aria-relevant="removals">Hello, world</p> 245 <p id="live" aria-live="polite" aria-relevant="removals">Hello, world</p>
246 <button id="go">Go</button> 246 <button id="go">Go</button>
247 <script> 247 <script>
248 document.getElementById('go').addEventListener('click', function() { 248 document.getElementById('go').addEventListener('click', function() {
249 document.getElementById('live').innerHTML = ''; 249 document.getElementById('live').innerHTML = '';
250 }, false); 250 }, false);
251 </script> 251 </script>
252 */}, 252 */},
253 function(rootNode) { 253 function(rootNode) {
254 var go = rootNode.find({ role: RoleType.button }); 254 var go = rootNode.find({ role: RoleType.button });
255 go.doDefault(); 255 go.doDefault();
256 mockFeedback.expectSpeech('removed:') 256 mockFeedback.expectCategoryFlush('removed:')
257 .expectSpeech('Hello, world'); 257 .expectQueue('Hello, world');
258 mockFeedback.replay(); 258 mockFeedback.replay();
259 }); 259 });
260 }); 260 });
261
262 TEST_F('BackgroundTest', 'LiveRegionChangeAtomic', function() {
263 var mockFeedback = this.createMockFeedback();
264 this.runWithLoadedTree(
265 function() {/*!
266 <div id="live" aria-live="polite" aria-atomic="true">
267 <div id="a"></div><div id="b">Bravo</div><div id="c"></div>
268 </div>
269 <button id="go">Go</button>
270 <script>
271 document.getElementById('go').addEventListener('click', function() {
272 document.getElementById('c').textContent = 'Charlie';
273 document.getElementById('a').textContent = 'Alpha';
274 }, false);
275 </script>
276 */},
277 function(rootNode) {
278 var go = rootNode.find({ role: RoleType.button });
279 mockFeedback.call(go.doDefault.bind(go))
280 .expectQueue('Alpha')
281 .expectQueue('Bravo')
282 .expectQueue('Charlie');
283 mockFeedback.replay();
284 });
285 });
286
287 TEST_F('BackgroundTest', 'LiveRegionChangeImageAlt', function() {
288 var mockFeedback = this.createMockFeedback();
289 this.runWithLoadedTree(
290 function() {/*!
291 <div id="live" aria-live="polite">
292 <img id="img" src="#" alt="Before">
293 </div>
294 <button id="go">Go</button>
295 <script>
296 document.getElementById('go').addEventListener('click', function() {
297 document.getElementById('img').setAttribute('alt', 'After');
298 }, false);
299 </script>
300 */},
301 function(rootNode) {
302 var go = rootNode.find({ role: RoleType.button });
303 mockFeedback.call(go.doDefault.bind(go))
304 .expectCategoryFlush('After')
305 .expectQueue('Image');
306 mockFeedback.replay();
307 });
308 });
309
310 TEST_F('BackgroundTest', 'LiveRegionThenFocus', function() {
311 var mockFeedback = this.createMockFeedback();
312 this.runWithLoadedTree(
313 function() {/*!
314 <div id="live" aria-live="polite"></div>
315 <button id="go">Go</button>
316 <button id="focus">Focus</button>
317 <script>
318 document.getElementById('go').addEventListener('click', function() {
319 document.getElementById('live').textContent = 'Live';
320 window.setTimeout(function() {
321 document.getElementById('focus').focus();
322 }, 50);
323 }, false);
324 </script>
325 */},
326 function(rootNode) {
327 var go = rootNode.find({ role: RoleType.button });
328 mockFeedback.call(go.doDefault.bind(go))
329 .expectCategoryFlush('Live')
330 .expectQueue('Focus');
331 mockFeedback.replay();
332 });
333 });
334
335 TEST_F('BackgroundTest', 'FocusThenLiveRegion', function() {
336 var mockFeedback = this.createMockFeedback();
337 this.runWithLoadedTree(
338 function() {/*!
339 <div id="live" aria-live="polite"></div>
340 <button id="go">Go</button>
341 <button id="focus">Focus</button>
342 <script>
343 document.getElementById('go').addEventListener('click', function() {
344 document.getElementById('focus').focus();
345 window.setTimeout(function() {
346 document.getElementById('live').textContent = 'Live';
347 }, 50);
348 }, false);
349 </script>
350 */},
351 function(rootNode) {
352 var go = rootNode.find({ role: RoleType.button });
353 mockFeedback.call(go.doDefault.bind(go))
354 .expectQueue('Focus')
355 .expectCategoryFlush('Live');
356 mockFeedback.replay();
357 });
358 });
359
360 TEST_F('BackgroundTest', 'LiveRegionCategoryFlush', function() {
361 var mockFeedback = this.createMockFeedback();
362 this.runWithLoadedTree(
363 function() {/*!
364 <div id="live1" aria-live="polite"></div>
365 <div id="live2" aria-live="polite"></div>
366 <button id="go">Go</button>
367 <button id="focus">Focus</button>
368 <script>
369 document.getElementById('go').addEventListener('click', function() {
370 document.getElementById('live1').textContent = 'Live1';
371 window.setTimeout(function() {
372 document.getElementById('live2').textContent = 'Live2';
373 }, 1000);
374 }, false);
375 </script>
376 */},
377 function(rootNode) {
378 var go = rootNode.find({ role: RoleType.button });
379 mockFeedback.call(go.doDefault.bind(go))
380 .expectCategoryFlush('Live1')
381 .expectCategoryFlush('Live2');
382 mockFeedback.replay();
383 });
384 });
261 385
262 TEST_F('BackgroundTest', 'InitialFocus', function() { 386 TEST_F('BackgroundTest', 'InitialFocus', function() {
263 var mockFeedback = this.createMockFeedback(); 387 var mockFeedback = this.createMockFeedback();
264 this.runWithLoadedTree('<a href="a">a</a>', 388 this.runWithLoadedTree('<a href="a">a</a>',
265 function(rootNode) { 389 function(rootNode) {
266 mockFeedback.expectSpeech('a') 390 mockFeedback.expectSpeech('a')
267 .expectSpeech('Link'); 391 .expectSpeech('Link');
268 mockFeedback.replay(); 392 mockFeedback.replay();
269 }); 393 });
270 }); 394 });
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 .call(off) 627 .call(off)
504 .call(focusThen.bind(this, rootNode.find({ role: 'link' }), on)) 628 .call(focusThen.bind(this, rootNode.find({ role: 'link' }), on))
505 .call(focusThen.bind(this, rootNode.find({ role: 'textField' }))) 629 .call(focusThen.bind(this, rootNode.find({ role: 'textField' })))
506 .expectNextSpeechUtteranceIsNot('a') 630 .expectNextSpeechUtteranceIsNot('a')
507 .expectSpeech('Edit text'); 631 .expectSpeech('Edit text');
508 632
509 mockFeedback.replay(); 633 mockFeedback.replay();
510 } 634 }
511 ); 635 );
512 }); 636 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698