word_walker_test.unitjs revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 283750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch// Use of this source code is governed by a BSD-style license that can be 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// found in the LICENSE file. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Include test fixture. 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)GEN_INCLUDE(['walker_unittest_base.js']); 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Test fixture. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @extends {CvoxWalkerTestBase} 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)function CvoxWordWalkerUnitTest() {} 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)CvoxWordWalkerUnitTest.prototype = { 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) __proto__: CvoxWalkerUnitTestBase.prototype, 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** @override */ 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) closureModuleDeps: CvoxWalkerUnitTestBase.prototype.closureModuleDeps.concat( 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 'cvox.WordWalker'), 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** @override */ 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) newWalker: function() { 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return new cvox.WordWalker(); 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Set up for the simple tests so we don't have to repeat. 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @private 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setUpSimpleHtml_: function() { 3283750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch this.loadDoc(function() {/*! 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) <div id="a"><p id="b">The </p><p id="c">quick brown.</p></div> 3483750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch */}); 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}; 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3883750176c3ee2cea66c8a9751271026a5901be3aBen MurdochCvoxWalkerUnitTestBase.addCommonTests('CvoxWordWalkerUnitTest'); 395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4083750176c3ee2cea66c8a9751271026a5901be3aBen MurdochTEST_F('CvoxWordWalkerUnitTest', 'testSimpleForwardSync', function() { 4183750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch this.setUpSimpleHtml_(); 4283750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch 4383750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch // invalid selection 4483750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch var sel = cvox.CursorSelection.fromNode(document.getElementById('a')); 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var ret = this.go(sel, 'sync', { 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) selText: 'The ', 4751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) selParentNodeId: 'b', 48 selStartIndex: 0, 49 selEndIndex: 3, 50 selReversed: false 51 }); 52 53 // valid selection 54 var ret2 = this.walker.sync(ret); 55 assertTrue(ret2.equals(ret)); 56}); 57 58TEST_F('CvoxWordWalkerUnitTest', 'testSimpleReversedSync', function() { 59 this.setUpSimpleHtml_(); 60 61 // invalid selection 62 var sel = cvox.CursorSelection.fromNode(document.getElementById('a')); 63 sel.setReversed(true); 64 var ret = this.go(sel, 'sync', { 65 selText: 'quick brown.', 66 selParentNodeId: 'c', 67 selStartIndex: 0, 68 selEndIndex: 5, 69 selReversed: true 70 }); 71 72 // valid selection 73 var ret2 = this.walker.sync(ret); 74 assertTrue(ret2.equals(ret)); 75}); 76 77TEST_F('CvoxWordWalkerUnitTest', 'testSimpleForwardNext', function() { 78 this.setUpSimpleHtml_(); 79 80 var sel = cvox.CursorSelection.fromNode(document.getElementById('a')); 81 sel = this.walker.sync(sel); 82 var ret = this.go(sel, 'next', { 83 selText: 'quick brown.', 84 selParentNodeId: 'c', 85 selStartIndex: 0, 86 selEndIndex: 5, 87 selReversed: false 88 }); 89}); 90 91TEST_F('CvoxWordWalkerUnitTest', 'testSimpleReversedNext', function() { 92 this.setUpSimpleHtml_(); 93 94 var sel = cvox.CursorSelection.fromNode(document.getElementById('a')); 95 sel = this.walker.sync(sel.setReversed(true)); 96 var ret = this.go(sel, 'next', { 97 selText: 'The ', 98 selParentNodeId: 'b', 99 selStartIndex: 0, 100 selEndIndex: 3, 101 selReversed: true 102 }); 103}); 104