1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file.
4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Include test fixture.
6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)GEN_INCLUDE(['../testing/chromevox_unittest_base.js']);
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)/**
9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) * Test fixture.
10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) * @constructor
11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) * @extends {ChromeVoxUnitTestBase}
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) */
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)function CvoxFindUtilUnitTest() {}
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)CvoxFindUtilUnitTest.prototype = {
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  __proto__: ChromeVoxUnitTestBase.prototype,
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  /** @override */
19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  closureModuleDeps: [
20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    'cvox.FindUtil',
21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  ]
22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)};
23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)TEST_F('CvoxFindUtilUnitTest', 'Links', function() {
25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  this.loadDoc(function() {/*!
26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    <div>
27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <p id="before">Before</p>
28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <h2>Chapter 1</h2>
29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <h2>Chapter 2</h2>
30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <a href="#c3" id="c3" name="chapter_3"></a>
31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <h2 id="c3_2">Chapter 3</h2>
32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <h2 id="c4">Chapter 4</h2>
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <h2>Chapter 5</h2>
34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <h2>Chapter 6</h2>
35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <a href='#c7' id="c7" name="chapter_7"><h2 id="c7_2">Chapter 7</h2></a>
36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <h2 id="c8">Chapter 8</h2>
37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      <p id="after">After</p>
38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)     </div>
39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  */});
40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  var sel = cvox.CursorSelection.fromNode($('before'));
42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  var ret = cvox.FindUtil.findNext(sel, cvox.DomPredicates.linkPredicate);
44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  assertEquals('c3', ret.start.node.id);
45f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  ret = cvox.FindUtil.findNext(ret, cvox.DomPredicates.linkPredicate);
46f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  assertEquals('c7', ret.start.node.id);
47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  ret.setReversed(true);
49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  ret = cvox.FindUtil.findNext(ret, cvox.DomPredicates.linkPredicate);
50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  assertEquals('c3', ret.start.node.id);
51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)});
52