- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / tts_engine / engine_error / test.js
1 // Copyright (c) 2011 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 // TTS api test for Chrome on ChromeOS.
6 // browser_tests.exe --gtest_filter="TtsApiTest.*"
7
8 chrome.test.runTests([
9   function testTtsEngineError() {
10     // Register listeners for speech functions, but have speak return an
11     // error when it's used.
12     var speakListener = function(utterance, options, sendTtsEvent) {
13       chrome.test.assertEq('extension speech', utterance);
14
15       try {
16         // This should fail because 'foo' isn't a valid event type.
17         sendTtsEvent({'type': 'foo'});
18         chrome.test.fail();
19       } catch (e) {
20       }
21
22       // This won't actually send an event, and an error will be logged
23       // to the console, because we haven't registered the 'word'
24       // event type in our manifest.
25       sendTtsEvent({'type': 'word'});
26
27       // This will succeed.
28       sendTtsEvent({
29         'type': 'error',
30         'charIndex': 0,
31         'errorMessage': 'extension tts error'});
32     };
33     var stopListener = function() {};
34     chrome.ttsEngine.onSpeak.addListener(speakListener);
35     chrome.ttsEngine.onStop.addListener(stopListener);
36
37     // This should go to our own TTS engine, and we can check that we
38     // get the error message.
39     chrome.tts.speak(
40         'extension speech',
41         {
42          'onEvent': function(event) {
43            chrome.test.assertEq('error', event.type);
44            chrome.test.assertEq('extension tts error', event.errorMessage);
45            chrome.ttsEngine.onSpeak.removeListener(speakListener);
46            chrome.ttsEngine.onStop.removeListener(stopListener);
47            chrome.test.succeed();
48          }
49         },
50         function() {
51           chrome.test.assertNoLastError();
52         });
53   }
54 ]);