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

Side by Side 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 embedder = {}; 5 var embedder = {};
6 6
7 // TODO(lfg) Move these functions to a common js. 7 // TODO(lfg) Move these functions to a common js.
8 embedder.setUp_ = function(config) { 8 embedder.setUp_ = function(config) {
9 if (!config || !config.testServer) { 9 if (!config || !config.testServer) {
10 return; 10 return;
11 } 11 }
12 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; 12 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port;
13 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket'; 13 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket';
14 embedder.emptyGuestURL = embedder.baseGuestURL + '/empty_guest.html'; 14 embedder.emptyGuestURL = embedder.baseGuestURL + '/empty_guest.html';
15 embedder.noReferrerGuestURL = 15 embedder.noReferrerGuestURL =
16 embedder.baseGuestURL + '/guest_noreferrer.html'; 16 embedder.baseGuestURL + '/guest_noreferrer.html';
17 embedder.detectUserAgentURL = embedder.baseGuestURL + '/detect-user-agent';
17 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect'; 18 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect';
18 embedder.redirectGuestURLDest = 19 embedder.redirectGuestURLDest =
19 embedder.baseGuestURL + '/guest_redirect.html'; 20 embedder.baseGuestURL + '/guest_redirect.html';
20 embedder.windowOpenGuestURL = embedder.baseGuestURL + '/guest.html'; 21 embedder.windowOpenGuestURL = embedder.baseGuestURL + '/guest.html';
21 }; 22 };
22 23
23 window.runTest = function(testName) { 24 window.runTest = function(testName) {
24 if (!embedder.test.testList[testName]) { 25 if (!embedder.test.testList[testName]) {
25 window.console.warn('Incorrect testName: ' + testName); 26 window.console.warn('Incorrect testName: ' + testName);
26 embedder.test.fail(); 27 embedder.test.fail();
(...skipping 1515 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 // webview. 1543 // webview.
1543 function testWebRequestAPI() { 1544 function testWebRequestAPI() {
1544 var webview = new WebView(); 1545 var webview = new WebView();
1545 webview.request.onBeforeRequest.addListener(function(e) { 1546 webview.request.onBeforeRequest.addListener(function(e) {
1546 embedder.test.succeed(); 1547 embedder.test.succeed();
1547 }, { urls: ['<all_urls>']}) ; 1548 }, { urls: ['<all_urls>']}) ;
1548 webview.src = embedder.windowOpenGuestURL; 1549 webview.src = embedder.windowOpenGuestURL;
1549 document.body.appendChild(webview); 1550 document.body.appendChild(webview);
1550 } 1551 }
1551 1552
1553 // This test verifies that the WebRequest API onBeforeSendHeaders event fires on
1554 // webview and supports headers. This tests verifies that we can modify HTTP
1555 // headers via the WebRequest API and those modified headers will be sent to the
1556 // HTTP server.
1557 function testWebRequestAPIWithHeaders() {
1558 var webview = new WebView();
1559 var requestFilter = {
1560 urls: ['<all_urls>']
1561 };
1562 var extraInfoSpec = ['requestHeaders', 'blocking'];
1563 webview.request.onBeforeSendHeaders.addListener(function(details) {
1564 var headers = details.requestHeaders;
1565 for( var i = 0, l = headers.length; i < l; ++i ) {
1566 if (headers[i].name == 'User-Agent') {
1567 headers[i].value = 'foobar';
1568 break;
1569 }
1570 }
1571 var blockingResponse = {};
1572 blockingResponse.requestHeaders = headers;
1573 return blockingResponse;
1574 }, requestFilter, extraInfoSpec);
1575
1576 var loadstartCalled = false;
1577 webview.addEventListener('loadstart', function(e) {
1578 embedder.test.assertTrue(e.isTopLevel);
1579 embedder.test.assertEq(embedder.detectUserAgentURL, e.url);
1580 loadstartCalled = true;
1581 });
1582
1583 webview.addEventListener('loadredirect', function(e) {
1584 embedder.test.assertTrue(e.isTopLevel);
1585 embedder.test.assertEq(embedder.detectUserAgentURL,
1586 e.oldUrl.replace('127.0.0.1', 'localhost'));
1587 embedder.test.assertEq(embedder.redirectGuestURLDest,
1588 e.newUrl.replace('127.0.0.1', 'localhost'));
1589 if (loadstartCalled) {
1590 embedder.test.succeed();
1591 } else {
1592 embedder.test.fail();
1593 }
1594 });
1595 webview.src = embedder.detectUserAgentURL;
1596 document.body.appendChild(webview);
1597 }
1598
1552 function testWebRequestAPIExistence() { 1599 function testWebRequestAPIExistence() {
1553 var apiPropertiesToCheck = [ 1600 var apiPropertiesToCheck = [
1554 // Declarative WebRequest API. 1601 // Declarative WebRequest API.
1555 'onMessage', 1602 'onMessage',
1556 'onRequest', 1603 'onRequest',
1557 // WebRequest API. 1604 // WebRequest API.
1558 'onBeforeRequest', 1605 'onBeforeRequest',
1559 'onBeforeSendHeaders', 1606 'onBeforeSendHeaders',
1560 'onSendHeaders', 1607 'onSendHeaders',
1561 'onHeadersReceived', 1608 'onHeadersReceived',
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1665 testPartitionRemovalAfterNavigationFails, 1712 testPartitionRemovalAfterNavigationFails,
1666 'testReassignSrcAttribute': testReassignSrcAttribute, 1713 'testReassignSrcAttribute': testReassignSrcAttribute,
1667 'testReload': testReload, 1714 'testReload': testReload,
1668 'testReloadAfterTerminate': testReloadAfterTerminate, 1715 'testReloadAfterTerminate': testReloadAfterTerminate,
1669 'testRemoveSrcAttribute': testRemoveSrcAttribute, 1716 'testRemoveSrcAttribute': testRemoveSrcAttribute,
1670 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, 1717 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation,
1671 'testRemoveWebviewOnExit': testRemoveWebviewOnExit, 1718 'testRemoveWebviewOnExit': testRemoveWebviewOnExit,
1672 'testResizeWebviewResizesContent': testResizeWebviewResizesContent, 1719 'testResizeWebviewResizesContent': testResizeWebviewResizesContent,
1673 'testTerminateAfterExit': testTerminateAfterExit, 1720 'testTerminateAfterExit': testTerminateAfterExit,
1674 'testWebRequestAPI': testWebRequestAPI, 1721 'testWebRequestAPI': testWebRequestAPI,
1722 'testWebRequestAPIWithHeaders': testWebRequestAPIWithHeaders,
1675 'testWebRequestAPIExistence': testWebRequestAPIExistence, 1723 'testWebRequestAPIExistence': testWebRequestAPIExistence,
1676 'testWebRequestAPIGoogleProperty': testWebRequestAPIGoogleProperty 1724 'testWebRequestAPIGoogleProperty': testWebRequestAPIGoogleProperty
1677 }; 1725 };
1678 1726
1679 onload = function() { 1727 onload = function() {
1680 chrome.test.getConfig(function(config) { 1728 chrome.test.getConfig(function(config) {
1681 embedder.setUp_(config); 1729 embedder.setUp_(config);
1682 chrome.test.sendMessage('LAUNCHED'); 1730 chrome.test.sendMessage('LAUNCHED');
1683 }); 1731 });
1684 }; 1732 };
OLDNEW
« 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