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

Side by Side Diff: chrome/test/data/extensions/platform_apps/web_view/shim/main.js

Issue 640603005: <webview>: Add additional WebRequest API test coverage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix appshell test 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 (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
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
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
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 };
OLDNEW
« no previous file with comments | « chrome/browser/apps/web_view_browsertest.cc ('k') | extensions/browser/guest_view/web_view/web_view_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698