Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / resources / chromeos / chromevox / walkers / object_walker_test.unitjs
blob1b6fe4378a14893211c8fcb78d5fc7c0a2164e53
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.
5 // Include test fixture.
6 GEN_INCLUDE(['walker_unittest_base.js']);
8 /**
9  * Test fixture.
10  * @constructor
11  * @extends {CvoxWalkerTestBase}
12  */
13 function CvoxObjectWalkerUnitTest() {}
15 CvoxObjectWalkerUnitTest.prototype = {
16   __proto__: CvoxWalkerUnitTestBase.prototype,
18   /** @override */
19   closureModuleDeps: CvoxWalkerUnitTestBase.prototype.closureModuleDeps.concat(
20       'cvox.ObjectWalker'),
22   /** @override */
23   newWalker: function() {
24     return new cvox.ObjectWalker();
25   },
27   /**
28    * Set up for simple html tests.
29    * @private
30    */
31   setUpSimpleHtml_: function() {
32     this.loadDoc(function() {/*!
33       <div id="a">
34         <p id="b">b</p>
35         <p id="c">c</p>
36       </div>
37     */});
38   }
41 CvoxWalkerUnitTestBase.addCommonTests('CvoxObjectWalkerUnitTest');
43 TEST_F('CvoxObjectWalkerUnitTest', 'testSimpleForwardSync', function() {
44   this.setUpSimpleHtml_();
46   // invalid selection
47   var sel = cvox.CursorSelection.fromNode($('a'));
48   var ret = this.go(sel, 'sync', {selParentNodeId: 'b', selReversed: false});
50   // valid selection
51   var ret2 = this.walker.sync(ret);
52   assertTrue(ret2.equals(ret));
53 });
55 TEST_F('CvoxObjectWalkerUnitTest', 'testSimpleReversedSync', function() {
56   this.setUpSimpleHtml_();
58   // invalid selection
59   var sel = cvox.CursorSelection.fromNode($('a'));
60   sel.setReversed(true);
61   var ret = this.go(sel, 'sync', {selParentNodeId: 'c', selReversed: true});
63   // valid selection
64   var ret2 = this.walker.sync(ret);
65   assertTrue(ret2.equals(ret));
66 });
68 TEST_F('CvoxObjectWalkerUnitTest', 'testSimpleForwardNext', function() {
69   this.setUpSimpleHtml_();
71   var sel = cvox.CursorSelection.fromNode($('a'));
72   sel = this.walker.sync(sel);
73   var ret = this.go(sel, 'next', {selParentNodeId: 'c', selReversed: false});
74 });
76 TEST_F('CvoxObjectWalkerUnitTest', 'testSimpleReversedNext', function() {
77   this.setUpSimpleHtml_();
79   var sel = cvox.CursorSelection.fromNode($('a'));
80   sel = this.walker.sync(sel.setReversed(true));
81   var ret = this.go(sel, 'next', {selParentNodeId: 'b', selReversed: true});
82 });
84 /** tests for unbroken anchor link descriptions. */
85 TEST_F('CvoxObjectWalkerUnitTest', 'testAnchorLinkDescriptions', function() {
86   this.loadDoc(function() {/*!
87     <a href='a1.html' id='a1'>
88       This link <em>has</em> a few <strong>complications.</strong>
89     </a>
90   */});
92   var sel = this.walker.sync(
93       cvox.CursorSelection.fromNode($('a1')));
94   assertEquals('A', sel.start.node.tagName);
95   assertEquals('This link has a few complications.',
96                this.walker.getDescription(sel, sel)[0].text);
97 });