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

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

Issue 1295773002: Make testDone unavailable for chromevox tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: n Created 5 years, 4 months 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 GEN_INCLUDE(['../../testing/mock_tts.js']); 8 GEN_INCLUDE(['../../testing/mock_feedback.js']);
9 9
10 /** 10 /**
11 * Test fixture for Background. 11 * Test fixture for Background.
12 * @constructor 12 * @constructor
13 * @extends {ChromeVoxNextE2ETest} 13 * @extends {ChromeVoxNextE2ETest}
14 */ 14 */
15 function BackgroundTest() { 15 function BackgroundTest() {
16 ChromeVoxNextE2ETest.call(this); 16 ChromeVoxNextE2ETest.call(this);
17 } 17 }
18 18
19 BackgroundTest.prototype = { 19 BackgroundTest.prototype = {
20 __proto__: ChromeVoxNextE2ETest.prototype, 20 __proto__: ChromeVoxNextE2ETest.prototype,
21 21
22 /** @override */ 22 /**
23 setUp: function() { 23 * @return {!MockFeedback}
24 this.mockTts = new MockTts(); 24 */
25 cvox.ChromeVox.tts = this.mockTts; 25 createMockFeedback: function() {
26 var mockFeedback = new MockFeedback(this.newCallback());
27 mockFeedback.install();
28 return mockFeedback;
26 }, 29 },
27 30
28 /** 31 /**
29 * Create a function which perform the command |cmd|. 32 * Create a function which perform the command |cmd|.
30 * @param {string} cmd 33 * @param {string} cmd
31 * @return {function() : void} 34 * @return {function() : void}
32 */ 35 */
33 doCmd: function(cmd) { 36 doCmd: function(cmd) {
34 return function() { 37 return function() {
35 global.backgroundObj.onGotCommand(cmd); 38 global.backgroundObj.onGotCommand(cmd);
(...skipping 26 matching lines...) Expand all
62 SYNC_TEST_F('BackgroundTest', 'ClassicNamespaces', function() { 65 SYNC_TEST_F('BackgroundTest', 'ClassicNamespaces', function() {
63 assertEquals('object', typeof(cvox)); 66 assertEquals('object', typeof(cvox));
64 assertEquals('function', typeof(cvox.ChromeVoxBackground)); 67 assertEquals('function', typeof(cvox.ChromeVoxBackground));
65 }); 68 });
66 69
67 /** Tests that ChromeVox next is in this context. */ 70 /** Tests that ChromeVox next is in this context. */
68 SYNC_TEST_F('BackgroundTest', 'NextNamespaces', function() { 71 SYNC_TEST_F('BackgroundTest', 'NextNamespaces', function() {
69 assertEquals('function', typeof(Background)); 72 assertEquals('function', typeof(Background));
70 }); 73 });
71 74
72 /** Tests feedback once a page loads. */
73 TEST_F('BackgroundTest', 'MANUAL_InitialFeedback', function() {
74 cvox.ChromeVox.tts.expectSpeech('start', this.newCallback());
75
76 this.runWithTab(function() {/*!
77 <p>start
78 <p>end
79 */});
80 });
81
82 /** Tests consistency of navigating forward and backward. */ 75 /** Tests consistency of navigating forward and backward. */
83 TEST_F('BackgroundTest', 'MANUAL_ForwardBackwardNavigation', function() { 76 TEST_F('BackgroundTest', 'MANUAL_ForwardBackwardNavigation', function() {
84 this.runWithLoadedTree(this.linksAndHeadingsDoc, function() { 77 this.runWithLoadedTree(this.linksAndHeadingsDoc, function() {
85 var doCmd = this.doCmd.bind(this); 78 var doCmd = this.doCmd.bind(this);
86 var expectAfter = 79 var expectAfter =
87 cvox.ChromeVox.tts.expectSpeechAfter.bind(cvox.ChromeVox.tts); 80 cvox.ChromeVox.tts.expectSpeechAfter.bind(cvox.ChromeVox.tts);
88 81
89 expectAfter('alpha', doCmd('nextLink')); 82 expectAfter('alpha', doCmd('nextLink'));
90 expectAfter('beta', doCmd('nextLink')); 83 expectAfter('beta', doCmd('nextLink'));
91 expectAfter('delta', doCmd('nextLink')); 84 expectAfter('delta', doCmd('nextLink'));
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 cvox.ChromeVox.tts.expectSpeech('Link'); 152 cvox.ChromeVox.tts.expectSpeech('Link');
160 cvox.ChromeVox.tts.expectSpeech('beta'); 153 cvox.ChromeVox.tts.expectSpeech('beta');
161 cvox.ChromeVox.tts.expectSpeech('Link'); 154 cvox.ChromeVox.tts.expectSpeech('Link');
162 cvox.ChromeVox.tts.expectSpeech('Heading 1'); 155 cvox.ChromeVox.tts.expectSpeech('Heading 1');
163 cvox.ChromeVox.tts.expectSpeech('charlie'); 156 cvox.ChromeVox.tts.expectSpeech('charlie');
164 cvox.ChromeVox.tts.finishExpectations(); 157 cvox.ChromeVox.tts.finishExpectations();
165 }); 158 });
166 }); 159 });
167 160
168 TEST_F('BackgroundTest', 'LiveRegionAddElement', function() { 161 TEST_F('BackgroundTest', 'LiveRegionAddElement', function() {
162 var mockFeedback = this.createMockFeedback();
169 this.runWithLoadedTree( 163 this.runWithLoadedTree(
170 function() {/*! 164 function() {/*!
171 <h1>Document with live region</h1> 165 <h1>Document with live region</h1>
172 <p id="live" aria-live="polite"></p> 166 <p id="live" aria-live="polite"></p>
173 <button id="go">Go</button> 167 <button id="go">Go</button>
174 <script> 168 <script>
175 document.getElementById('go').addEventListener('click', function() { 169 document.getElementById('go').addEventListener('click', function() {
176 document.getElementById('live').innerHTML = 'Hello, world'; 170 document.getElementById('live').innerHTML = 'Hello, world';
177 }, false); 171 }, false);
178 </script> 172 </script>
179 */}, 173 */},
180 function(rootNode) { 174 function(rootNode) {
181 var go = rootNode.find({ role: chrome.automation.RoleType.button }); 175 var go = rootNode.find({ role: chrome.automation.RoleType.button });
182 go.doDefault(); 176 mockFeedback.call(go.doDefault.bind(go))
183 cvox.ChromeVox.tts.expectSpeech('Hello, world'); 177 .expectSpeech('Hello, world')
184 cvox.ChromeVox.tts.finishExpectations(this.newCallback()); 178 .go();
185 }); 179 });
186 }); 180 });
187 181
188 TEST_F('BackgroundTest', 'LiveRegionRemoveElement', function() { 182 TEST_F('BackgroundTest', 'LiveRegionRemoveElement', function() {
183 var mockFeedback = this.createMockFeedback();
189 this.runWithLoadedTree( 184 this.runWithLoadedTree(
190 function() {/*! 185 function() {/*!
191 <h1>Document with live region</h1> 186 <h1>Document with live region</h1>
192 <p id="live" aria-live="polite" aria-relevant="removals">Hello, world</p> 187 <p id="live" aria-live="polite" aria-relevant="removals">Hello, world</p>
193 <button id="go">Go</button> 188 <button id="go">Go</button>
194 <script> 189 <script>
195 document.getElementById('go').addEventListener('click', function() { 190 document.getElementById('go').addEventListener('click', function() {
196 document.getElementById('live').innerHTML = ''; 191 document.getElementById('live').innerHTML = '';
197 }, false); 192 }, false);
198 </script> 193 </script>
199 */}, 194 */},
200 function(rootNode) { 195 function(rootNode) {
201 var go = rootNode.find({ role: chrome.automation.RoleType.button }); 196 var go = rootNode.find({ role: chrome.automation.RoleType.button });
202 go.doDefault(); 197 go.doDefault();
203 cvox.ChromeVox.tts.expectSpeech('removed:'); 198 mockFeedback.expectSpeech('removed:')
204 cvox.ChromeVox.tts.expectSpeech('Hello, world'); 199 .expectSpeech('Hello, world')
205 cvox.ChromeVox.tts.finishExpectations(this.newCallback()); 200 .go();
206 }); 201 });
207 }); 202 });
208 203
209 // Test fails because no speech is generated when the rootWebArea is 204 // Test fails because no speech is generated when the rootWebArea is
210 // focused. 205 // focused.
211 // http://crbug.com/520940 206 // http://crbug.com/520940
212 TEST_F('BackgroundTest', 'DISABLED_InitialFocus', function() { 207 TEST_F('BackgroundTest', 'DISABLED_InitialFocus', function() {
208 var mockFeedback = this.createMockFeedback();
213 this.runWithLoadedTree('<a href="a">a</a>', 209 this.runWithLoadedTree('<a href="a">a</a>',
214 function(rootNode) { 210 function(rootNode) {
215 cvox.ChromeVox.tts.expectSpeech('a'); 211 mockFeedback.expectSpeech('a')
216 cvox.ChromeVox.tts.expectSpeech('Link', this.newCallback()); 212 .expectSpeech('Link')
217 213 .go();
218 rootNode.focus();
219 }); 214 });
220 }); 215 });
221 216
222 TEST_F('BackgroundTest', 'AriaLabel', function() { 217 TEST_F('BackgroundTest', 'AriaLabel', function() {
218 var mockFeedback = this.createMockFeedback();
223 this.runWithLoadedTree('<a aria-label="foo" href="a">a</a>', 219 this.runWithLoadedTree('<a aria-label="foo" href="a">a</a>',
224 function(rootNode) { 220 function(rootNode) {
225 cvox.ChromeVox.tts.expectSpeech('foo');
226 cvox.ChromeVox.tts.expectSpeech('Link', this.newCallback());
227 rootNode.find({role: 'link'}).focus(); 221 rootNode.find({role: 'link'}).focus();
222 mockFeedback.expectSpeech('foo')
223 .expectSpeech('Link')
224 .expectBraille('foo lnk')
225 .go();
228 } 226 }
229 ); 227 );
230 }); 228 });
231 229
232 TEST_F('BackgroundTest', 'ShowContextMenu', function() { 230 TEST_F('BackgroundTest', 'ShowContextMenu', function() {
231 var mockFeedback = this.createMockFeedback();
233 this.runWithLoadedTree('<a href="a">a</a>', 232 this.runWithLoadedTree('<a href="a">a</a>',
234 function(rootNode) { 233 function(rootNode) {
235 cvox.ChromeVox.tts.expectSpeech(' menu opened', this.newCallback( 234 mockFeedback.expectSpeech(' menu opened')
236 function() { 235 .call(function() {
237 // When shown, the context menu pushes a new message loop so test 236 // When shown, the context menu pushes a new message loop so test
238 // messages sent to the browser do not get processed. Ensure we exit 237 // messages sent to the browser do not get processed. Ensure we
239 // the context menu here. 238 // exit the context menu here.
240 go.showContextMenu(); 239 go.showContextMenu();
241 }) 240 })
242 ); 241 .go();
243 242
244 var go = rootNode.find({ role: chrome.automation.RoleType.link }); 243 var go = rootNode.find({ role: chrome.automation.RoleType.link });
245 this.listenOnce(go, 'focus', function(e) { 244 this.listenOnce(go, 'focus', function(e) {
246 this.doCmd('showContextMenu')(); 245 this.doCmd('showContextMenu')();
247 }.bind(this), true); 246 }.bind(this), true);
248 go.focus(); 247 go.focus();
249 }.bind(this)); 248 }.bind(this));
250 }); 249 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698