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

Unified Diff: extensions/test/data/web_view/apitest/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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/guest_view/web_view/web_view_apitest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/test/data/web_view/apitest/main.js
diff --git a/extensions/test/data/web_view/apitest/main.js b/extensions/test/data/web_view/apitest/main.js
index 29d692009481a2f1ee019ba66eaa6c06166ce59c..1287723c26f0e1a008f9ad2ffe116983b063f07c 100644
--- a/extensions/test/data/web_view/apitest/main.js
+++ b/extensions/test/data/web_view/apitest/main.js
@@ -14,6 +14,7 @@ embedder.setUp_ = function(config) {
embedder.emptyGuestURL = embedder.baseGuestURL + '/empty_guest.html';
embedder.noReferrerGuestURL =
embedder.baseGuestURL + '/guest_noreferrer.html';
+ embedder.detectUserAgentURL = embedder.baseGuestURL + '/detect-user-agent';
embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect';
embedder.redirectGuestURLDest =
embedder.baseGuestURL + '/guest_redirect.html';
@@ -1549,6 +1550,52 @@ function testWebRequestAPI() {
document.body.appendChild(webview);
}
+// This test verifies that the WebRequest API onBeforeSendHeaders event fires on
+// webview and supports headers. This tests verifies that we can modify HTTP
+// headers via the WebRequest API and those modified headers will be sent to the
+// HTTP server.
+function testWebRequestAPIWithHeaders() {
+ var webview = new WebView();
+ var requestFilter = {
+ urls: ['<all_urls>']
+ };
+ var extraInfoSpec = ['requestHeaders', 'blocking'];
+ webview.request.onBeforeSendHeaders.addListener(function(details) {
+ var headers = details.requestHeaders;
+ for( var i = 0, l = headers.length; i < l; ++i ) {
+ if (headers[i].name == 'User-Agent') {
+ headers[i].value = 'foobar';
+ break;
+ }
+ }
+ var blockingResponse = {};
+ blockingResponse.requestHeaders = headers;
+ return blockingResponse;
+ }, requestFilter, extraInfoSpec);
+
+ var loadstartCalled = false;
+ webview.addEventListener('loadstart', function(e) {
+ embedder.test.assertTrue(e.isTopLevel);
+ embedder.test.assertEq(embedder.detectUserAgentURL, e.url);
+ loadstartCalled = true;
+ });
+
+ webview.addEventListener('loadredirect', function(e) {
+ embedder.test.assertTrue(e.isTopLevel);
+ embedder.test.assertEq(embedder.detectUserAgentURL,
+ e.oldUrl.replace('127.0.0.1', 'localhost'));
+ embedder.test.assertEq(embedder.redirectGuestURLDest,
+ e.newUrl.replace('127.0.0.1', 'localhost'));
+ if (loadstartCalled) {
+ embedder.test.succeed();
+ } else {
+ embedder.test.fail();
+ }
+ });
+ webview.src = embedder.detectUserAgentURL;
+ document.body.appendChild(webview);
+}
+
function testWebRequestAPIExistence() {
var apiPropertiesToCheck = [
// Declarative WebRequest API.
@@ -1672,6 +1719,7 @@ embedder.test.testList = {
'testResizeWebviewResizesContent': testResizeWebviewResizesContent,
'testTerminateAfterExit': testTerminateAfterExit,
'testWebRequestAPI': testWebRequestAPI,
+ 'testWebRequestAPIWithHeaders': testWebRequestAPIWithHeaders,
'testWebRequestAPIExistence': testWebRequestAPIExistence,
'testWebRequestAPIGoogleProperty': testWebRequestAPIGoogleProperty
};
« no previous file with comments | « extensions/browser/guest_view/web_view/web_view_apitest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698