summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/resources/chromeos/chromevox/common/cursor_selection_test.js
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/resources/chromeos/chromevox/common/cursor_selection_test.js')
-rw-r--r--chromium/chrome/browser/resources/chromeos/chromevox/common/cursor_selection_test.js97
1 files changed, 97 insertions, 0 deletions
diff --git a/chromium/chrome/browser/resources/chromeos/chromevox/common/cursor_selection_test.js b/chromium/chrome/browser/resources/chromeos/chromevox/common/cursor_selection_test.js
new file mode 100644
index 00000000000..d4a72beba4a
--- /dev/null
+++ b/chromium/chrome/browser/resources/chromeos/chromevox/common/cursor_selection_test.js
@@ -0,0 +1,97 @@
+// 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_unittest_base.js']);
+
+/**
+ * Test fixture.
+ * @constructor
+ * @extends {ChromeVoxUnitTestBase}
+ */
+function CvoxCursorSelectionUnitTest() {}
+
+CvoxCursorSelectionUnitTest.prototype = {
+ __proto__: ChromeVoxUnitTestBase.prototype,
+
+ /** @override */
+ closureModuleDeps: [
+ 'cvox.CursorSelection'
+ ]
+};
+
+TEST_F('CvoxCursorSelectionUnitTest', 'Reverse', function() {
+ this.loadDoc(function() {/*!
+ <div>
+ <p id="a">a</p>
+ <p id="b">b</p>
+ </div>
+ */});
+ var a = new cvox.Cursor($('a'), 0, '');
+ var b = new cvox.Cursor($('b'), 0, '');
+
+ var aa = new cvox.CursorSelection(a, a);
+ assertEquals(false, aa.isReversed());
+ aa.setReversed(true);
+ assertEquals(true, aa.isReversed());
+
+ var ab = new cvox.CursorSelection(a, b);
+ assertEquals(false, ab.isReversed());
+ ab.setReversed(true);
+ assertEquals(true, ab.isReversed());
+ assertEquals(true, ab.start.equals(b));
+ assertEquals(true, ab.end.equals(a));
+ ab.setReversed(false);
+ assertEquals(false, ab.isReversed());
+ assertEquals(true, ab.start.equals(a));
+ assertEquals(true, ab.end.equals(b));
+
+ ab = new cvox.CursorSelection(b, a);
+ assertEquals(false, ab.isReversed());
+ assertEquals(true, ab.start.equals(a));
+ assertEquals(true, ab.end.equals(b));
+
+ var ba = new cvox.CursorSelection(b, a, true);
+ assertEquals(true, ba.isReversed());
+ assertEquals(true, ba.start.equals(b));
+ assertEquals(true, ba.end.equals(a));
+
+ ba = new cvox.CursorSelection(a, b, true);
+ assertEquals(true, ba.isReversed());
+ assertEquals(true, ba.start.equals(b));
+ assertEquals(true, ba.end.equals(a));
+});
+
+
+/** Tests correctness of collapsing selections. */
+TEST_F('CvoxCursorSelectionUnitTest', 'Collapse', function() {
+ this.loadDoc(function() {/*!
+ <p id='1'>This is a test.</p>
+ */});
+ var text = $('1').firstChild;
+ var a = new cvox.Cursor(text, 0, 'This is a test.');
+ var b = new cvox.Cursor(text, 13, 'This is a test.');
+ var c = new cvox.Cursor(text, 5, 'This is a test.');
+ var d = new cvox.Cursor(text, 8, 'This is a test.');
+
+ var aa = new cvox.CursorSelection(a, a).collapse();
+ assertEquals(0, aa.start.index);
+ assertEquals(0, aa.end.index);
+
+ var ab = new cvox.CursorSelection(a, b).collapse();
+ assertEquals(0, ab.start.index);
+ assertEquals(1, ab.end.index);
+
+ var ba = new cvox.CursorSelection(b, a, true).collapse();
+ assertEquals(12, ba.absStart().index);
+ assertEquals(13, ba.absEnd().index);
+
+ var cd = new cvox.CursorSelection(c, d).collapse();
+ assertEquals(5, cd.start.index);
+ assertEquals(6, cd.end.index);
+
+ var dc = new cvox.CursorSelection(d, c, true).collapse();
+ assertEquals(7, dc.absStart().index);
+ assertEquals(8, dc.absEnd().index);
+});