| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 }; |
| OLD | NEW |