diff options
author | fsamuel <fsamuel@chromium.org> | 2014-10-09 19:40:58 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-10 02:41:44 +0000 |
commit | b4110230c811dd23cc336c9d679c6c3d13a64440 (patch) | |
tree | b6bee44f0d2e3c096e4ed934c063c6ce13077bab /extensions/test | |
parent | e20e3b27eda108409b5b1005af1dd988264efec7 (diff) | |
download | chromium_src-b4110230c811dd23cc336c9d679c6c3d13a64440.zip chromium_src-b4110230c811dd23cc336c9d679c6c3d13a64440.tar.gz chromium_src-b4110230c811dd23cc336c9d679c6c3d13a64440.tar.bz2 |
<webview>: Add additional WebRequest API test coverage.
This CL adds a test which verifies that we read and change HTTP headers.
BUG=352293
TBR=rockot@chromium.org
Review URL: https://codereview.chromium.org/640603005
Cr-Commit-Position: refs/heads/master@{#299047}
Diffstat (limited to 'extensions/test')
-rw-r--r-- | extensions/test/data/web_view/apitest/main.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/extensions/test/data/web_view/apitest/main.js b/extensions/test/data/web_view/apitest/main.js index 29d6920..1287723 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 }; |