Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/editing_test.extjs |
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing_test.extjs b/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing_test.extjs |
index af6ebc8eb60eb98f0d9435a65d9ffbca794a8040..d743aa23c306e7b808f92a57e89e15fa14789e58 100644 |
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing_test.extjs |
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing_test.extjs |
@@ -492,65 +492,164 @@ TEST_F('EditingTest', 'EditableLineEquality', function() { |
// The same position -- sanity check. |
var e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 0); |
assertEquals('this ', e1.text); |
- assertTrue(e1.equals(e1)); |
+ assertTrue(e1.isSameLine(e1)); |
// Offset into the same soft line. |
var e2 = new editing.EditableLine(thisIsATest, 1, thisIsATest, 1); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// Boundary. |
e2 = new editing.EditableLine(thisIsATest, 4, thisIsATest, 4); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// Offsets into different soft lines. |
e2 = new editing.EditableLine(thisIsATest, 5, thisIsATest, 5); |
assertEquals('is ', e2.text); |
- assertFalse(e1.equals(e2)); |
+ assertFalse(e1.isSameLine(e2)); |
// Sanity check; second soft line. |
- assertTrue(e2.equals(e2)); |
+ assertTrue(e2.isSameLine(e2)); |
// Different offsets into second soft line. |
e1 = new editing.EditableLine(thisIsATest, 6, thisIsATest, 6); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// Boundary. |
e1 = new editing.EditableLine(thisIsATest, 7, thisIsATest, 7); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// Third line. |
e1 = new editing.EditableLine(thisIsATest, 8, thisIsATest, 8); |
assertEquals('a ', e1.text); |
- assertFalse(e1.equals(e2)); |
+ assertFalse(e1.isSameLine(e2)); |
// Last line. |
e2 = new editing.EditableLine(thisIsATest, 10, thisIsATest, 10); |
assertEquals('test', e2.text); |
- assertFalse(e1.equals(e2)); |
+ assertFalse(e1.isSameLine(e2)); |
// Boundary. |
e1 = new editing.EditableLine(thisIsATest, 13, thisIsATest, 13); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// Cross into new paragraph. |
e2 = new editing.EditableLine(hello, 0, hello, 0); |
assertEquals('hello world', e2.text); |
- assertFalse(e1.equals(e2)); |
+ assertFalse(e1.isSameLine(e2)); |
// On same node, with multi-static text line. |
e1 = new editing.EditableLine(hello, 1, hello, 1); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// On same node, with multi-static text line; boundary. |
e1 = new editing.EditableLine(hello, 5, hello, 5); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// On different node, with multi-static text line. |
e1 = new editing.EditableLine(world, 1, world, 1); |
- assertTrue(e1.equals(e2)); |
+ assertTrue(e1.isSameLine(e2)); |
// Another mix of lines. |
e2 = new editing.EditableLine(thisIsATest, 9, thisIsATest, 9); |
- assertFalse(e1.equals(e2)); |
+ assertFalse(e1.isSameLine(e2)); |
}); |
}); |
+ |
+TEST_F('EditingTest', 'EditableLineStrictEquality', function() { |
+ this.runWithLoadedTree(function() {/*! |
+ <div contenteditable role="textbox"> |
+ <p style="word-spacing:100000px">this is a test</p> |
+ <p>hello <b>world</b></p> |
+ </div> |
+ */}, function(root) { |
+ var thisIsATest = root.findAll({role: RoleType.PARAGRAPH})[0].firstChild; |
+ var hello = root.findAll({role: RoleType.PARAGRAPH})[1].firstChild; |
+ var world = root.findAll({role: RoleType.PARAGRAPH})[1].lastChild; |
+ |
+ // The same position -- sanity check. |
+ var e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 0); |
+ assertEquals('this ', e1.text); |
+ assertTrue(e1.isSameLineAndSelection(e1)); |
+ |
+ // Offset into the same soft line. |
+ var e2 = new editing.EditableLine(thisIsATest, 1, thisIsATest, 1); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ |
+ // Boundary. |
+ e2 = new editing.EditableLine(thisIsATest, 4, thisIsATest, 4); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ |
+ // Offsets into different soft lines. |
+ e2 = new editing.EditableLine(thisIsATest, 5, thisIsATest, 5); |
+ assertEquals('is ', e2.text); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ |
+ // Sanity check; second soft line. |
+ assertTrue(e2.isSameLineAndSelection(e2)); |
+ |
+ // Different offsets into second soft line. |
+ e1 = new editing.EditableLine(thisIsATest, 6, thisIsATest, 6); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ |
+ // Boundary. |
+ e1 = new editing.EditableLine(thisIsATest, 7, thisIsATest, 7); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ |
+ // Cross into new paragraph. |
+ e2 = new editing.EditableLine(hello, 0, hello, 0); |
+ assertEquals('hello world', e2.text); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ |
+ // On same node, with multi-static text line. |
+ e1 = new editing.EditableLine(hello, 1, hello, 1); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ |
+ // On same node, with multi-static text line; boundary. |
+ e1 = new editing.EditableLine(hello, 5, hello, 5); |
+ assertFalse(e1.isSameLineAndSelection(e2)); |
+ }); |
+}); |
+ |
+TEST_F('EditingTest', 'EditableLineBaseLineAnchorOrFocus', function() { |
+ this.runWithLoadedTree(function() {/*! |
+ <div contenteditable role="textbox"> |
+ <p style="word-spacing:100000px">this is a test</p> |
+ <p>hello <b>world</b></p> |
+ </div> |
+ */}, function(root) { |
+ var thisIsATest = root.findAll({role: RoleType.PARAGRAPH})[0].firstChild; |
+ var hello = root.findAll({role: RoleType.PARAGRAPH})[1].firstChild; |
+ var world = root.findAll({role: RoleType.PARAGRAPH})[1].lastChild; |
+ |
+ // The same position -- sanity check. |
+ var e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 0, true); |
+ assertEquals('this ', e1.text); |
+ |
+ // Offsets into different soft lines; base on focus (default). |
+ e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 6); |
+ assertEquals('is ', e1.text); |
+ // Notice that the offset is truncated at the beginning of the line. |
+ assertEquals(0, e1.startOffset); |
+ // Notice that the end offset is properly retained. |
+ assertEquals(1, e1.endOffset); |
+ |
+ // Offsets into different soft lines; base on anchor. |
+ e1 = new editing.EditableLine(thisIsATest, 0, thisIsATest, 6, true); |
+ assertEquals('this ', e1.text); |
+ assertEquals(0, e1.startOffset); |
+ // Notice that the end offset is truncated up to the end of line. |
+ assertEquals(5, e1.endOffset); |
+ |
+ // Across paragraph selection with base line on focus. |
+ e1 = new editing.EditableLine(thisIsATest, 5, hello, 2); |
+ assertEquals('hello world', e1.text); |
+ assertEquals(0, e1.startOffset); |
+ assertEquals(2, e1.endOffset); |
+ |
+ // Across paragraph selection with base line on anchor. |
+ e1 = new editing.EditableLine(thisIsATest, 5, hello, 2, true); |
+ assertEquals('is ', e1.text); |
+ assertEquals(0, e1.startOffset); |
+ assertEquals(3, e1.endOffset); |
+ }) |
+}); |