- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / platform_apps / web_view / common / speech_recognition_api_no_permission / bootstrap.js
1 // Copyright 2013 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 config.IS_CHROME_TEST = true;
6 // No TestServer.
7 config.IS_JS_ONLY_GUEST = true;
8 config.TEST_DIR = 'speech_recognition_api_no_permission';
9
10 var g_allowRequest;
11 var speechTests = {};
12
13 var LOG = function(msg) {
14   window.console.log(msg);
15 };
16
17 var startTest = function() {
18   var container = document.createElement('div');
19   container.id = 'webview-tag-container';
20   document.body.appendChild(container);
21
22   chrome.test.getConfig(function(chromeConfig) {
23     LOG('getConfig: ' + chromeConfig);
24     utils.setUp(chromeConfig, config);
25     embedder.loadGuest(function() {
26       LOG('loadGuest done, start Running test');
27       chrome.test.runTests([
28         speechTests.testAllow,
29         speechTests.testDeny
30       ]);
31     }, function(data) {
32       if (data[0] != 'recognition') {
33         utils.test.fail();
34         return;
35       }
36       LOG('embedder.onPostMessageReceived: ' + data[1]);
37       switch (data[1]) {
38         case 'onerror':
39           utils.test.succeed();
40           break;
41         case 'onresult':
42         case 'onstart':
43         default:
44           utils.test.fail();
45           break;
46
47       }
48       return /* handled */ true;
49     });
50   });
51 };
52
53
54 var onPermissionRequest = function(e) {
55   LOG('onPermissionRequest');
56   utils.test.assertEq('media', e.permission);
57   if (g_allowRequest) {
58     e.request.allow();
59   } else {
60     e.request.deny();
61   }
62 };
63
64 speechTests.testHelper_ = function(expectSpeech, allowRequest) {
65   g_allowRequest = allowRequest;
66   embedder.webview.addEventListener(
67       'permissionrequest', onPermissionRequest);
68   embedder.webview.contentWindow.postMessage(
69       JSON.stringify(['runSpeechRecognitionAPI']), '*');
70 };
71
72 // Tests.
73 speechTests.testAllow = function testAllow() {
74   speechTests.testHelper_(false /* expectSpeech */, true /* allowRequest */);
75 };
76
77 speechTests.testDeny = function testDeny() {
78   speechTests.testHelper_(false /* expectSpeech */, false /* allowRequest */);
79 };
80
81 // Run test(s).
82 startTest();