Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: extensions/test/data/web_view/media_access/allow/embedder.js

Issue 626093002: Cleanup webview app_shell_browsertests and add webview media permission tests in app_shell_browsert… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tests_load
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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 var embedder = {}; 5 var embedder = {};
6 embedder.tests = {}; 6 embedder.tests = {};
7 // These variables will be filled in chrome.test.getConfig() below.
7 embedder.baseGuestURL = ''; 8 embedder.baseGuestURL = '';
8 embedder.guestURL = ''; 9 embedder.guestURL = '';
9 10
10 // Sends a message to WebViewTest denoting it is done and test 11 // Sends a message to WebViewTest denoting it is done and test
11 // has failed. 12 // has failed.
12 embedder.failTest = function(msg) { 13 embedder.failTest = function(msg) {
13 window.console.log('test failure, reason: ' + msg); 14 window.console.warn('test failure, reason: ' + msg);
14 chrome.test.sendMessage('TEST_FAILED'); 15 chrome.test.sendMessage('TEST_FAILED');
15 }; 16 };
16 17
17 // Sends a message to WebViewTest denoting it is done and test 18 // Sends a message to WebViewTest denoting it is done and test
18 // has succeeded. 19 // has succeeded.
19 embedder.maybePassTest = function() { 20 embedder.maybePassTest = function() {
20 window.console.log('test passed');
21 chrome.test.sendMessage('TEST_PASSED'); 21 chrome.test.sendMessage('TEST_PASSED');
22 }; 22 };
23 23
24 /** @private */ 24 /** @private */
25 embedder.setUpGuest_ = function() { 25 embedder.setUpGuest_ = function() {
26 document.querySelector('#webview-tag-container').innerHTML = 26 document.querySelector('#webview-tag-container').innerHTML =
27 '<webview style="width: 100px; height: 100px;"' + 27 '<webview style="width: 100px; height: 100px;"' +
28 ' src="' + embedder.guestURL + '"' + 28 ' src="' + embedder.guestURL + '"' +
29 '></webview>'; 29 '></webview>';
30 var webview = document.querySelector('webview'); 30 var webview = document.querySelector('webview');
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 }; 130 };
131 var onPermissionRequest2 = function(e) { 131 var onPermissionRequest2 = function(e) {
132 checkAndCall(e); 132 checkAndCall(e);
133 }; 133 };
134 webview.addEventListener('permissionrequest', onPermissionRequest1); 134 webview.addEventListener('permissionrequest', onPermissionRequest1);
135 webview.addEventListener('permissionrequest', onPermissionRequest2); 135 webview.addEventListener('permissionrequest', onPermissionRequest2);
136 136
137 embedder.setUpLoadStop_(webview, 'test1'); 137 embedder.setUpLoadStop_(webview, 'test1');
138 }; 138 };
139 139
140 embedder.tests.testAllowAsync = function() {
141 var webview = embedder.setUpGuest_();
142 if (!webview) {
143 return;
144 }
145
146 var onPermissionRequest = function(e) {
147 if (!embedder.assertCorrectMediaEvent_(e)) {
148 return;
149 }
150
151 e.preventDefault();
152 // Decide asynchronously.
153 window.setTimeout(function() {
154 e.request.allow();
155 embedder.maybePassTest();
156 }, 0);
157 };
158 webview.addEventListener('permissionrequest', onPermissionRequest);
159
160 embedder.setUpLoadStop_(webview, 'test1');
161 };
162
140 embedder.tests.testAllowTwice = function() { 163 embedder.tests.testAllowTwice = function() {
141 var webview = embedder.setUpGuest_(); 164 var webview = embedder.setUpGuest_();
142 if (!webview) { 165 if (!webview) {
143 return; 166 return;
144 } 167 }
145 168
146 var calledAllow = false; 169 var calledAllow = false;
147 var callbackCount = 0; 170 var callbackCount = 0;
148 var exceptionCount = 0; 171 var exceptionCount = 0;
149 var checkAndCall = function(e) { 172 var checkAndCall = function(e) {
(...skipping 23 matching lines...) Expand all
173 }; 196 };
174 var onPermissionRequest2 = function(e) { 197 var onPermissionRequest2 = function(e) {
175 checkAndCall(e); 198 checkAndCall(e);
176 }; 199 };
177 webview.addEventListener('permissionrequest', onPermissionRequest1); 200 webview.addEventListener('permissionrequest', onPermissionRequest1);
178 webview.addEventListener('permissionrequest', onPermissionRequest2); 201 webview.addEventListener('permissionrequest', onPermissionRequest2);
179 202
180 embedder.setUpLoadStop_(webview, 'test1'); 203 embedder.setUpLoadStop_(webview, 'test1');
181 }; 204 };
182 205
183 embedder.tests.testAllowAsync = function() {
184 var webview = embedder.setUpGuest_();
185 if (!webview) {
186 return;
187 }
188
189 var onPermissionRequest = function(e) {
190 if (!embedder.assertCorrectMediaEvent_(e)) {
191 return;
192 }
193
194 e.preventDefault();
195 // Decide asynchronously.
196 window.setTimeout(function() {
197 e.request.allow();
198 embedder.maybePassTest();
199 }, 0);
200 };
201 webview.addEventListener('permissionrequest', onPermissionRequest);
202
203 embedder.setUpLoadStop_(webview, 'test1');
204 };
205
206 embedder.tests.list = { 206 embedder.tests.list = {
207 'testAllow': embedder.tests.testAllow, 207 'testAllow': embedder.tests.testAllow,
208 'testAllowAndThenDeny': embedder.tests.testAllowAndThenDeny, 208 'testAllowAndThenDeny': embedder.tests.testAllowAndThenDeny,
209 'testAllowTwice': embedder.tests.testAllowTwice, 209 'testAllowAsync': embedder.tests.testAllowAsync,
210 'testAllowAsync': embedder.tests.testAllowAsync 210 'testAllowTwice': embedder.tests.testAllowTwice
211 }; 211 };
212 212
213 // Entry point for test, called by WebViewTest. 213 // Entry point for test, called by WebViewTest.
214 function startAllowTest(testName) { 214 function runTest(testName) {
215 chrome.test.getConfig(function(config) { 215 chrome.test.getConfig(function(config) {
216 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; 216 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port;
217 embedder.guestURL = embedder.baseGuestURL + 217 embedder.guestURL = embedder.baseGuestURL + '/media_access_guest.html';
218 '/extensions/platform_apps/web_view/media_access' +
219 '/media_access_guest.html';
220 chrome.test.log('Guest url is: ' + embedder.guestURL); 218 chrome.test.log('Guest url is: ' + embedder.guestURL);
221 219
222 var testFunction = embedder.tests.list[testName]; 220 var testFunction = embedder.tests.list[testName];
223 if (!testFunction) { 221 if (!testFunction) {
224 embedder.failTest('No such test: ' + testName); 222 embedder.failTest('No such test: ' + testName);
225 return; 223 return;
226 } 224 }
227 testFunction(); 225 testFunction();
228 }); 226 });
229 } 227 }
230 228
231 onload = function() { 229 onload = function() {
232 chrome.test.sendMessage('Launched'); 230 chrome.test.sendMessage('LAUNCHED');
233 }; 231 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698