| OLD | NEW |
| 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 | 7 |
| 8 /** | 8 /** |
| 9 * Test fixture for cvox2.cursors. | 9 * Test fixture for cvox2.cursors. |
| 10 * @constructor | 10 * @constructor |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 * Object>>} | 63 * Object>>} |
| 64 * moves An array of arrays. Each inner array contains 4 items: unit, | 64 * moves An array of arrays. Each inner array contains 4 items: unit, |
| 65 * direction, start and end assertions objects. See example below. | 65 * direction, start and end assertions objects. See example below. |
| 66 */ | 66 */ |
| 67 rangeMoveAndAssert: function(range, moves) { | 67 rangeMoveAndAssert: function(range, moves) { |
| 68 var move = null; | 68 var move = null; |
| 69 while (move = moves.shift()) { | 69 while (move = moves.shift()) { |
| 70 range = range.move(move[0], move[1]); | 70 range = range.move(move[0], move[1]); |
| 71 var expectedStart = move[2]; | 71 var expectedStart = move[2]; |
| 72 var expectedEnd = move[3]; | 72 var expectedEnd = move[3]; |
| 73 |
| 73 this.makeCursorAssertion(expectedStart, range.getStart()); | 74 this.makeCursorAssertion(expectedStart, range.getStart()); |
| 74 this.makeCursorAssertion(expectedEnd, range.getEnd()); | 75 this.makeCursorAssertion(expectedEnd, range.getEnd()); |
| 75 } | 76 } |
| 76 }, | 77 }, |
| 77 | 78 |
| 78 /** | 79 /** |
| 79 * Makes assertions about the given |cursor|. | 80 * Makes assertions about the given |cursor|. |
| 80 * @param {Object} expected | 81 * @param {Object} expected |
| 81 * @param {Cursor} cursor | 82 * @param {Cursor} cursor |
| 82 */ | 83 */ |
| 83 makeCursorAssertion: function(expected, cursor) { | 84 makeCursorAssertion: function(expected, cursor) { |
| 84 if (goog.isDef(expected.index)) | 85 if (goog.isDef(expected.index)) |
| 85 assertEquals(expected.index, cursor.getIndex()); | 86 assertEquals(expected.index, cursor.getIndex()); |
| 86 if (goog.isDef(expected.value)) | 87 if (goog.isDef(expected.value)) |
| 87 assertEquals(expected.value, cursor.getNode().attributes.value); | 88 assertEquals(expected.value, cursor.getNode().attributes.value); |
| 88 }, | 89 }, |
| 89 | 90 |
| 90 /** | 91 /** |
| 91 * Runs the specified moves on the |doc| and asserts expectations. | 92 * Runs the specified moves on the |doc| and asserts expectations. |
| 92 * @param {function} doc | 93 * @param {function} doc |
| 93 * @param {string=} opt_testType Either CURSOR or RANGE. | 94 * @param {string=} opt_testType Either CURSOR or RANGE. |
| 94 */ | 95 */ |
| 95 runCursorMovesOnDocument: function(doc, moves, opt_testType) { | 96 runCursorMovesOnDocument: function(doc, moves, opt_testType) { |
| 96 this.runWithDocument(doc, | 97 this.runWithAutomation(doc, |
| 97 function() { | 98 function(root) { |
| 98 chrome.automation.getTree(function(root) { | 99 var start = null; |
| 99 var start = null; | |
| 100 | 100 |
| 101 // This occurs as a result of a load complete. | 101 // This occurs as a result of a load complete. |
| 102 var start = AutomationUtil.findNodePost(root, | 102 var start = AutomationUtil.findNodePost(root, |
| 103 FORWARD, | 103 FORWARD, |
| 104 AutomationPredicate.leaf); | 104 AutomationPredicate.leaf); |
| 105 | 105 |
| 106 var cursor = new cursors.Cursor(start, 0); |
| 107 if (!opt_testType || opt_testType == this.CURSOR) { |
| 106 var cursor = new cursors.Cursor(start, 0); | 108 var cursor = new cursors.Cursor(start, 0); |
| 107 if (!opt_testType || opt_testType == this.CURSOR) { | 109 this.cursorMoveAndAssert(cursor, moves); |
| 108 var cursor = new cursors.Cursor(start, 0); | 110 testDone(); |
| 109 this.cursorMoveAndAssert(cursor, moves); | 111 } else if (opt_testType == this.RANGE) { |
| 110 testDone(); | 112 var range = new cursors.Range(cursor, cursor); |
| 111 } else if (opt_testType == this.RANGE) { | 113 this.rangeMoveAndAssert(range, moves); |
| 112 var range = new cursors.Range(cursor, cursor); | 114 testDone(); |
| 113 this.rangeMoveAndAssert(range, moves); | 115 } |
| 114 testDone(); | |
| 115 } | |
| 116 }.bind(this)); | |
| 117 }.bind(this)); | 116 }.bind(this)); |
| 118 }, | 117 }, |
| 119 | 118 |
| 120 simpleDoc: function() {/*! | 119 simpleDoc: function() {/*! |
| 121 <p>start <span>same line</span> | 120 <p>start <span>same line</span> |
| 122 <p>end | 121 <p>end |
| 123 */} | 122 */} |
| 124 }; | 123 }; |
| 125 | 124 |
| 126 TEST_F('CursorsTest', 'CharacterCursor', function() { | 125 TEST_F('CursorsTest', 'CharacterCursor', function() { |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 [LINE, FORWARD, {value: 'end', index: 0}, {value: 'end', index: 3}], | 260 [LINE, FORWARD, {value: 'end', index: 0}, {value: 'end', index: 3}], |
| 262 | 261 |
| 263 [LINE, BACKWARD, | 262 [LINE, BACKWARD, |
| 264 {value: 'start ', index: 0}, {value: 'same line', index: 9}], | 263 {value: 'start ', index: 0}, {value: 'same line', index: 9}], |
| 265 | 264 |
| 266 [LINE, BACKWARD, | 265 [LINE, BACKWARD, |
| 267 {value: 'start ', index: 0}, {value: 'same line', index: 9}], | 266 {value: 'start ', index: 0}, {value: 'same line', index: 9}], |
| 268 ], this.RANGE); | 267 ], this.RANGE); |
| 269 }); | 268 }); |
| 270 | 269 |
| OLD | NEW |