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

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

Issue 2956663002: Turn on rich editable text by default (Closed)
Patch Set: Rebase again. Created 3 years, 6 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 14 matching lines...) Expand all
25 * @return {!MockFeedback} 25 * @return {!MockFeedback}
26 */ 26 */
27 createMockFeedback: function() { 27 createMockFeedback: function() {
28 var mockFeedback = new MockFeedback(this.newCallback(), 28 var mockFeedback = new MockFeedback(this.newCallback(),
29 this.newCallback.bind(this)); 29 this.newCallback.bind(this));
30 mockFeedback.install(); 30 mockFeedback.install();
31 return mockFeedback; 31 return mockFeedback;
32 }, 32 },
33 33
34 assertLineData: function(doc, data) { 34 assertLineData: function(doc, data) {
35 editing.useRichText = false;
35 this.runWithLoadedTree(doc, function(root) { 36 this.runWithLoadedTree(doc, function(root) {
36 var input = root.find({role: RoleType.TEXT_FIELD}); 37 var input = root.find({role: RoleType.TEXT_FIELD});
37 input.addEventListener('focus', this.newCallback(function() { 38 input.addEventListener('focus', this.newCallback(function() {
38 var textHandler = ChromeVoxState.desktopAutomationHandler 39 var textHandler = ChromeVoxState.desktopAutomationHandler
39 .textEditHandler_.editableText_; 40 .textEditHandler_.editableText_;
40 41
41 var offset = 0; 42 var offset = 0;
42 for (var i = 0; i < data.length; i++) { 43 for (var i = 0; i < data.length; i++) {
43 var line = data[i]; 44 var line = data[i];
44 var actualStart = textHandler.getLineStart(i); 45 var actualStart = textHandler.getLineStart(i);
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 [ 207 [
207 {start: 0, end: 4, text: 'this'}, 208 {start: 0, end: 4, text: 'this'},
208 {start: 5, end: 5, text: ''}, 209 {start: 5, end: 5, text: ''},
209 {start: 6, end: 6, text: ''}, 210 {start: 6, end: 6, text: ''},
210 {start: 7, end: 8, text: 'I'}, 211 {start: 7, end: 8, text: 'I'},
211 {start: 9, end: 17, text: 'can test'}, 212 {start: 9, end: 17, text: 'can test'},
212 ]); 213 ]);
213 }); 214 });
214 215
215 TEST_F('EditingTest', 'RichTextMoveByLine', function() { 216 TEST_F('EditingTest', 'RichTextMoveByLine', function() {
216 editing.useRichText = true;
217 var mockFeedback = this.createMockFeedback(); 217 var mockFeedback = this.createMockFeedback();
218 this.runWithLoadedTree(function() {/*! 218 this.runWithLoadedTree(function() {/*!
219 <div id="go" role="textbox" contenteditable> 219 <div id="go" role="textbox" contenteditable>
220 <h2>hello</h2> 220 <h2>hello</h2>
221 <div><br></div> 221 <div><br></div>
222 <p>This is a <a href="#test">test</a> of rich text</p> 222 <p>This is a <a href="#test">test</a> of rich text</p>
223 </div> 223 </div>
224 <script> 224 <script>
225 var dir = 'forward'; 225 var dir = 'forward';
226 var line = 0; 226 var line = 0;
(...skipping 19 matching lines...) Expand all
246 .expectSpeech('\n') 246 .expectSpeech('\n')
247 .expectBraille('\n') 247 .expectBraille('\n')
248 .call(moveByLine) 248 .call(moveByLine)
249 .expectSpeech('This is a test of rich text') 249 .expectSpeech('This is a test of rich text')
250 .expectBraille('This is a test of rich text') 250 .expectBraille('This is a test of rich text')
251 .call(moveByLine) 251 .call(moveByLine)
252 .expectSpeech('\n') 252 .expectSpeech('\n')
253 .expectBraille('\n') 253 .expectBraille('\n')
254 .call(moveByLine) 254 .call(moveByLine)
255 .expectSpeech('hello') 255 .expectSpeech('hello')
256 .expectBraille('hello') 256 .expectBraille('hello mled')
257 .replay(); 257 .replay();
258 }); 258 });
259 input.focus(); 259 input.focus();
260 }); 260 });
261 }); 261 });
262 262
263 TEST_F('EditingTest', 'RichTextMoveByCharacter', function() { 263 TEST_F('EditingTest', 'RichTextMoveByCharacter', function() {
264 editing.useRichText = true;
265 var mockFeedback = this.createMockFeedback(); 264 var mockFeedback = this.createMockFeedback();
266 this.runWithLoadedTree(function() {/*! 265 this.runWithLoadedTree(function() {/*!
267 <div id="go" role="textbox" contenteditable>This <b>is</b> a test.</div> 266 <div id="go" role="textbox" contenteditable>This <b>is</b> a test.</div>
268 267
269 <script> 268 <script>
270 var dir = 'forward'; 269 var dir = 'forward';
271 var char = 0; 270 var char = 0;
272 document.getElementById('go').addEventListener('click', function() { 271 document.getElementById('go').addEventListener('click', function() {
273 var sel = getSelection(); 272 var sel = getSelection();
274 sel.modify('move', dir, 'character'); 273 sel.modify('move', dir, 'character');
275 if (dir == 'forward') 274 if (dir == 'forward')
276 char++; 275 char++;
277 else 276 else
278 char--; 277 char--;
279 278
280 if (char == 0) 279 if (char == 0)
281 dir = 'forward'; 280 dir = 'forward';
282 if (line == 16) 281 if (line == 16)
283 dir = 'backward'; 282 dir = 'backward';
284 }, true); 283 }, true);
285 </script> 284 </script>
286 */}, function(root) { 285 */}, function(root) {
287 var input = root.find({role: RoleType.TEXT_FIELD}); 286 var input = root.find({role: RoleType.TEXT_FIELD});
288 var moveByChar = input.doDefault.bind(input); 287 var moveByChar = input.doDefault.bind(input);
289 var lineText = 'This is a test.'; 288 var lineText = 'This is a test. mled';
290 289
291 this.listenOnce(input, 'focus', function() { 290 this.listenOnce(input, 'focus', function() {
292 mockFeedback.call(moveByChar) 291 mockFeedback.call(moveByChar)
293 .expectSpeech('h') 292 .expectSpeech('h')
294 .expectBraille(lineText, { startIndex: 1, endIndex: 1 }) 293 .expectBraille(lineText, { startIndex: 1, endIndex: 1 })
295 .call(moveByChar) 294 .call(moveByChar)
296 .expectSpeech('i') 295 .expectSpeech('i')
297 .expectBraille(lineText, { startIndex: 2, endIndex: 2 }) 296 .expectBraille(lineText, { startIndex: 2, endIndex: 2 })
298 .call(moveByChar) 297 .call(moveByChar)
299 .expectSpeech('s') 298 .expectSpeech('s')
(...skipping 25 matching lines...) Expand all
325 .expectBraille(lineText, { startIndex: 9, endIndex: 9 }) 324 .expectBraille(lineText, { startIndex: 9, endIndex: 9 })
326 325
327 .replay(); 326 .replay();
328 }); 327 });
329 input.focus(); 328 input.focus();
330 }); 329 });
331 }); 330 });
332 331
333 // Tests specifically for cursor workarounds. 332 // Tests specifically for cursor workarounds.
334 TEST_F('EditingTest', 'RichTextMoveByCharacterNodeWorkaround', function() { 333 TEST_F('EditingTest', 'RichTextMoveByCharacterNodeWorkaround', function() {
335 editing.useRichText = true;
336 var mockFeedback = this.createMockFeedback(); 334 var mockFeedback = this.createMockFeedback();
337 this.runWithLoadedTree(function() {/*! 335 this.runWithLoadedTree(function() {/*!
338 <div id="go" role="textbox" contenteditable>hello <b>world</b></div> 336 <div id="go" role="textbox" contenteditable>hello <b>world</b></div>
339 337
340 <script> 338 <script>
341 document.getElementById('go').addEventListener('click', function() { 339 document.getElementById('go').addEventListener('click', function() {
342 var sel = getSelection(); 340 var sel = getSelection();
343 sel.modify('move', 'forward', 'character'); 341 sel.modify('move', 'forward', 'character');
344 }, true); 342 }, true);
345 </script> 343 </script>
346 */}, function(root) { 344 */}, function(root) {
347 var input = root.find({role: RoleType.TEXT_FIELD}); 345 var input = root.find({role: RoleType.TEXT_FIELD});
348 var moveByChar = input.doDefault.bind(input) 346 var moveByChar = input.doDefault.bind(input)
349 var lineText = 'hello world'; 347 var lineText = 'hello world mled';
350 348
351 this.listenOnce(input, 'focus', function() { 349 this.listenOnce(input, 'focus', function() {
352 mockFeedback.call(moveByChar) 350 mockFeedback.call(moveByChar)
353 .expectSpeech('e') 351 .expectSpeech('e')
354 .expectBraille(lineText, { startIndex: 1, endIndex: 1 }) 352 .expectBraille(lineText, { startIndex: 1, endIndex: 1 })
355 .call(moveByChar) 353 .call(moveByChar)
356 .expectSpeech('l') 354 .expectSpeech('l')
357 .expectBraille(lineText, { startIndex: 2, endIndex: 2 }) 355 .expectBraille(lineText, { startIndex: 2, endIndex: 2 })
358 .call(moveByChar) 356 .call(moveByChar)
359 .expectSpeech('l') 357 .expectSpeech('l')
360 .expectBraille(lineText, { startIndex: 3, endIndex: 3 }) 358 .expectBraille(lineText, { startIndex: 3, endIndex: 3 })
361 .call(moveByChar) 359 .call(moveByChar)
362 .expectSpeech('o') 360 .expectSpeech('o')
363 .expectBraille(lineText, { startIndex: 4, endIndex: 4 }) 361 .expectBraille(lineText, { startIndex: 4, endIndex: 4 })
364 .call(moveByChar) 362 .call(moveByChar)
365 .expectSpeech(' ') 363 .expectSpeech(' ')
366 .expectBraille(lineText, { startIndex: 5, endIndex: 5 }) 364 .expectBraille(lineText, { startIndex: 5, endIndex: 5 })
367 .call(moveByChar) 365 .call(moveByChar)
368 .expectSpeech('w') 366 .expectSpeech('w')
369 .expectBraille(lineText, { startIndex: 6, endIndex: 6 }) 367 .expectBraille(lineText, { startIndex: 6, endIndex: 6 })
370 .replay(); 368 .replay();
371 }); 369 });
372 input.focus(); 370 input.focus();
373 }); 371 });
374 }); 372 });
375 373
376 TEST_F('EditingTest', 'RichTextMoveByCharacterEndOfLine', function() { 374 TEST_F('EditingTest', 'RichTextMoveByCharacterEndOfLine', function() {
377 editing.useRichText = true;
378 var mockFeedback = this.createMockFeedback(); 375 var mockFeedback = this.createMockFeedback();
379 this.runWithLoadedTree(function() {/*! 376 this.runWithLoadedTree(function() {/*!
380 <div id="go" role="textbox" contenteditable>Test</div> 377 <div id="go" role="textbox" contenteditable>Test</div>
381 378
382 <script> 379 <script>
383 document.getElementById('go').addEventListener('click', function() { 380 document.getElementById('go').addEventListener('click', function() {
384 var sel = getSelection(); 381 var sel = getSelection();
385 sel.modify('move', 'forward', 'character'); 382 sel.modify('move', 'forward', 'character');
386 }, true); 383 }, true);
387 </script> 384 </script>
388 */}, function(root) { 385 */}, function(root) {
389 var input = root.find({role: RoleType.TEXT_FIELD}); 386 var input = root.find({role: RoleType.TEXT_FIELD});
390 var moveByChar = input.doDefault.bind(input); 387 var moveByChar = input.doDefault.bind(input);
391 var lineText = 'Test'; 388 var lineText = 'Test mled';
392 389
393 this.listenOnce(input, 'focus', function() { 390 this.listenOnce(input, 'focus', function() {
394 mockFeedback.call(moveByChar) 391 mockFeedback.call(moveByChar)
395 .expectSpeech('e') 392 .expectSpeech('e')
396 .expectBraille(lineText, { startIndex: 1, endIndex: 1 }) 393 .expectBraille(lineText, { startIndex: 1, endIndex: 1 })
397 .call(moveByChar) 394 .call(moveByChar)
398 .expectSpeech('s') 395 .expectSpeech('s')
399 .expectBraille(lineText, { startIndex: 2, endIndex: 2 }) 396 .expectBraille(lineText, { startIndex: 2, endIndex: 2 })
400 .call(moveByChar) 397 .call(moveByChar)
401 .expectSpeech('t') 398 .expectSpeech('t')
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 assertEquals(0, e1.startOffset); 680 assertEquals(0, e1.startOffset);
684 assertEquals(2, e1.endOffset); 681 assertEquals(2, e1.endOffset);
685 682
686 // Across paragraph selection with base line on anchor. 683 // Across paragraph selection with base line on anchor.
687 e1 = new editing.EditableLine(thisIsATest, 5, hello, 2, true); 684 e1 = new editing.EditableLine(thisIsATest, 5, hello, 2, true);
688 assertEquals('is ', e1.text); 685 assertEquals('is ', e1.text);
689 assertEquals(0, e1.startOffset); 686 assertEquals(0, e1.startOffset);
690 assertEquals(3, e1.endOffset); 687 assertEquals(3, e1.endOffset);
691 }) 688 })
692 }); 689 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698