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

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

Issue 2945703002: add support for rich text selections (Closed)
Patch Set: Rebase. 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 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 547
548 // On different node, with multi-static text line. 548 // On different node, with multi-static text line.
549 e1 = new editing.EditableLine(world, 1, world, 1); 549 e1 = new editing.EditableLine(world, 1, world, 1);
550 assertTrue(e1.equals(e2)); 550 assertTrue(e1.equals(e2));
551 551
552 // Another mix of lines. 552 // Another mix of lines.
553 e2 = new editing.EditableLine(thisIsATest, 9, thisIsATest, 9); 553 e2 = new editing.EditableLine(thisIsATest, 9, thisIsATest, 9);
554 assertFalse(e1.equals(e2)); 554 assertFalse(e1.equals(e2));
555 }); 555 });
556 }); 556 });
557
558 TEST_F('EditingTest', 'EditableLineStrictEquality', function() {
559 this.runWithLoadedTree(function() {/*!
560 <div contenteditable role="textbox">
561 <p style="word-spacing:100000px">this is a test</p>
562 <p>hello <b>world</b></p>
563 </div>
564 */}, function(root) {
565 var thisIsATest = root.findAll({role: RoleType.PARAGRAPH})[0].firstChild;
566 var hello = root.findAll({role: RoleType.PARAGRAPH})[1].firstChild;
567 var world = root.findAll({role: RoleType.PARAGRAPH})[1].lastChild;
568
569 // The same position -- sanity check.
570 var e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 0);
571 assertEquals('this ', e1.text);
572 assertTrue(e1.equalsStrict(e1));
573
574 // Offset into the same soft line.
575 var e2 = new editing.EditableLine(thisIsATest, 1, thisIsATest, 1);
576 assertFalse(e1.equalsStrict(e2));
577
578 // Boundary.
579 e2 = new editing.EditableLine(thisIsATest, 4, thisIsATest, 4);
580 assertFalse(e1.equalsStrict(e2));
581
582 // Offsets into different soft lines.
583 e2 = new editing.EditableLine(thisIsATest, 5, thisIsATest, 5);
584 assertEquals('is ', e2.text);
585 assertFalse(e1.equalsStrict(e2));
586
587 // Sanity check; second soft line.
588 assertTrue(e2.equalsStrict(e2));
589
590 // Different offsets into second soft line.
591 e1 = new editing.EditableLine(thisIsATest, 6, thisIsATest, 6);
592 assertFalse(e1.equalsStrict(e2));
593
594 // Boundary.
595 e1 = new editing.EditableLine(thisIsATest, 7, thisIsATest, 7);
596 assertFalse(e1.equalsStrict(e2));
597
598 // Cross into new paragraph.
599 e2 = new editing.EditableLine(hello, 0, hello, 0);
600 assertEquals('hello world', e2.text);
601 assertFalse(e1.equalsStrict(e2));
602
603 // On same node, with multi-static text line.
604 e1 = new editing.EditableLine(hello, 1, hello, 1);
605 assertFalse(e1.equalsStrict(e2));
606
607 // On same node, with multi-static text line; boundary.
608 e1 = new editing.EditableLine(hello, 5, hello, 5);
609 assertFalse(e1.equalsStrict(e2));
610 });
611 });
612
613 TEST_F('EditingTest', 'EditableLineBaseLineAnchorOrFocus', function() {
614 this.runWithLoadedTree(function() {/*!
615 <div contenteditable role="textbox">
616 <p style="word-spacing:100000px">this is a test</p>
617 <p>hello <b>world</b></p>
618 </div>
619 */}, function(root) {
620 var thisIsATest = root.findAll({role: RoleType.PARAGRAPH})[0].firstChild;
621 var hello = root.findAll({role: RoleType.PARAGRAPH})[1].firstChild;
622 var world = root.findAll({role: RoleType.PARAGRAPH})[1].lastChild;
623
624 // The same position -- sanity check.
625 var e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 0, true);
626 assertEquals('this ', e1.text);
627
628 // Offsets into different soft lines; base on focus (default).
629 e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 6);
630 assertEquals('is ', e1.text);
631 // Notice that the offset is truncated at the beginning of the line.
632 assertEquals(0, e1.startOffset);
633 // Notice that the end offset is properly retained.
dmazzoni 2017/06/21 06:22:08 nit: indent
David Tseng 2017/06/21 16:58:28 Done.
634 assertEquals(1, e1.endOffset);
635
636 // Offsets into different soft lines; base on anchor.
637 e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 6, true);
638 assertEquals('this ', e1.text);
639 assertEquals(0, e1.startOffset);
640 // Notice that the end offset is truncated up to the end of line.
dmazzoni 2017/06/21 06:22:08 nit: indent
David Tseng 2017/06/21 16:58:28 Done (hmm git cl format didn't catch this).
641 assertEquals(5, e1.endOffset);
642
643 // Across paragraph dselection with base line on focus.
dmazzoni 2017/06/21 06:22:08 nit: dselection -> selection, and again below
David Tseng 2017/06/21 16:58:28 Done.
644 e1 = new editing.EditableLine(thisIsATest, 5, hello, 2);
645 assertEquals('hello world', e1.text);
646 assertEquals(0, e1.startOffset);
647 assertEquals(2, e1.endOffset);
648
649 // Across paragraph dselection with base line on anchor.
650 e1 = new editing.EditableLine(thisIsATest, 5, hello, 2, true);
651 assertEquals('is ', e1.text);
652 assertEquals(0, e1.startOffset);
653 assertEquals(3, e1.endOffset);
654 })
655 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698