OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 /** | 5 /** |
6 * @fileoverview This file contains the |MockFeedback| class which is | 6 * @fileoverview This file contains the |MockFeedback| class which is |
7 * a combined mock class for speech, braille, and earcon feedback. A | 7 * a combined mock class for speech, braille, and earcon feedback. A |
8 * test that uses this class may add expectations for speech | 8 * test that uses this class may add expectations for speech |
9 * utterances, braille display content to be output, and earcons | 9 * utterances, braille display content to be output, and earcons |
10 * played (by name). The |install| method sets appropriate mock | 10 * played (by name). The |install| method sets appropriate mock |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
153 return !!MockFeedback.matchAndConsume_( | 153 return !!MockFeedback.matchAndConsume_( |
154 text, {}, this.pendingUtterances_); | 154 text, {}, this.pendingUtterances_); |
155 }.bind(this), | 155 }.bind(this), |
156 toString: function() { return 'Speak \'' + text + '\''; } | 156 toString: function() { return 'Speak \'' + text + '\''; } |
157 }); | 157 }); |
158 }.bind(this)); | 158 }.bind(this)); |
159 return this; | 159 return this; |
160 }, | 160 }, |
161 | 161 |
162 /** | 162 /** |
163 * Adds an expectation for one spoken utterance that will be enqueued | |
164 * with a given queue mode. | |
165 * @param {string|RegExp} text One utterance expectation. | |
166 * @param {cvox.QueueMode} queueMode The expected queue mode. | |
167 * @return {MockFeedback} |this| for chaining | |
168 */ | |
169 expectSpeechWithQueueMode: function(text, queueMode) { | |
170 assertFalse(this.replaying_); | |
171 this.pendingActions_.push({ | |
172 perform: function() { | |
173 return !!MockFeedback.matchAndConsume_( | |
174 text, {queueMode: queueMode}, this.pendingUtterances_); | |
175 }.bind(this), | |
176 toString: function() { | |
177 return 'Speak \'' + text + '\' with mode ' + queueMode; | |
178 } | |
179 }); | |
180 return this; | |
181 }, | |
182 | |
183 /** | |
184 * Adds an expectation for one spoken utterance that will be queued. | |
185 * @param {string|RegExp} text One utterance expectation. | |
186 * @return {MockFeedback} |this| for chaining | |
187 */ | |
188 expectQueue: function(text) { | |
Peter Lundblad
2015/11/20 13:42:58
expectQueuedSpeech?
dmazzoni
2015/11/23 20:16:50
Done.
| |
189 return this.expectSpeechWithQueueMode(text, cvox.QueueMode.QUEUE); | |
190 }, | |
191 | |
192 /** | |
193 * Adds an expectation for one spoken utterance that will be flushed. | |
194 * @param {string|RegExp} text One utterance expectation. | |
195 * @return {MockFeedback} |this| for chaining | |
196 */ | |
197 expectFlush: function(text) { | |
Peter Lundblad
2015/11/20 13:42:59
expectFlushingSpeech?
dmazzoni
2015/11/23 20:16:50
Done.
| |
198 return this.expectSpeechWithQueueMode(text, cvox.QueueMode.FLUSH); | |
199 }, | |
200 | |
201 /** | |
202 * Adds an expectation for one spoken utterance that will be queued | |
203 * with the category flush mode. | |
204 * @param {string|RegExp} text One utterance expectation. | |
205 * @return {MockFeedback} |this| for chaining | |
206 */ | |
207 expectCategoryFlush: function(text) { | |
Peter Lundblad
2015/11/20 13:42:58
expectCategoryFlushSpeech?
dmazzoni
2015/11/23 20:16:50
Done.
| |
208 return this.expectSpeechWithQueueMode(text, cvox.QueueMode.CATEGORY_FLUSH); | |
209 }, | |
210 | |
211 /** | |
163 * Adds an expectation that the next spoken utterances do *not* match | 212 * Adds an expectation that the next spoken utterances do *not* match |
164 * the given arguments. | 213 * the given arguments. |
165 * | 214 * |
166 * This is only guaranteed to work for the immediately following utterance. | 215 * This is only guaranteed to work for the immediately following utterance. |
167 * If you use it to check an utterance other than the immediately following | 216 * If you use it to check an utterance other than the immediately following |
168 * one the results may be flaky. | 217 * one the results may be flaky. |
169 * | 218 * |
170 * @param {...(string|RegExp)} var_args One or more utterance to add as | 219 * @param {...(string|RegExp)} var_args One or more utterance to add as |
171 * negative expectations. | 220 * negative expectations. |
172 * @return {MockFeedback} |this| for chaining | 221 * @return {MockFeedback} |this| for chaining |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
292 if (properties && (properties.startCallback || properties.endCallback)) { | 341 if (properties && (properties.startCallback || properties.endCallback)) { |
293 var startCallback = properties.startCallback; | 342 var startCallback = properties.startCallback; |
294 var endCallback = properties.endCallback; | 343 var endCallback = properties.endCallback; |
295 callback = function() { | 344 callback = function() { |
296 startCallback && startCallback(); | 345 startCallback && startCallback(); |
297 endCallback && endCallback(); | 346 endCallback && endCallback(); |
298 }; | 347 }; |
299 } | 348 } |
300 this.pendingUtterances_.push( | 349 this.pendingUtterances_.push( |
301 {text: textString, | 350 {text: textString, |
351 queueMode: queueMode, | |
302 callback: callback}); | 352 callback: callback}); |
303 this.process_(); | 353 this.process_(); |
304 }, | 354 }, |
305 | 355 |
306 /** @private */ | 356 /** @private */ |
307 addBraille_: function(navBraille) { | 357 addBraille_: function(navBraille) { |
308 this.pendingBraille_.push(navBraille); | 358 this.pendingBraille_.push(navBraille); |
309 this.process_(); | 359 this.process_(); |
310 }, | 360 }, |
311 | 361 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
403 } | 453 } |
404 if (candidate) { | 454 if (candidate) { |
405 var consumed = pending.splice(0, i + 1); | 455 var consumed = pending.splice(0, i + 1); |
406 consumed.forEach(function(item) { | 456 consumed.forEach(function(item) { |
407 if (item.callback) | 457 if (item.callback) |
408 item.callback(); | 458 item.callback(); |
409 }); | 459 }); |
410 } | 460 } |
411 return candidate; | 461 return candidate; |
412 }; | 462 }; |
OLD | NEW |