OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 util = {}; | 5 var util = {}; |
6 var embedder = {}; | 6 var embedder = {}; |
7 embedder.baseGuestURL = ''; | 7 embedder.baseGuestURL = ''; |
8 embedder.emptyGuestURL = ''; | 8 embedder.emptyGuestURL = ''; |
9 embedder.windowOpenGuestURL = ''; | 9 embedder.windowOpenGuestURL = ''; |
10 embedder.noReferrerGuestURL = ''; | 10 embedder.noReferrerGuestURL = ''; |
(...skipping 1403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1414 embedder.test.succeed(); | 1414 embedder.test.succeed(); |
1415 }); | 1415 }); |
1416 webview.setAttribute('src', embedder.closeSocketURL); | 1416 webview.setAttribute('src', embedder.closeSocketURL); |
1417 document.body.appendChild(webview); | 1417 document.body.appendChild(webview); |
1418 } | 1418 } |
1419 | 1419 |
1420 // This test verifies that the loadabort event fires as expected when an illegal | 1420 // This test verifies that the loadabort event fires as expected when an illegal |
1421 // chrome URL is provided. | 1421 // chrome URL is provided. |
1422 function testLoadAbortIllegalChromeURL() { | 1422 function testLoadAbortIllegalChromeURL() { |
1423 var webview = document.createElement('webview'); | 1423 var webview = document.createElement('webview'); |
1424 var onFirstLoadStop = function(e) { | |
1425 webview.removeEventListener('loadstop', onFirstLoadStop); | |
1426 webview.setAttribute('src', 'chrome://newtab'); | |
1427 }; | |
1428 webview.addEventListener('loadstop', onFirstLoadStop); | |
1429 webview.addEventListener('loadabort', function(e) { | 1424 webview.addEventListener('loadabort', function(e) { |
1430 embedder.test.assertEq('ERR_ABORTED', e.reason); | 1425 embedder.test.assertEq('ERR_ABORTED', e.reason); |
| 1426 }); |
| 1427 webview.addEventListener('loadstop', function(e) { |
| 1428 embedder.test.assertEq('about:blank', webview.src); |
1431 embedder.test.succeed(); | 1429 embedder.test.succeed(); |
1432 }); | 1430 }); |
1433 webview.setAttribute('src', 'about:blank'); | 1431 webview.src = 'chrome://newtab'; |
1434 document.body.appendChild(webview); | 1432 document.body.appendChild(webview); |
1435 } | 1433 } |
1436 | 1434 |
1437 function testLoadAbortIllegalFileURL() { | 1435 function testLoadAbortIllegalFileURL() { |
1438 var webview = document.createElement('webview'); | 1436 var webview = document.createElement('webview'); |
1439 webview.addEventListener('loadabort', function(e) { | 1437 webview.addEventListener('loadabort', function(e) { |
1440 embedder.test.assertEq('ERR_ABORTED', e.reason); | 1438 embedder.test.assertEq('ERR_ABORTED', e.reason); |
| 1439 }); |
| 1440 webview.addEventListener('loadstop', function(e) { |
| 1441 embedder.test.assertEq('about:blank', webview.src); |
1441 embedder.test.succeed(); | 1442 embedder.test.succeed(); |
1442 }); | 1443 }); |
1443 webview.setAttribute('src', 'file://foo'); | 1444 webview.src = 'file://foo'; |
1444 document.body.appendChild(webview); | 1445 document.body.appendChild(webview); |
1445 } | 1446 } |
1446 | 1447 |
1447 function testLoadAbortIllegalJavaScriptURL() { | 1448 function testLoadAbortIllegalJavaScriptURL() { |
1448 var webview = document.createElement('webview'); | 1449 var webview = document.createElement('webview'); |
1449 webview.addEventListener('loadabort', function(e) { | 1450 webview.addEventListener('loadabort', function(e) { |
1450 embedder.test.assertEq('ERR_ABORTED', e.reason); | 1451 embedder.test.assertEq('ERR_ABORTED', e.reason); |
| 1452 }); |
| 1453 webview.addEventListener('loadstop', function(e) { |
| 1454 embedder.test.assertEq('about:blank', webview.src); |
1451 embedder.test.succeed(); | 1455 embedder.test.succeed(); |
1452 }); | 1456 }); |
1453 webview.setAttribute('src', 'javascript:void(document.bgColor="#0000FF")'); | 1457 webview.setAttribute('src', 'javascript:void(document.bgColor="#0000FF")'); |
1454 document.body.appendChild(webview); | 1458 document.body.appendChild(webview); |
1455 } | 1459 } |
1456 | 1460 |
1457 // Verifies that navigating to invalid URL (e.g. 'http:') doesn't cause a crash. | 1461 // Verifies that navigating to invalid URL (e.g. 'http:') doesn't cause a crash. |
1458 function testLoadAbortInvalidNavigation() { | 1462 function testLoadAbortInvalidNavigation() { |
1459 var webview = document.createElement('webview'); | 1463 var webview = document.createElement('webview'); |
1460 var validSchemeWithEmptyURL = 'http:'; | |
1461 webview.addEventListener('loadabort', function(e) { | 1464 webview.addEventListener('loadabort', function(e) { |
1462 embedder.test.assertEq('ERR_ABORTED', e.reason); | 1465 embedder.test.assertEq('ERR_ABORTED', e.reason); |
1463 embedder.test.assertEq('', e.url); | 1466 embedder.test.assertEq('', e.url); |
| 1467 }); |
| 1468 webview.addEventListener('loadstop', function(e) { |
| 1469 embedder.test.assertEq('about:blank', webview.src); |
1464 embedder.test.succeed(); | 1470 embedder.test.succeed(); |
1465 }); | 1471 }); |
1466 webview.addEventListener('exit', function(e) { | 1472 webview.addEventListener('exit', function(e) { |
1467 // We should not crash. | 1473 // We should not crash. |
1468 embedder.test.fail(); | 1474 embedder.test.fail(); |
1469 }); | 1475 }); |
1470 webview.setAttribute('src', validSchemeWithEmptyURL); | 1476 webview.src = 'http:'; |
1471 document.body.appendChild(webview); | 1477 document.body.appendChild(webview); |
1472 } | 1478 } |
1473 | 1479 |
1474 // Verifies that navigation to a URL that is valid but not web-safe or | 1480 // Verifies that navigation to a URL that is valid but not web-safe or |
1475 // pseudo-scheme fires loadabort and doesn't cause a crash. | 1481 // pseudo-scheme fires loadabort and doesn't cause a crash. |
1476 function testLoadAbortNonWebSafeScheme() { | 1482 function testLoadAbortNonWebSafeScheme() { |
1477 var webview = document.createElement('webview'); | 1483 var webview = document.createElement('webview'); |
1478 var chromeGuestURL = 'chrome-guest://abc123'; | 1484 var chromeGuestURL = 'chrome-guest://abc123/'; |
1479 webview.addEventListener('loadabort', function(e) { | 1485 webview.addEventListener('loadabort', function(e) { |
1480 embedder.test.assertEq('ERR_ABORTED', e.reason); | 1486 embedder.test.assertEq('ERR_ABORTED', e.reason); |
1481 embedder.test.assertEq('chrome-guest://abc123/', e.url); | 1487 embedder.test.assertEq(chromeGuestURL, e.url); |
| 1488 }); |
| 1489 webview.addEventListener('loadstop', function(e) { |
| 1490 embedder.test.assertEq('about:blank', webview.src); |
1482 embedder.test.succeed(); | 1491 embedder.test.succeed(); |
1483 }); | 1492 }); |
1484 webview.addEventListener('exit', function(e) { | 1493 webview.addEventListener('exit', function(e) { |
1485 // We should not crash. | 1494 // We should not crash. |
1486 embedder.test.fail(); | 1495 embedder.test.fail(); |
1487 }); | 1496 }); |
1488 webview.setAttribute('src', chromeGuestURL); | 1497 webview.src = chromeGuestURL; |
1489 document.body.appendChild(webview); | 1498 document.body.appendChild(webview); |
1490 }; | 1499 }; |
1491 | 1500 |
1492 // This test verifies that the reload method on webview functions as expected. | 1501 // This test verifies that the reload method on webview functions as expected. |
1493 function testReload() { | 1502 function testReload() { |
1494 var triggerNavUrl = 'data:text/html,trigger navigation'; | 1503 var triggerNavUrl = 'data:text/html,trigger navigation'; |
1495 var webview = document.createElement('webview'); | 1504 var webview = document.createElement('webview'); |
1496 | 1505 |
1497 var loadCommitCount = 0; | 1506 var loadCommitCount = 0; |
1498 webview.addEventListener('loadstop', function(e) { | 1507 webview.addEventListener('loadstop', function(e) { |
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2134 'testFindAPI_findupdate': testFindAPI, | 2143 'testFindAPI_findupdate': testFindAPI, |
2135 'testLoadDataAPI': testLoadDataAPI | 2144 'testLoadDataAPI': testLoadDataAPI |
2136 }; | 2145 }; |
2137 | 2146 |
2138 onload = function() { | 2147 onload = function() { |
2139 chrome.test.getConfig(function(config) { | 2148 chrome.test.getConfig(function(config) { |
2140 embedder.setUp_(config); | 2149 embedder.setUp_(config); |
2141 chrome.test.sendMessage("Launched"); | 2150 chrome.test.sendMessage("Launched"); |
2142 }); | 2151 }); |
2143 }; | 2152 }; |
OLD | NEW |