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

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: 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
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..60ff1fe25d7e221b700dd42e2cb5d91486ebb1b6 100644
--- a/extensions/test/data/web_view/apitest/main.js
+++ b/extensions/test/data/web_view/apitest/main.js
@@ -1549,6 +1549,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;
lfg 2014/10/08 17:23:31 This needs to be defined on top of this file.
Fady Samuel 2014/10/08 19:18:50 Done.
+ document.body.appendChild(webview);
+}
+
function testWebRequestAPIExistence() {
var apiPropertiesToCheck = [
// Declarative WebRequest API.

Powered by Google App Engine
This is Rietveld 408576698