| 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 // Include test fixture. | 5 // Include test fixture. |
| 6 GEN_INCLUDE(['chromevox_unittest_base.js', | 6 GEN_INCLUDE(['chromevox_unittest_base.js', |
| 7 'mock_feedback.js']); | 7 'mock_feedback.js']); |
| 8 | 8 |
| 9 function speak(text, opt_properties) { | 9 function speak(text, opt_properties) { |
| 10 cvox.ChromeVox.tts.speak(text, 0, opt_properties); | 10 cvox.ChromeVox.tts.speak(text, 0, opt_properties); |
| 11 } | 11 } |
| 12 | 12 |
| 13 function braille(text) { | 13 function braille(text) { |
| 14 var navBraille = cvox.NavBraille.fromText(text); | 14 var navBraille = cvox.NavBraille.fromText(text); |
| 15 cvox.ChromeVox.braille.write(navBraille); | 15 cvox.ChromeVox.braille.write(navBraille); |
| 16 return navBraille; | 16 return navBraille; |
| 17 } | 17 } |
| 18 | 18 |
| 19 function earcon(earconName) { |
| 20 cvox.ChromeVox.earcons.playEarcon(cvox.Earcon[earconName]); |
| 21 } |
| 22 |
| 19 /** | 23 /** |
| 20 * Test fixture. | 24 * Test fixture. |
| 21 * @constructor | 25 * @constructor |
| 22 * @extends {ChromeVoxUnitTestBase} | 26 * @extends {ChromeVoxUnitTestBase} |
| 23 */ | 27 */ |
| 24 function MockFeedbackUnitTest() { | 28 function MockFeedbackUnitTest() { |
| 25 ChromeVoxUnitTestBase.call(this); | 29 ChromeVoxUnitTestBase.call(this); |
| 26 this.expectedCalls = []; | 30 this.expectedCalls = []; |
| 27 } | 31 } |
| 28 | 32 |
| 29 MockFeedbackUnitTest.prototype = { | 33 MockFeedbackUnitTest.prototype = { |
| 30 __proto__: ChromeVoxUnitTestBase.prototype, | 34 __proto__: ChromeVoxUnitTestBase.prototype, |
| 31 | 35 |
| 32 setUp: function() { | 36 setUp: function() { |
| 33 cvox.ChromeVox = cvox.ChromeVox || {}; | 37 cvox.ChromeVox = cvox.ChromeVox || {}; |
| 34 }, | 38 }, |
| 35 | 39 |
| 36 closureModuleDeps: [ | 40 closureModuleDeps: [ |
| 37 'cvox.BrailleInterface', | 41 'cvox.BrailleInterface', |
| 38 'cvox.NavBraille', | 42 'cvox.NavBraille', |
| 39 'cvox.TtsInterface' | 43 'cvox.TtsInterface', |
| 44 'cvox.AbstractEarcons' |
| 40 ] | 45 ] |
| 41 }; | 46 }; |
| 42 | 47 |
| 43 TEST_F('MockFeedbackUnitTest', 'speechAndCallbacks', function() { | 48 TEST_F('MockFeedbackUnitTest', 'speechAndCallbacks', function() { |
| 44 var afterThirdStringCalled = false; | 49 var afterThirdStringCalled = false; |
| 45 var spruiousStringEndCallbackCalled = false; | 50 var spruiousStringEndCallbackCalled = false; |
| 46 var finishCalled = false; | 51 var finishCalled = false; |
| 47 var mock = new MockFeedback(function() { | 52 var mock = new MockFeedback(function() { |
| 48 assertFalse(finishCalled); | 53 assertFalse(finishCalled); |
| 49 finishCalled = true; | 54 finishCalled = true; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 braille('Some other string'); | 168 braille('Some other string'); |
| 164 firstCallbackCalled = true; | 169 firstCallbackCalled = true; |
| 165 }) | 170 }) |
| 166 .expectBraille('Unmatched string') | 171 .expectBraille('Unmatched string') |
| 167 .call(function() { | 172 .call(function() { |
| 168 throw Error('Should not be called'); | 173 throw Error('Should not be called'); |
| 169 }) | 174 }) |
| 170 .replay(); | 175 .replay(); |
| 171 assertTrue(firstCallbackCalled); | 176 assertTrue(firstCallbackCalled); |
| 172 }); | 177 }); |
| 178 |
| 179 TEST_F('MockFeedbackUnitTest', 'SpeechAndEarcons', function() { |
| 180 var finishCalled = false; |
| 181 var mock = new MockFeedback(function() { finishCalled = true; }); |
| 182 mock.install(); |
| 183 mock.call(function() { |
| 184 speak('MyButton', {startCallback: function() { |
| 185 earcon('BUTTON'); |
| 186 }}); |
| 187 }) |
| 188 .expectSpeech('MyButton') |
| 189 .expectEarcon(cvox.Earcon.BUTTON) |
| 190 .call(function() { |
| 191 earcon('ALERT_MODAL'); |
| 192 speak('MyTextField', {startCallback: function() { |
| 193 earcon('EDITABLE_TEXT'); |
| 194 }}); |
| 195 }) |
| 196 .expectEarcon(cvox.Earcon.ALERT_MODAL) |
| 197 .expectSpeech('MyTextField') |
| 198 .expectEarcon(cvox.Earcon.EDITABLE_TEXT) |
| 199 .replay(); |
| 200 assertTrue(finishCalled); |
| 201 }); |
| OLD | NEW |