summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@theqtcompany.com>2014-12-05 15:04:29 +0100
committerAndras Becsi <andras.becsi@theqtcompany.com>2014-12-09 10:49:28 +0100
commitaf6588f8d723931a298c995fa97259bb7f7deb55 (patch)
tree060ca707847ba1735f01af2372e0d5e494dc0366 /chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs
parent2fff84d821cc7b1c785f6404e0f8091333283e74 (diff)
downloadqtwebengine-chromium-af6588f8d723931a298c995fa97259bb7f7deb55.tar.gz
BASELINE: Update chromium to 40.0.2214.28 and ninja to 1.5.3.
Change-Id: I759465284fd64d59ad120219cbe257f7402c4181 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs')
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs270
1 files changed, 270 insertions, 0 deletions
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs
new file mode 100644
index 00000000000..7cc281a4b09
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors_test.extjs
@@ -0,0 +1,270 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Include test fixture.
+GEN_INCLUDE(['../../testing/chromevox_next_e2e_test_base.js']);
+
+/**
+ * Test fixture for cvox2.cursors.
+ * @constructor
+ * @extends {ChromeVoxNextE2ETest}
+ */
+function CursorsTest() {}
+
+CursorsTest.prototype = {
+ __proto__: ChromeVoxNextE2ETest.prototype,
+
+ /** Test cursors.Cursor. @const {string} */
+ CURSOR: 'cursor',
+
+ /** Test cursors.Range. @const {string} */
+ RANGE: 'range',
+
+ /** @override */
+ setUp: function() {
+ // Various aliases.
+ window.BACKWARD = AutomationUtil.Dir.BACKWARD;
+ window.FORWARD = AutomationUtil.Dir.FORWARD;
+ window.CHARACTER = cursors.Unit.CHARACTER;
+ window.WORD = cursors.Unit.WORD;
+ window.LINE = cursors.Unit.LINE;
+ window.BOUND = cursors.Movement.BOUND;
+ window.DIRECTIONAL = cursors.Movement.DIRECTIONAL;
+ },
+
+ /**
+ * Performs a series of operations on a cursor and asserts the result.
+ * @param {cursors.Cursor} cursor The starting cursor.
+ * @param {!Array.<Array.<
+ * cursors.Unit|
+ * cursors.Movement|
+ * automationUtil.Dir|
+ * Object>>}
+ * moves An array of arrays. Each inner array contains 4 items: unit,
+ * movement, direction, and assertions object. See example below.
+ */
+ cursorMoveAndAssert: function(cursor, moves) {
+ var move = null;
+ while (move = moves.shift()) {
+ cursor = cursor.move(move[0], move[1], move[2]);
+ var expected = move[3];
+ this.makeCursorAssertion(expected, cursor);
+ }
+ },
+
+ /**
+ * Performs a series of operations on a range and asserts the result.
+ * @param {cursors.Range} range The starting range.
+ * @param {!Array.<Array.<
+ * cursors.Unit|
+ * cursors.Movement|
+ * automationUtil.Dir|
+ * Object>>}
+ * moves An array of arrays. Each inner array contains 4 items: unit,
+ * direction, start and end assertions objects. See example below.
+ */
+ rangeMoveAndAssert: function(range, moves) {
+ var move = null;
+ while (move = moves.shift()) {
+ range = range.move(move[0], move[1]);
+ var expectedStart = move[2];
+ var expectedEnd = move[3];
+ this.makeCursorAssertion(expectedStart, range.getStart());
+ this.makeCursorAssertion(expectedEnd, range.getEnd());
+ }
+ },
+
+ /**
+ * Makes assertions about the given |cursor|.
+ * @param {Object} expected
+ * @param {Cursor} cursor
+ */
+ makeCursorAssertion: function(expected, cursor) {
+ if (goog.isDef(expected.index))
+ assertEquals(expected.index, cursor.getIndex());
+ if (goog.isDef(expected.value))
+ assertEquals(expected.value, cursor.getNode().attributes.value);
+ },
+
+ /**
+ * Runs the specified moves on the |doc| and asserts expectations.
+ * @param {function} doc
+ * @param {string=} opt_testType Either CURSOR or RANGE.
+ */
+ runCursorMovesOnDocument: function(doc, moves, opt_testType) {
+ this.runWithDocument(doc,
+ function() {
+ chrome.automation.getTree(function(root) {
+ var start = null;
+
+ // This occurs as a result of a load complete.
+ var start = AutomationUtil.findNodePost(root,
+ FORWARD,
+ AutomationPredicate.leaf);
+
+ var cursor = new cursors.Cursor(start, 0);
+ if (!opt_testType || opt_testType == this.CURSOR) {
+ var cursor = new cursors.Cursor(start, 0);
+ this.cursorMoveAndAssert(cursor, moves);
+ testDone();
+ } else if (opt_testType == this.RANGE) {
+ var range = new cursors.Range(cursor, cursor);
+ this.rangeMoveAndAssert(range, moves);
+ testDone();
+ }
+ }.bind(this));
+ }.bind(this));
+ },
+
+simpleDoc: function() {/*!
+ <p>start <span>same line</span>
+ <p>end
+ */}
+};
+
+TEST_F('CursorsTest', 'CharacterCursor', function() {
+ this.runCursorMovesOnDocument(this.simpleDoc, [
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 1, value: 'start '}],
+ [CHARACTER, DIRECTIONAL, BACKWARD, {index: 0, value: 'start '}],
+ [CHARACTER, DIRECTIONAL, BACKWARD, {index: 0, value: 'start '}],
+
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 1, value: 'start '}],
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 2, value: 'start '}],
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 3, value: 'start '}],
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 4, value: 'start '}],
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 5, value: 'start '}],
+
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 0, value: 'same line'}],
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 1, value: 'same line'}],
+ [CHARACTER, DIRECTIONAL, BACKWARD, {index: 0, value: 'same line'}],
+
+ [CHARACTER, DIRECTIONAL, BACKWARD, {index: 5, value: 'start '}],]);
+});
+
+TEST_F('CursorsTest', 'WordCursor', function() {
+ this.runCursorMovesOnDocument(this.simpleDoc, [
+ // Word (BOUND).
+ [WORD, BOUND, BACKWARD, {index: 0, value: 'start '}],
+ [WORD, BOUND, BACKWARD, {index: 0, value: 'start '}],
+ [WORD, BOUND, FORWARD, {index: 5, value: 'start '}],
+ [WORD, BOUND, FORWARD, {index: 5, value: 'start '}],
+
+ // Word (DIRECTIONAL).
+ [WORD, DIRECTIONAL, FORWARD, {index: 0, value: 'same line'}],
+ [WORD, DIRECTIONAL, FORWARD, {index: 5, value: 'same line'}],
+
+ [WORD, DIRECTIONAL, FORWARD, {index: 0, value: 'end'}],
+ [WORD, DIRECTIONAL, FORWARD, {index: 0, value: 'end'}],
+
+ [WORD, DIRECTIONAL, BACKWARD, {index: 5, value: 'same line'}],
+ [WORD, DIRECTIONAL, BACKWARD, {index: 0, value: 'same line'}],
+
+ [WORD, DIRECTIONAL, BACKWARD, {index: 0, value: 'start '}],
+ [WORD, DIRECTIONAL, BACKWARD, {index: 0, value: 'start '}]]);
+});
+
+TEST_F('CursorsTest', 'CharacterWordCursor', function() {
+ this.runCursorMovesOnDocument(this.simpleDoc, [
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 1, value: 'start '}],
+
+ [WORD, DIRECTIONAL, FORWARD, {index: 0, value: 'same line'}],
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 1, value: 'same line'}],
+ [WORD, DIRECTIONAL, FORWARD, {index: 5, value: 'same line'}],
+ [CHARACTER, DIRECTIONAL, BACKWARD, {index: 4, value: 'same line'}],
+ [WORD, DIRECTIONAL, FORWARD, {index: 5, value: 'same line'}],
+ [CHARACTER, DIRECTIONAL, FORWARD, {index: 6, value: 'same line'}],
+ [WORD, DIRECTIONAL, BACKWARD, {index: 0, value: 'same line'}],
+ [CHARACTER, DIRECTIONAL, BACKWARD, {index: 5, value: 'start '}],
+ [CHARACTER, DIRECTIONAL, BACKWARD, {index: 4, value: 'start '}],
+ [WORD, DIRECTIONAL, BACKWARD, {index: 0, value: 'start '}]]);
+});
+
+TEST_F('CursorsTest', 'LineCursor', function() {
+ this.runCursorMovesOnDocument(this.simpleDoc, [
+ // Line (BOUND).
+ [LINE, BOUND, FORWARD, {value: 'same line'}],
+ [LINE, BOUND, FORWARD, {value: 'same line'}],
+ [LINE, BOUND, BACKWARD, {value: 'start '}],
+ [LINE, BOUND, BACKWARD, {value: 'start '}],
+
+ // Line (DIRECTIONAL).
+ [LINE, DIRECTIONAL, FORWARD, {value: 'end'}],
+ [LINE, DIRECTIONAL, FORWARD, {value: 'end'}],
+ [LINE, DIRECTIONAL, BACKWARD, {value: 'same line'}],
+ [LINE, DIRECTIONAL, BACKWARD, {value: 'same line'}],
+ [LINE, BOUND, BACKWARD, {value: 'start '}],
+ [LINE, DIRECTIONAL, FORWARD, {value: 'end'}]]);
+});
+
+TEST_F('CursorsTest', 'CharacterRange', function() {
+ this.runCursorMovesOnDocument(this.simpleDoc, [
+ [CHARACTER, FORWARD,
+ {value: 'start ', index: 1}, {value: 'start ', index: 2}],
+ [CHARACTER, FORWARD,
+ {value: 'start ', index: 2}, {value: 'start ', index: 3}],
+ [CHARACTER, FORWARD,
+ {value: 'start ', index: 3}, {value: 'start ', index: 4}],
+ [CHARACTER, FORWARD,
+ {value: 'start ', index: 4}, {value: 'start ', index: 5}],
+ [CHARACTER, FORWARD,
+ {value: 'start ', index: 5}, {value: 'start ', index: 5}],
+
+ [CHARACTER, FORWARD,
+ {value: 'same line', index: 0}, {value: 'same line', index: 1}],
+
+ [CHARACTER, BACKWARD,
+ {value: 'start ', index: 5}, {value: 'start ', index: 5}],
+ [CHARACTER, BACKWARD,
+ {value: 'start ', index: 4}, {value: 'start ', index: 5}],
+ [CHARACTER, BACKWARD,
+ {value: 'start ', index: 3}, {value: 'start ', index: 4}],
+ [CHARACTER, BACKWARD,
+ {value: 'start ', index: 2}, {value: 'start ', index: 3}],
+ [CHARACTER, BACKWARD,
+ {value: 'start ', index: 1}, {value: 'start ', index: 2}],
+ [CHARACTER, BACKWARD,
+ {value: 'start ', index: 0}, {value: 'start ', index: 1}],
+ [CHARACTER, BACKWARD,
+ {value: 'start ', index: 0}, {value: 'start ', index: 1}],
+ ], this.RANGE);
+});
+
+TEST_F('CursorsTest', 'WordRange', function() {
+ this.runCursorMovesOnDocument(this.simpleDoc, [
+ [WORD, FORWARD,
+ {value: 'same line', index: 0}, {value: 'same line', index: 4}],
+ [WORD, FORWARD,
+ {value: 'same line', index: 5}, {value: 'same line', index: 9}],
+
+ [WORD, FORWARD,
+ {value: 'end', index: 0}, {value: 'end', index: 3}],
+ [WORD, FORWARD,
+ {value: 'end', index: 0}, {value: 'end', index: 3}],
+
+ [WORD, BACKWARD,
+ {value: 'same line', index: 5}, {value: 'same line', index: 9}],
+ [WORD, BACKWARD,
+ {value: 'same line', index: 0}, {value: 'same line', index: 4}],
+
+ [WORD, BACKWARD,
+ {value: 'start ', index: 0}, {value: 'start ', index: 5}],
+ [WORD, BACKWARD,
+ {value: 'start ', index: 0}, {value: 'start ', index: 5}],
+ ], this.RANGE);
+});
+
+
+TEST_F('CursorsTest', 'LineRange', function() {
+ this.runCursorMovesOnDocument(this.simpleDoc, [
+ [LINE, FORWARD, {value: 'end', index: 0}, {value: 'end', index: 3}],
+ [LINE, FORWARD, {value: 'end', index: 0}, {value: 'end', index: 3}],
+
+ [LINE, BACKWARD,
+ {value: 'start ', index: 0}, {value: 'same line', index: 9}],
+
+ [LINE, BACKWARD,
+ {value: 'start ', index: 0}, {value: 'same line', index: 9}],
+ ], this.RANGE);
+});
+