| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 }; |
| OLD | NEW |