OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 util = {}; | 5 var util = {}; |
6 var embedder = {}; | 6 var embedder = {}; |
7 embedder.baseGuestURL = ''; | 7 embedder.baseGuestURL = ''; |
8 embedder.emptyGuestURL = ''; | 8 embedder.emptyGuestURL = ''; |
9 embedder.windowOpenGuestURL = ''; | 9 embedder.windowOpenGuestURL = ''; |
10 embedder.noReferrerGuestURL = ''; | 10 embedder.noReferrerGuestURL = ''; |
11 embedder.redirectGuestURL = ''; | 11 embedder.redirectGuestURL = ''; |
12 embedder.redirectGuestURLDest = ''; | 12 embedder.redirectGuestURLDest = ''; |
13 embedder.closeSocketURL = ''; | 13 embedder.closeSocketURL = ''; |
14 embedder.extensionId = ''; | |
14 embedder.tests = {}; | 15 embedder.tests = {}; |
15 | 16 |
16 embedder.setUp_ = function(config) { | 17 embedder.setUp_ = function(config) { |
17 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; | 18 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; |
18 embedder.emptyGuestURL = embedder.baseGuestURL + | 19 embedder.emptyGuestURL = embedder.baseGuestURL + |
19 '/extensions/platform_apps/web_view/shim/empty_guest.html'; | 20 '/extensions/platform_apps/web_view/shim/empty_guest.html'; |
20 embedder.windowOpenGuestURL = embedder.baseGuestURL + | 21 embedder.windowOpenGuestURL = embedder.baseGuestURL + |
21 '/extensions/platform_apps/web_view/shim/guest.html'; | 22 '/extensions/platform_apps/web_view/shim/guest.html'; |
22 embedder.noReferrerGuestURL = embedder.baseGuestURL + | 23 embedder.noReferrerGuestURL = embedder.baseGuestURL + |
23 '/extensions/platform_apps/web_view/shim/guest_noreferrer.html'; | 24 '/extensions/platform_apps/web_view/shim/guest_noreferrer.html'; |
24 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect'; | 25 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect'; |
25 embedder.redirectGuestURLDest = embedder.baseGuestURL + | 26 embedder.redirectGuestURLDest = embedder.baseGuestURL + |
26 '/extensions/platform_apps/web_view/shim/guest_redirect.html'; | 27 '/extensions/platform_apps/web_view/shim/guest_redirect.html'; |
27 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket'; | 28 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket'; |
28 }; | 29 }; |
29 | 30 |
30 window.runTest = function(testName) { | 31 window.runTest = function(testName, extensionId) { |
32 embedder.extensionId = extensionId; | |
31 if (!embedder.test.testList[testName]) { | 33 if (!embedder.test.testList[testName]) { |
32 console.log('Incorrect testName: ' + testName); | 34 console.log('Incorrect testName: ' + testName); |
33 embedder.test.fail(); | 35 embedder.test.fail(); |
34 return; | 36 return; |
35 } | 37 } |
36 | 38 |
37 // Run the test. | 39 // Run the test. |
38 embedder.test.testList[testName](); | 40 embedder.test.testList[testName](); |
39 }; | 41 }; |
40 | 42 |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
292 // Check contentWindow. | 294 // Check contentWindow. |
293 embedder.test.assertEq('object', typeof webview.contentWindow); | 295 embedder.test.assertEq('object', typeof webview.contentWindow); |
294 embedder.test.assertEq('function', | 296 embedder.test.assertEq('function', |
295 typeof webview.contentWindow.postMessage); | 297 typeof webview.contentWindow.postMessage); |
296 embedder.test.succeed(); | 298 embedder.test.succeed(); |
297 }); | 299 }); |
298 webview.setAttribute('src', 'data:text/html,webview check api'); | 300 webview.setAttribute('src', 'data:text/html,webview check api'); |
299 document.body.appendChild(webview); | 301 document.body.appendChild(webview); |
300 } | 302 } |
301 | 303 |
304 // This test verifies that the loadstop event fires when loading a webview | |
305 // accessible resource from a partition that is privileged. | |
306 function testChromeExtensionURL() { | |
307 var localResource = 'chrome-extension://' + embedder.extensionId + | |
Matt Perry
2013/09/24 21:06:54
Does chrome.runtime.getURL() not work here?
Fady Samuel
2013/09/24 23:05:02
It does. I just didn't know it existed :P. Thanks!
| |
308 '/guest.html'; | |
309 var webview = document.createElement('webview'); | |
310 // foobar is a privileged partition according to the manifest file. | |
311 webview.partition = 'foobar'; | |
312 webview.addEventListener('loadabort', function(e) { | |
313 embedder.test.fail(); | |
314 }); | |
315 webview.addEventListener('loadstop', function(e) { | |
316 embedder.test.succeed(); | |
317 }); | |
318 webview.setAttribute('src', localResource); | |
319 document.body.appendChild(webview); | |
320 } | |
321 | |
302 function testWebRequestAPIExistence() { | 322 function testWebRequestAPIExistence() { |
303 var apiPropertiesToCheck = [ | 323 var apiPropertiesToCheck = [ |
304 'onBeforeRequest', | 324 'onBeforeRequest', |
305 'onBeforeSendHeaders', | 325 'onBeforeSendHeaders', |
306 'onSendHeaders', | 326 'onSendHeaders', |
307 'onHeadersReceived', | 327 'onHeadersReceived', |
308 'onAuthRequired', | 328 'onAuthRequired', |
309 'onBeforeRedirect', | 329 'onBeforeRedirect', |
310 'onResponseStarted', | 330 'onResponseStarted', |
311 'onCompleted', | 331 'onCompleted', |
(...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
875 e.newUrl.replace('127.0.0.1', 'localhost')); | 895 e.newUrl.replace('127.0.0.1', 'localhost')); |
876 if (loadstartCalled) { | 896 if (loadstartCalled) { |
877 embedder.test.succeed(); | 897 embedder.test.succeed(); |
878 } else { | 898 } else { |
879 embedder.test.fail(); | 899 embedder.test.fail(); |
880 } | 900 } |
881 }); | 901 }); |
882 document.body.appendChild(webview); | 902 document.body.appendChild(webview); |
883 } | 903 } |
884 | 904 |
905 // This test verifies that the loadabort event fires when loading a webview | |
906 // accessible resource from a partition that is not privileged. | |
907 function testLoadAbortChromeExtensionURLWrongPartition() { | |
908 var localResource = 'chrome-extension://' + embedder.extensionId + | |
909 '/guest.html'; | |
910 var webview = document.createElement('webview'); | |
911 webview.addEventListener('loadabort', function(e) { | |
912 embedder.test.assertEq('ERR_ADDRESS_UNREACHABLE', e.reason); | |
913 embedder.test.succeed(); | |
914 }); | |
915 webview.addEventListener('loadstop', function(e) { | |
916 embedder.test.fail(); | |
917 }); | |
918 webview.setAttribute('src', localResource); | |
919 document.body.appendChild(webview); | |
920 } | |
921 | |
885 // This test verifies that the loadabort event fires as expected and with the | 922 // This test verifies that the loadabort event fires as expected and with the |
886 // appropriate fields when an empty response is returned. | 923 // appropriate fields when an empty response is returned. |
887 function testLoadAbortEmptyResponse() { | 924 function testLoadAbortEmptyResponse() { |
888 var webview = document.createElement('webview'); | 925 var webview = document.createElement('webview'); |
889 webview.addEventListener('loadabort', function(e) { | 926 webview.addEventListener('loadabort', function(e) { |
890 embedder.test.assertEq('ERR_EMPTY_RESPONSE', e.reason); | 927 embedder.test.assertEq('ERR_EMPTY_RESPONSE', e.reason); |
891 embedder.test.succeed(); | 928 embedder.test.succeed(); |
892 }); | 929 }); |
893 webview.setAttribute('src', embedder.closeSocketURL); | 930 webview.setAttribute('src', embedder.closeSocketURL); |
894 document.body.appendChild(webview); | 931 document.body.appendChild(webview); |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1048 }); | 1085 }); |
1049 document.body.appendChild(webview); | 1086 document.body.appendChild(webview); |
1050 } | 1087 } |
1051 | 1088 |
1052 embedder.test.testList = { | 1089 embedder.test.testList = { |
1053 'testAutosizeAfterNavigation': testAutosizeAfterNavigation, | 1090 'testAutosizeAfterNavigation': testAutosizeAfterNavigation, |
1054 'testAutosizeBeforeNavigation': testAutosizeBeforeNavigation, | 1091 'testAutosizeBeforeNavigation': testAutosizeBeforeNavigation, |
1055 'testAutosizeRemoveAttributes': testAutosizeRemoveAttributes, | 1092 'testAutosizeRemoveAttributes': testAutosizeRemoveAttributes, |
1056 'testAutosizeWithPartialAttributes': testAutosizeWithPartialAttributes, | 1093 'testAutosizeWithPartialAttributes': testAutosizeWithPartialAttributes, |
1057 'testAPIMethodExistence': testAPIMethodExistence, | 1094 'testAPIMethodExistence': testAPIMethodExistence, |
1095 'testChromeExtensionURL': testChromeExtensionURL, | |
1058 'testWebRequestAPIExistence': testWebRequestAPIExistence, | 1096 'testWebRequestAPIExistence': testWebRequestAPIExistence, |
1059 'testEventName': testEventName, | 1097 'testEventName': testEventName, |
1060 'testOnEventProperties': testOnEventProperties, | 1098 'testOnEventProperties': testOnEventProperties, |
1061 'testLoadProgressEvent': testLoadProgressEvent, | 1099 'testLoadProgressEvent': testLoadProgressEvent, |
1062 'testDestroyOnEventListener': testDestroyOnEventListener, | 1100 'testDestroyOnEventListener': testDestroyOnEventListener, |
1063 'testCannotMutateEventName': testCannotMutateEventName, | 1101 'testCannotMutateEventName': testCannotMutateEventName, |
1064 'testPartitionRaisesException': testPartitionRaisesException, | 1102 'testPartitionRaisesException': testPartitionRaisesException, |
1065 'testExecuteScriptFail': testExecuteScriptFail, | 1103 'testExecuteScriptFail': testExecuteScriptFail, |
1066 'testExecuteScript': testExecuteScript, | 1104 'testExecuteScript': testExecuteScript, |
1067 'testTerminateAfterExit': testTerminateAfterExit, | 1105 'testTerminateAfterExit': testTerminateAfterExit, |
1068 'testAssignSrcAfterCrash': testAssignSrcAfterCrash, | 1106 'testAssignSrcAfterCrash': testAssignSrcAfterCrash, |
1069 'testNavOnConsecutiveSrcAttributeChanges': | 1107 'testNavOnConsecutiveSrcAttributeChanges': |
1070 testNavOnConsecutiveSrcAttributeChanges, | 1108 testNavOnConsecutiveSrcAttributeChanges, |
1071 'testNavOnSrcAttributeChange': testNavOnSrcAttributeChange, | 1109 'testNavOnSrcAttributeChange': testNavOnSrcAttributeChange, |
1072 'testReassignSrcAttribute': testReassignSrcAttribute, | 1110 'testReassignSrcAttribute': testReassignSrcAttribute, |
1073 'testRemoveSrcAttribute': testRemoveSrcAttribute, | 1111 'testRemoveSrcAttribute': testRemoveSrcAttribute, |
1074 'testBrowserPluginNotAllowed': testBrowserPluginNotAllowed, | 1112 'testBrowserPluginNotAllowed': testBrowserPluginNotAllowed, |
1075 'testNewWindow': testNewWindow, | 1113 'testNewWindow': testNewWindow, |
1076 'testNewWindowTwoListeners': testNewWindowTwoListeners, | 1114 'testNewWindowTwoListeners': testNewWindowTwoListeners, |
1077 'testNewWindowNoPreventDefault': testNewWindowNoPreventDefault, | 1115 'testNewWindowNoPreventDefault': testNewWindowNoPreventDefault, |
1078 'testNewWindowNoReferrerLink': testNewWindowNoReferrerLink, | 1116 'testNewWindowNoReferrerLink': testNewWindowNoReferrerLink, |
1079 'testContentLoadEvent': testContentLoadEvent, | 1117 'testContentLoadEvent': testContentLoadEvent, |
1080 'testWebRequestAPI': testWebRequestAPI, | 1118 'testWebRequestAPI': testWebRequestAPI, |
1081 'testWebRequestAPIGoogleProperty': testWebRequestAPIGoogleProperty, | 1119 'testWebRequestAPIGoogleProperty': testWebRequestAPIGoogleProperty, |
1082 'testWebRequestListenerSurvivesReparenting': | 1120 'testWebRequestListenerSurvivesReparenting': |
1083 testWebRequestListenerSurvivesReparenting, | 1121 testWebRequestListenerSurvivesReparenting, |
1084 'testGetProcessId': testGetProcessId, | 1122 'testGetProcessId': testGetProcessId, |
1085 'testLoadStartLoadRedirect': testLoadStartLoadRedirect, | 1123 'testLoadStartLoadRedirect': testLoadStartLoadRedirect, |
1124 'testLoadAbortChromeExtensionURLWrongPartition': | |
1125 testLoadAbortChromeExtensionURLWrongPartition, | |
1086 'testLoadAbortEmptyResponse': testLoadAbortEmptyResponse, | 1126 'testLoadAbortEmptyResponse': testLoadAbortEmptyResponse, |
1087 'testLoadAbortIllegalChromeURL': testLoadAbortIllegalChromeURL, | 1127 'testLoadAbortIllegalChromeURL': testLoadAbortIllegalChromeURL, |
1088 'testLoadAbortIllegalFileURL': testLoadAbortIllegalFileURL, | 1128 'testLoadAbortIllegalFileURL': testLoadAbortIllegalFileURL, |
1089 'testLoadAbortIllegalJavaScriptURL': testLoadAbortIllegalJavaScriptURL, | 1129 'testLoadAbortIllegalJavaScriptURL': testLoadAbortIllegalJavaScriptURL, |
1090 'testNavigationToExternalProtocol': testNavigationToExternalProtocol, | 1130 'testNavigationToExternalProtocol': testNavigationToExternalProtocol, |
1091 'testReload': testReload, | 1131 'testReload': testReload, |
1092 'testRemoveWebviewOnExit': testRemoveWebviewOnExit, | 1132 'testRemoveWebviewOnExit': testRemoveWebviewOnExit, |
1093 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, | 1133 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, |
1094 'testResizeWebviewResizesContent': testResizeWebviewResizesContent | 1134 'testResizeWebviewResizesContent': testResizeWebviewResizesContent |
1095 }; | 1135 }; |
1096 | 1136 |
1097 onload = function() { | 1137 onload = function() { |
1098 chrome.test.getConfig(function(config) { | 1138 chrome.test.getConfig(function(config) { |
1099 embedder.setUp_(config); | 1139 embedder.setUp_(config); |
1100 chrome.test.sendMessage("Launched"); | 1140 chrome.test.sendMessage("Launched"); |
1101 }); | 1141 }); |
1102 }; | 1142 }; |
OLD | NEW |