cursor_selection_test.unitjs revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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 3// found in the LICENSE file. 4 5// Include test fixture. 6GEN_INCLUDE(['../testing/chromevox_unittest_base.js']); 7 8/** 9 * Test fixture. 10 * @constructor 11 * @extends {ChromeVoxUnitTestBase} 12 */ 13function CvoxCursorSelectionUnitTest() {} 14 15CvoxCursorSelectionUnitTest.prototype = { 16 __proto__: ChromeVoxUnitTestBase.prototype, 17 18 /** @override */ 19 closureModuleDeps: [ 20 'cvox.CursorSelection' 21 ] 22}; 23 24TEST_F('CvoxCursorSelectionUnitTest', 'Reverse', function() { 25 this.loadDoc(function() {/*! 26 <div> 27 <p id="a">a</p> 28 <p id="b">b</p> 29 </div> 30 */}); 31 var a = new cvox.Cursor($('a'), 0, ''); 32 var b = new cvox.Cursor($('b'), 0, ''); 33 34 var aa = new cvox.CursorSelection(a, a); 35 assertEquals(false, aa.isReversed()); 36 aa.setReversed(true); 37 assertEquals(true, aa.isReversed()); 38 39 var ab = new cvox.CursorSelection(a, b); 40 assertEquals(false, ab.isReversed()); 41 ab.setReversed(true); 42 assertEquals(true, ab.isReversed()); 43 assertEquals(true, ab.start.equals(b)); 44 assertEquals(true, ab.end.equals(a)); 45 ab.setReversed(false); 46 assertEquals(false, ab.isReversed()); 47 assertEquals(true, ab.start.equals(a)); 48 assertEquals(true, ab.end.equals(b)); 49 50 ab = new cvox.CursorSelection(b, a); 51 assertEquals(false, ab.isReversed()); 52 assertEquals(true, ab.start.equals(a)); 53 assertEquals(true, ab.end.equals(b)); 54 55 var ba = new cvox.CursorSelection(b, a, true); 56 assertEquals(true, ba.isReversed()); 57 assertEquals(true, ba.start.equals(b)); 58 assertEquals(true, ba.end.equals(a)); 59 60 ba = new cvox.CursorSelection(a, b, true); 61 assertEquals(true, ba.isReversed()); 62 assertEquals(true, ba.start.equals(b)); 63 assertEquals(true, ba.end.equals(a)); 64}); 65 66 67/** Tests correctness of collapsing selections. */ 68TEST_F('CvoxCursorSelectionUnitTest', 'Collapse', function() { 69 this.loadDoc(function() {/*! 70 <p id='1'>This is a test.</p> 71 */}); 72 var text = $('1').firstChild; 73 var a = new cvox.Cursor(text, 0, 'This is a test.'); 74 var b = new cvox.Cursor(text, 13, 'This is a test.'); 75 var c = new cvox.Cursor(text, 5, 'This is a test.'); 76 var d = new cvox.Cursor(text, 8, 'This is a test.'); 77 78 var aa = new cvox.CursorSelection(a, a).collapse(); 79 assertEquals(0, aa.start.index); 80 assertEquals(0, aa.end.index); 81 82 var ab = new cvox.CursorSelection(a, b).collapse(); 83 assertEquals(0, ab.start.index); 84 assertEquals(1, ab.end.index); 85 86 var ba = new cvox.CursorSelection(b, a, true).collapse(); 87 assertEquals(12, ba.absStart().index); 88 assertEquals(13, ba.absEnd().index); 89 90 var cd = new cvox.CursorSelection(c, d).collapse(); 91 assertEquals(5, cd.start.index); 92 assertEquals(6, cd.end.index); 93 94 var dc = new cvox.CursorSelection(d, c, true).collapse(); 95 assertEquals(7, dc.absStart().index); 96 assertEquals(8, dc.absEnd().index); 97}); 98