blob: 34b3177ad2892ef773d22998e8a76a6b078b07bd [file] [log] [blame]
<body>
<pre id="log"></pre>
<script>
function log(msg) {
document.getElementById("log").textContent += msg + "\n";
}
function getText(iframe) {
return iframe.contentDocument.documentElement.textContent;
}
var testIndex = 0;
function runTest(name, testFunction) {
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
var expectedText = "foo " + testIndex;
iframe.onerror = function() {
log(name + ' error ' + getText(iframe));
}
testFunction(iframe, expectedText);
var resultText = getText(iframe);
if (resultText == expectedText) {
log(' sync : ' + name);
iframe.parentNode.removeChild(iframe);
nextTest();
} else {
iframe.onload = function() {
log('ASYNC : ' + name);
iframe.parentNode.removeChild(iframe);
nextTest();
}
}
}
var tests = [
{ name: 'src = javascript:"content"', testFunction: function(iframe, expectedText) { iframe.src = 'javascript: "' + expectedText + '"'} },
{ name: 'src = data:text/html,content', testFunction: function(iframe, expectedText) { iframe.src = 'data:text/html,"' + expectedText + '"'} },
{ name: 'srcdoc = "content"', testFunction: function(iframe, expectedText) { iframe.src = 'data:text/html,"' + expectedText + '"'} },
];
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function nextTest() {
if (testIndex >= tests.length) {
log("done");
if (window.testRunner)
testRunner.notifyDone();
return;
}
var test = tests[testIndex++];
runTest(test.name, test.testFunction);
}
nextTest();
</script>