| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <title>Test for setting document.location.hostname to unaccepted values</title> |
| </head> |
| <body> |
| <pre id="pre"></pre> |
| <script> |
| // This function will be redefined as the test cases get executed |
| var testCaseOnload = function() { |
| runOneTestThatShouldNotBeAccepted(0); |
| }; |
| |
| var iframeDocument; |
| function iframeOnload() { |
| iframeDocument = document.getElementById("targetFrame").contentDocument; |
| testCaseOnload(); |
| } |
| |
| function log(s) { |
| document.getElementById("pre").appendChild(document.createTextNode(s)); |
| } |
| |
| function runOneTestThatShouldNotBeAccepted(testIndex) { |
| var testCasesThatShouldNotBeAccepted = [ |
| { hostString : 'icl' + '\uf877' + 'oud.com', description : "'icl' + '\\uf877' + 'oud.com'" } |
| ,{ hostString : 'icloud.com:-1', description : false } |
| ,{ hostString : 'icloud.com:11c', description : false } |
| ,{ hostString : 'icloud.com:11', description : false } |
| ,{ hostString : 'icloud.com:80:', description : false } |
| ,{ hostString : 'icloud.com:80:80', description : false } |
| ,{ hostString : 'icloud.com:', description : false } |
| ,{ hostString : ':80', description : false } |
| ,{ hostString : ':', description : false } |
| ]; |
| |
| if (testIndex >= testCasesThatShouldNotBeAccepted.length) { |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } else { |
| // Prepare for next test case by setting testCaseOnload to load the test case |
| // and then load the simple HTML file that says "Before" |
| testCaseOnload = function () { |
| |
| // Prepare test case execution by first setting testCaseOnload to check |
| // the test outcome and then load set the iframe's document.location.hostname |
| testCaseOnload = function(currentTestIndex) { |
| return function () { |
| if (iframeDocument.location.host == document.location.host) { |
| var currentCase = testCasesThatShouldNotBeAccepted[currentTestIndex], |
| description = (currentCase.description ? currentCase.description : currentCase.hostString); |
| log("PASS: " + description + " was not accepted.\n"); |
| runOneTestThatShouldNotBeAccepted(currentTestIndex + 1); |
| } else { |
| // Fails may very well become 404s so this log message might not be triggered |
| log("FAIL: " + description + " was accepted, or at least the iframeDocument.location.host had changed to " + iframeDocument.location.host + "\n"); |
| } |
| }; |
| }(testIndex); |
| |
| iframeDocument.location.hostname = testCasesThatShouldNotBeAccepted[testIndex].hostString; |
| }; |
| |
| iframeDocument.location = "./resources/set-document-location-iframe.html"; |
| } |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| </script> |
| <iframe id="targetFrame" src="resources/set-document-location-iframe.html" onload="iframeOnload()"></iframe> |
| </body> |
| </html> |