Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util_test.extjs

Issue 1457683009: Complete live region support in ChromeVox Next. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed last feedback Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Include test fixture. 5 // Include test fixture.
6 GEN_INCLUDE(['../../testing/chromevox_next_e2e_test_base.js']); 6 GEN_INCLUDE(['../../testing/chromevox_next_e2e_test_base.js']);
7 7
8 /** 8 /**
9 * Test fixture for automation_util.js. 9 * Test fixture for automation_util.js.
10 * @constructor 10 * @constructor
11 * @extends {ChromeVoxE2ETestBase} 11 * @extends {ChromeVoxE2ETestBase}
12 */ 12 */
13 function AutomationUtilE2ETest() { 13 function AutomationUtilE2ETest() {
14 ChromeVoxNextE2ETest.call(this); 14 ChromeVoxNextE2ETest.call(this);
15 } 15 }
16 16
17 AutomationUtilE2ETest.prototype = { 17 AutomationUtilE2ETest.prototype = {
18 __proto__: ChromeVoxNextE2ETest.prototype, 18 __proto__: ChromeVoxNextE2ETest.prototype,
19 19
20 /** @override */ 20 /** @override */
21 setUp: function() { 21 setUp: function() {
22 window.Dir = AutomationUtil.Dir; 22 window.Dir = AutomationUtil.Dir;
23 }, 23 },
24 24
25 basicDoc: function() {/*! 25 basicDoc: function() {/*!
26 <p><a href='#'></a>hello</p> 26 <p><a href='#'></a>hello</p>
27 <h1><ul><li>a</ul><button></h1> 27 <h1><ul><li>a</ul><button></h1>
28 */},
29
30 secondDoc: function() {/*!
31 <html>
32 <head><title>Second doc</title></head>
33 <body><div>Second</div></body>
34 </html>
35 */},
36
37 iframeDoc: function() {/*!
38 <html>
39 <head><title>Second doc</title></head>
40 <body>
41 <iframe src="data:text/html,<p>Inside</p>"></iframe>
42 </body>
43 </html>
28 */} 44 */}
29 }; 45 };
30 46
31 TEST_F('AutomationUtilE2ETest', 'GetAncestors', function() { 47 TEST_F('AutomationUtilE2ETest', 'GetAncestors', function() {
32 this.runWithLoadedTree(this.basicDoc, function(root) { 48 this.runWithLoadedTree(this.basicDoc, function(root) {
33 var expectedLength = 1; 49 var expectedLength = 1;
34 while (root) { 50 while (root) {
35 var ancestors = AutomationUtil.getAncestors(root); 51 var ancestors = AutomationUtil.getAncestors(root);
36 assertEquals(expectedLength++, ancestors.length); 52 assertEquals(expectedLength++, ancestors.length);
37 root = root.firstChild; 53 root = root.firstChild;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 106
91 // Ancestor. 107 // Ancestor.
92 left = left.firstChild; 108 left = left.firstChild;
93 assertEquals(Dir.FORWARD, AutomationUtil.getDirection(left, right)); 109 assertEquals(Dir.FORWARD, AutomationUtil.getDirection(left, right));
94 assertEquals(Dir.FORWARD, AutomationUtil.getDirection(right, left)); 110 assertEquals(Dir.FORWARD, AutomationUtil.getDirection(right, left));
95 111
96 // Ordered. 112 // Ordered.
97 right = right.lastChild; 113 right = right.lastChild;
98 assertEquals(Dir.BACKWARD, AutomationUtil.getDirection(right, left)); 114 assertEquals(Dir.BACKWARD, AutomationUtil.getDirection(right, left));
99 assertEquals(Dir.FORWARD, AutomationUtil.getDirection(left, right)); 115 assertEquals(Dir.FORWARD, AutomationUtil.getDirection(left, right));
100
101 }); 116 });
102 }); 117 });
118
119 TEST_F('AutomationUtilE2ETest', 'IsInSameWebpage', function() {
120 this.runWithLoadedTree(this.basicDoc, function(root) {
121 this.runWithLoadedTree(this.secondDoc, function(root2) {
122 chrome.automation.getDesktop(this.newCallback(function(desktop) {
123 assertTrue(AutomationUtil.isInSameWebpage(root, root));
124 assertTrue(AutomationUtil.isInSameWebpage(root.firstChild, root));
125 assertTrue(AutomationUtil.isInSameWebpage(root, root.firstChild));
126
127 assertTrue(AutomationUtil.isInSameWebpage(root2, root2));
128 assertTrue(AutomationUtil.isInSameWebpage(root2.firstChild, root2));
129 assertTrue(AutomationUtil.isInSameWebpage(root2, root2.firstChild));
130
131 assertFalse(AutomationUtil.isInSameWebpage(root, root2));
132 assertFalse(AutomationUtil.isInSameWebpage(root.firstChild, root2));
133 assertFalse(AutomationUtil.isInSameWebpage(root2.firstChild));
134 assertFalse(AutomationUtil.isInSameWebpage(
135 root.firstChild, root2.firstChild));
136
137 assertFalse(AutomationUtil.isInSameWebpage(root, desktop));
138 assertFalse(AutomationUtil.isInSameWebpage(root2, desktop));
139 }.bind(this)));
140 }.bind(this));
141 }.bind(this));
142 });
143
144 TEST_F('AutomationUtilE2ETest', 'IsInSameWebpageIframe', function() {
145 // Wait for load complete on both outer frame and iframe.
146 var outerFrame;
147 var innerFrame;
148 var desktop;
149 var onSuccess = this.newCallback(function() {
150 assertTrue(AutomationUtil.isInSameWebpage(outerFrame, innerFrame));
151 assertFalse(AutomationUtil.isInSameWebpage(outerFrame, desktop));
152 assertFalse(AutomationUtil.isInSameWebpage(innerFrame, desktop));
153 assertFalse(AutomationUtil.isInSameWebpage(outerFrame.parent, innerFrame));
154 }.bind(this));
155
156 chrome.automation.getDesktop(function(r) {
157 desktop = r;
158 this.runWithTab(this.iframeDoc, function(newTabUrl) {
159 var listener = function(evt) {
160 if (evt.target.docUrl == newTabUrl)
161 outerFrame = evt.target;
162 if (evt.target.docUrl.indexOf('data:text/html') == 0)
163 innerFrame = evt.target;
164
165 if (outerFrame && innerFrame) {
166 desktop.removeEventListener('loadComplete', listener, true);
167 onSuccess();
168 }
169 }.bind(this);
170 desktop.addEventListener('loadComplete', listener, true);
171 }.bind(this));
172 }.bind(this));
173 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698