76 lines
3.3 KiB
HTML
76 lines
3.3 KiB
HTML
<!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> |