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

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 embedder.baseGuestURL = '';
lazyboy 2014/10/06 16:21:21 I'd keep these two as they make things readable, i
lfg 2014/10/06 16:53:18 Done.
8 embedder.guestURL = '';
9 7
10 // Sends a message to WebViewTest denoting it is done and test 8 // Sends a message to WebViewTest denoting it is done and test
11 // has failed. 9 // has failed.
12 embedder.failTest = function(msg) { 10 embedder.failTest = function(msg) {
13 window.console.log('test failure, reason: ' + msg); 11 window.console.warn('test failure, reason: ' + msg);
14 chrome.test.sendMessage('TEST_FAILED'); 12 chrome.test.sendMessage('TEST_FAILED');
15 }; 13 };
16 14
17 // Sends a message to WebViewTest denoting it is done and test 15 // Sends a message to WebViewTest denoting it is done and test
18 // has succeeded. 16 // has succeeded.
19 embedder.maybePassTest = function() { 17 embedder.maybePassTest = function() {
20 window.console.log('test passed');
21 chrome.test.sendMessage('TEST_PASSED'); 18 chrome.test.sendMessage('TEST_PASSED');
22 }; 19 };
23 20
24 /** @private */ 21 /** @private */
25 embedder.setUpGuest_ = function() { 22 embedder.setUpGuest_ = function() {
26 document.querySelector('#webview-tag-container').innerHTML = 23 document.querySelector('#webview-tag-container').innerHTML =
27 '<webview style="width: 100px; height: 100px;"' + 24 '<webview style="width: 100px; height: 100px;"' +
28 ' src="' + embedder.guestURL + '"' + 25 ' src="' + embedder.guestURL + '"' +
29 '></webview>'; 26 '></webview>';
30 var webview = document.querySelector('webview'); 27 var webview = document.querySelector('webview');
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 }; 127 };
131 var onPermissionRequest2 = function(e) { 128 var onPermissionRequest2 = function(e) {
132 checkAndCall(e); 129 checkAndCall(e);
133 }; 130 };
134 webview.addEventListener('permissionrequest', onPermissionRequest1); 131 webview.addEventListener('permissionrequest', onPermissionRequest1);
135 webview.addEventListener('permissionrequest', onPermissionRequest2); 132 webview.addEventListener('permissionrequest', onPermissionRequest2);
136 133
137 embedder.setUpLoadStop_(webview, 'test1'); 134 embedder.setUpLoadStop_(webview, 'test1');
138 }; 135 };
139 136
137 embedder.tests.testAllowAsync = function() {
138 var webview = embedder.setUpGuest_();
139 if (!webview) {
140 return;
141 }
142
143 var onPermissionRequest = function(e) {
144 if (!embedder.assertCorrectMediaEvent_(e)) {
145 return;
146 }
147
148 e.preventDefault();
149 // Decide asynchronously.
150 window.setTimeout(function() {
151 e.request.allow();
152 embedder.maybePassTest();
153 }, 0);
154 };
155 webview.addEventListener('permissionrequest', onPermissionRequest);
156
157 embedder.setUpLoadStop_(webview, 'test1');
158 };
159
140 embedder.tests.testAllowTwice = function() { 160 embedder.tests.testAllowTwice = function() {
141 var webview = embedder.setUpGuest_(); 161 var webview = embedder.setUpGuest_();
142 if (!webview) { 162 if (!webview) {
143 return; 163 return;
144 } 164 }
145 165
146 var calledAllow = false; 166 var calledAllow = false;
147 var callbackCount = 0; 167 var callbackCount = 0;
148 var exceptionCount = 0; 168 var exceptionCount = 0;
149 var checkAndCall = function(e) { 169 var checkAndCall = function(e) {
(...skipping 23 matching lines...) Expand all
173 }; 193 };
174 var onPermissionRequest2 = function(e) { 194 var onPermissionRequest2 = function(e) {
175 checkAndCall(e); 195 checkAndCall(e);
176 }; 196 };
177 webview.addEventListener('permissionrequest', onPermissionRequest1); 197 webview.addEventListener('permissionrequest', onPermissionRequest1);
178 webview.addEventListener('permissionrequest', onPermissionRequest2); 198 webview.addEventListener('permissionrequest', onPermissionRequest2);
179 199
180 embedder.setUpLoadStop_(webview, 'test1'); 200 embedder.setUpLoadStop_(webview, 'test1');
181 }; 201 };
182 202
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 = { 203 embedder.tests.list = {
207 'testAllow': embedder.tests.testAllow, 204 'testAllow': embedder.tests.testAllow,
208 'testAllowAndThenDeny': embedder.tests.testAllowAndThenDeny, 205 'testAllowAndThenDeny': embedder.tests.testAllowAndThenDeny,
209 'testAllowTwice': embedder.tests.testAllowTwice, 206 'testAllowAsync': embedder.tests.testAllowAsync,
210 'testAllowAsync': embedder.tests.testAllowAsync 207 'testAllowTwice': embedder.tests.testAllowTwice
211 }; 208 };
212 209
213 // Entry point for test, called by WebViewTest. 210 // Entry point for test, called by WebViewTest.
214 function startAllowTest(testName) { 211 function runTest(testName) {
215 chrome.test.getConfig(function(config) { 212 chrome.test.getConfig(function(config) {
216 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; 213 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port;
217 embedder.guestURL = embedder.baseGuestURL + 214 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); 215 chrome.test.log('Guest url is: ' + embedder.guestURL);
221 216
222 var testFunction = embedder.tests.list[testName]; 217 var testFunction = embedder.tests.list[testName];
223 if (!testFunction) { 218 if (!testFunction) {
224 embedder.failTest('No such test: ' + testName); 219 embedder.failTest('No such test: ' + testName);
225 return; 220 return;
226 } 221 }
227 testFunction(); 222 testFunction();
228 }); 223 });
229 } 224 }
230 225
231 onload = function() { 226 onload = function() {
232 chrome.test.sendMessage('Launched'); 227 chrome.test.sendMessage('LAUNCHED');
233 }; 228 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698