Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / chromeos / chromevox / common / editable_text_area_shadow_test.unitjs
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.
6 GEN_INCLUDE(['../testing/chromevox_unittest_base.js']);
7
8 /**
9  * Test fixture.
10  * @constructor
11  * @extends {ChromeVoxUnitTestBase}
12  */
13 function CvoxShadowUnitTest() {}
14
15 CvoxShadowUnitTest.prototype = {
16   __proto__: ChromeVoxUnitTestBase.prototype,
17
18   /** @override */
19   closureModuleDeps: [
20     'cvox.EditableTextAreaShadow'
21   ]
22 };
23
24 TEST_F('CvoxShadowUnitTest', 'MultilineLines', function() {
25   this.loadDoc(function() {/*!
26     <div><textarea id="area">
27 one
28
29 two
30
31 three
32 </textarea></div> */});
33
34   var area = $('area');
35
36   var shadow = new cvox.EditableTextAreaShadow();
37   shadow.update(area);
38   assertEquals(0, shadow.getLineIndex(0));
39   assertEquals(0, shadow.getLineIndex(3));
40   assertEquals(1, shadow.getLineIndex(4));
41   assertEquals(2, shadow.getLineIndex(5));
42   assertEquals(2, shadow.getLineIndex(8));
43   assertEquals(3, shadow.getLineIndex(9));
44   assertEquals(4, shadow.getLineIndex(10));
45   assertEquals(4, shadow.getLineIndex(14));
46 });
47
48 /**
49  * Test the get line of a multiline textarea with wrapping instead of
50  * explicit newlines.
51  */
52 TEST_F('CvoxShadowUnitTest', 'MultilineWrap', function() {
53   this.loadDoc(function() {/*!
54     <div><textarea id="area"
55           cols=4 rows=20>One two thr fou fiv six sev eig</textarea>
56     </div> */});
57
58   var area = $('area');
59
60   var shadow = new cvox.EditableTextAreaShadow();
61   shadow.update(area);
62   for (var i = 0; i < 32; i++) {
63     assertEquals(Math.floor(i / 4), shadow.getLineIndex(i));
64   }
65 });