- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / tts_engine / engine_word_callbacks / 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 testWordCallbacks() {
10     // Register listeners for speech functions, enabling this extension
11     // to be a TTS engine.
12     var speakListener = function(utterance, options, sendTtsEvent) {
13       chrome.test.assertNoLastError();
14       chrome.test.assertEq('alpha beta gamma', utterance);
15       sendTtsEvent({'type': 'word', 'charIndex': 0});
16       sendTtsEvent({'type': 'word', 'charIndex': 6});
17       sendTtsEvent({'type': 'word', 'charIndex': 11});
18       sendTtsEvent({'type': 'end', 'charIndex': utterance.length});
19     };
20     var stopListener = function() {};
21     chrome.ttsEngine.onSpeak.addListener(speakListener);
22     chrome.ttsEngine.onStop.addListener(stopListener);
23
24     var callbacks = 0;
25     chrome.tts.speak(
26         'alpha beta gamma',
27         {
28          'onEvent': function(event) {
29            chrome.test.assertNoLastError();
30            callbacks++;
31            switch(callbacks) {
32            case 1:
33              chrome.test.assertEq('word', event.type);
34              chrome.test.assertEq(0, event.charIndex);
35              break;
36            case 2:
37              chrome.test.assertEq('word', event.type);
38              chrome.test.assertEq(6, event.charIndex);
39              break;
40            case 3:
41              chrome.test.assertEq('word', event.type);
42              chrome.test.assertEq(11, event.charIndex);
43              break;
44            case 4:
45              chrome.test.assertEq('end', event.type);
46              chrome.test.assertEq(16, event.charIndex);
47              chrome.test.succeed();
48              break;
49            default:
50              chrome.test.fail();
51            }
52          }
53         },
54         function() {
55           chrome.test.assertNoLastError();
56         });
57   }
58 ]);