diff options
Diffstat (limited to 'parser/htmlparser/tests/mochitest/test_bug715739.html')
-rw-r--r-- | parser/htmlparser/tests/mochitest/test_bug715739.html | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/parser/htmlparser/tests/mochitest/test_bug715739.html b/parser/htmlparser/tests/mochitest/test_bug715739.html new file mode 100644 index 0000000000..914459c2ce --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_bug715739.html @@ -0,0 +1,88 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=715739 +--> +<head> + <meta charset="utf-8"> + <title>Test for Bug 715739</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body onload="tick()"> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=715739">Mozilla Bug 715739</a> +<p id="display"></p> +<pre id="test"> +<script type="application/javascript"> + +/** Test for Bug 715739 **/ + +SimpleTest.waitForExplicitFinish(); + +var runNumber = 0; + +function textChildren(node) { + var s = ""; + var n = node.firstChild; + while (n) { + if (n.nodeType == Node.TEXT_NODE) { + s += n.nodeValue; + } + n = n.nextSibling; + } + return s; +} + +var f, d; + +function tick() { + runNumber++; + f = document.getElementsByTagName("iframe")[0]; + d = f.contentDocument; + var text; + + if (runNumber == 1) { + frames[1].setTimeout(` + var d = parent.d; + var f = parent.f; + d.open(); + f.addEventListener("load", parent.tick); + d.write("X"); + d.write("\u003cscript>document.write('Y');\u003c/script>"); + d.write("Z"); + d.close(); + `); + return; + } + + if (runNumber == 2) { + text = textChildren(d.body); + is(text, "XYZ", "Wrong text before reload."); + f.contentWindow.location.reload(); + return; + } + + if (runNumber == 3) { + text = textChildren(d.body); + is(text, "ABC", "Wrong text after reload."); + SimpleTest.finish(); + } +} + +// We want to trigger a document.open/write with a different window as the +// entry global. Let's give that window a blob URL so we don't have to set up +// extra helper files. +var blob = new Blob(["ABC"], { type: "text/html" }); +var blobURL = URL.createObjectURL(blob); + +</script> +</pre> +<div id="content" style="display: none"> + <iframe></iframe> + <iframe></iframe> +</div> +<script> + document.querySelectorAll("iframe")[1].src = blobURL; +</script> +</body> +</html> |