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.tests = {}; | 14 embedder.tests = {}; |
15 | 15 |
16 embedder.setUp_ = function(config) { | 16 embedder.setUp_ = function(config) { |
17 if (!config || !config.testServer) { | 17 if (!config || !config.testServer) { |
18 return; | 18 return; |
19 } | 19 } |
20 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; | 20 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; |
21 embedder.emptyGuestURL = embedder.baseGuestURL + | 21 embedder.emptyGuestURL = embedder.baseGuestURL + |
22 '/extensions/platform_apps/web_view/shim/empty_guest.html'; | 22 '/extensions/platform_apps/web_view/shim/empty_guest.html'; |
23 embedder.windowOpenGuestURL = embedder.baseGuestURL + | 23 embedder.windowOpenGuestURL = embedder.baseGuestURL + |
24 '/extensions/platform_apps/web_view/shim/guest.html'; | 24 '/extensions/platform_apps/web_view/shim/guest.html'; |
25 embedder.noReferrerGuestURL = embedder.baseGuestURL + | 25 embedder.noReferrerGuestURL = embedder.baseGuestURL + |
26 '/extensions/platform_apps/web_view/shim/guest_noreferrer.html'; | 26 '/extensions/platform_apps/web_view/shim/guest_noreferrer.html'; |
| 27 embedder.detectUserAgentURL = embedder.baseGuestURL + '/detect-user-agent'; |
27 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect'; | 28 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect'; |
28 embedder.redirectGuestURLDest = embedder.baseGuestURL + | 29 embedder.redirectGuestURLDest = embedder.baseGuestURL + |
29 '/extensions/platform_apps/web_view/shim/guest_redirect.html'; | 30 '/extensions/platform_apps/web_view/shim/guest_redirect.html'; |
30 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket'; | 31 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket'; |
31 embedder.testImageBaseURL = embedder.baseGuestURL + | 32 embedder.testImageBaseURL = embedder.baseGuestURL + |
32 '/extensions/platform_apps/web_view/shim/'; | 33 '/extensions/platform_apps/web_view/shim/'; |
33 embedder.virtualURL = 'http://virtualurl/'; | 34 embedder.virtualURL = 'http://virtualurl/'; |
34 }; | 35 }; |
35 | 36 |
36 window.runTest = function(testName) { | 37 window.runTest = function(testName) { |
(...skipping 1039 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1076 // webview. | 1077 // webview. |
1077 function testWebRequestAPI() { | 1078 function testWebRequestAPI() { |
1078 var webview = new WebView(); | 1079 var webview = new WebView(); |
1079 webview.request.onBeforeRequest.addListener(function(e) { | 1080 webview.request.onBeforeRequest.addListener(function(e) { |
1080 embedder.test.succeed(); | 1081 embedder.test.succeed(); |
1081 }, { urls: ['<all_urls>']}) ; | 1082 }, { urls: ['<all_urls>']}) ; |
1082 webview.src = embedder.windowOpenGuestURL; | 1083 webview.src = embedder.windowOpenGuestURL; |
1083 document.body.appendChild(webview); | 1084 document.body.appendChild(webview); |
1084 } | 1085 } |
1085 | 1086 |
| 1087 // This test verifies that the WebRequest API onBeforeSendHeaders event fires on |
| 1088 // webview and supports headers. This tests verifies that we can modify HTTP |
| 1089 // headers via the WebRequest API and those modified headers will be sent to the |
| 1090 // HTTP server. |
| 1091 function testWebRequestAPIWithHeaders() { |
| 1092 var webview = new WebView(); |
| 1093 var requestFilter = { |
| 1094 urls: ['<all_urls>'] |
| 1095 }; |
| 1096 var extraInfoSpec = ['requestHeaders', 'blocking']; |
| 1097 webview.request.onBeforeSendHeaders.addListener(function(details) { |
| 1098 var headers = details.requestHeaders; |
| 1099 for( var i = 0, l = headers.length; i < l; ++i ) { |
| 1100 if (headers[i].name == 'User-Agent') { |
| 1101 headers[i].value = 'foobar'; |
| 1102 break; |
| 1103 } |
| 1104 } |
| 1105 var blockingResponse = {}; |
| 1106 blockingResponse.requestHeaders = headers; |
| 1107 return blockingResponse; |
| 1108 }, requestFilter, extraInfoSpec); |
| 1109 |
| 1110 var loadstartCalled = false; |
| 1111 webview.addEventListener('loadstart', function(e) { |
| 1112 embedder.test.assertTrue(e.isTopLevel); |
| 1113 embedder.test.assertEq(embedder.detectUserAgentURL, e.url); |
| 1114 loadstartCalled = true; |
| 1115 }); |
| 1116 |
| 1117 webview.addEventListener('loadredirect', function(e) { |
| 1118 embedder.test.assertTrue(e.isTopLevel); |
| 1119 embedder.test.assertEq(embedder.detectUserAgentURL, |
| 1120 e.oldUrl.replace('127.0.0.1', 'localhost')); |
| 1121 embedder.test.assertEq(embedder.redirectGuestURLDest, |
| 1122 e.newUrl.replace('127.0.0.1', 'localhost')); |
| 1123 if (loadstartCalled) { |
| 1124 embedder.test.succeed(); |
| 1125 } else { |
| 1126 embedder.test.fail(); |
| 1127 } |
| 1128 }); |
| 1129 webview.src = embedder.detectUserAgentURL; |
| 1130 document.body.appendChild(webview); |
| 1131 } |
| 1132 |
1086 // This test verifies that the basic use cases of the declarative WebRequest API | 1133 // This test verifies that the basic use cases of the declarative WebRequest API |
1087 // work as expected. This test demonstrates that rules can be added prior to | 1134 // work as expected. This test demonstrates that rules can be added prior to |
1088 // navigation and attachment. | 1135 // navigation and attachment. |
1089 // 1. It adds a rule to block URLs that contain guest. | 1136 // 1. It adds a rule to block URLs that contain guest. |
1090 // 2. It attempts to navigate to a guest.html page. | 1137 // 2. It attempts to navigate to a guest.html page. |
1091 // 3. It detects the appropriate loadabort message. | 1138 // 3. It detects the appropriate loadabort message. |
1092 // 4. It removes the rule blocking the page and reloads. | 1139 // 4. It removes the rule blocking the page and reloads. |
1093 // 5. The page loads successfully. | 1140 // 5. The page loads successfully. |
1094 function testDeclarativeWebRequestAPI() { | 1141 function testDeclarativeWebRequestAPI() { |
1095 var step = 1; | 1142 var step = 1; |
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1969 'testPluginLoadPermission': testPluginLoadPermission, | 2016 'testPluginLoadPermission': testPluginLoadPermission, |
1970 'testNewWindow': testNewWindow, | 2017 'testNewWindow': testNewWindow, |
1971 'testNewWindowTwoListeners': testNewWindowTwoListeners, | 2018 'testNewWindowTwoListeners': testNewWindowTwoListeners, |
1972 'testNewWindowNoPreventDefault': testNewWindowNoPreventDefault, | 2019 'testNewWindowNoPreventDefault': testNewWindowNoPreventDefault, |
1973 'testNewWindowNoReferrerLink': testNewWindowNoReferrerLink, | 2020 'testNewWindowNoReferrerLink': testNewWindowNoReferrerLink, |
1974 'testContentLoadEvent': testContentLoadEvent, | 2021 'testContentLoadEvent': testContentLoadEvent, |
1975 'testDeclarativeWebRequestAPI': testDeclarativeWebRequestAPI, | 2022 'testDeclarativeWebRequestAPI': testDeclarativeWebRequestAPI, |
1976 'testDeclarativeWebRequestAPISendMessage': | 2023 'testDeclarativeWebRequestAPISendMessage': |
1977 testDeclarativeWebRequestAPISendMessage, | 2024 testDeclarativeWebRequestAPISendMessage, |
1978 'testWebRequestAPI': testWebRequestAPI, | 2025 'testWebRequestAPI': testWebRequestAPI, |
| 2026 'testWebRequestAPIWithHeaders': testWebRequestAPIWithHeaders, |
1979 'testWebRequestAPIGoogleProperty': testWebRequestAPIGoogleProperty, | 2027 'testWebRequestAPIGoogleProperty': testWebRequestAPIGoogleProperty, |
1980 'testWebRequestListenerSurvivesReparenting': | 2028 'testWebRequestListenerSurvivesReparenting': |
1981 testWebRequestListenerSurvivesReparenting, | 2029 testWebRequestListenerSurvivesReparenting, |
1982 'testGetProcessId': testGetProcessId, | 2030 'testGetProcessId': testGetProcessId, |
1983 'testHiddenBeforeNavigation': testHiddenBeforeNavigation, | 2031 'testHiddenBeforeNavigation': testHiddenBeforeNavigation, |
1984 'testLoadStartLoadRedirect': testLoadStartLoadRedirect, | 2032 'testLoadStartLoadRedirect': testLoadStartLoadRedirect, |
1985 'testLoadAbortChromeExtensionURLWrongPartition': | 2033 'testLoadAbortChromeExtensionURLWrongPartition': |
1986 testLoadAbortChromeExtensionURLWrongPartition, | 2034 testLoadAbortChromeExtensionURLWrongPartition, |
1987 'testLoadAbortEmptyResponse': testLoadAbortEmptyResponse, | 2035 'testLoadAbortEmptyResponse': testLoadAbortEmptyResponse, |
1988 'testLoadAbortIllegalChromeURL': testLoadAbortIllegalChromeURL, | 2036 'testLoadAbortIllegalChromeURL': testLoadAbortIllegalChromeURL, |
(...skipping 17 matching lines...) Expand all Loading... |
2006 'testFindAPI_findupdate': testFindAPI, | 2054 'testFindAPI_findupdate': testFindAPI, |
2007 'testLoadDataAPI': testLoadDataAPI | 2055 'testLoadDataAPI': testLoadDataAPI |
2008 }; | 2056 }; |
2009 | 2057 |
2010 onload = function() { | 2058 onload = function() { |
2011 chrome.test.getConfig(function(config) { | 2059 chrome.test.getConfig(function(config) { |
2012 embedder.setUp_(config); | 2060 embedder.setUp_(config); |
2013 chrome.test.sendMessage("Launched"); | 2061 chrome.test.sendMessage("Launched"); |
2014 }); | 2062 }); |
2015 }; | 2063 }; |
OLD | NEW |