diff options
Diffstat (limited to 'dom/html/test/test_bug255820.html')
-rw-r--r-- | dom/html/test/test_bug255820.html | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/dom/html/test/test_bug255820.html b/dom/html/test/test_bug255820.html new file mode 100644 index 000000000..20727fee4 --- /dev/null +++ b/dom/html/test/test_bug255820.html @@ -0,0 +1,123 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=255820 +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>Test for Bug 255820</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=255820">Mozilla Bug 255820</a> +<p id="display"> + <iframe id="f1"></iframe> + <iframe id="f2"></iframe> + <iframe id="f3"></iframe> +</p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> + +/** Test for Bug 255820 **/ +SimpleTest.waitForExplicitFinish(); + +is(document.characterSet, "UTF-8", + "Unexpected character set for our document"); + +var testsLeft = 4; + +function testFinished() { + --testsLeft; + if (testsLeft == 0) { + SimpleTest.finish(); + } +} + +function charsetTestFinished(id, doc, charsetTarget) { + is(doc.characterSet, charsetTarget, "Unexpected charset for subframe " + id); + testFinished(); +} + +function f2Continue() { +// Commented out pending discussion at the WHATWG +// $("f2"). +// setAttribute("onload", +// "charsetTestFinished('f2 reloaded', this.contentDocument, 'us-ascii');"); + $("f2"). + setAttribute("onload", + "testFinished();"); + $("f2").contentWindow.location.reload(); +} + +function f3Continue() { + var doc = $("f3").contentDocument; + is(doc.defaultView.getComputedStyle(doc.body, "").color, "rgb(0, 180, 0)", + "Wrong color before reload"); + $("f3"). + setAttribute("onload", + 'var doc = this.contentDocument; ' + + 'is(doc.defaultView.getComputedStyle(doc.body, "").color, ' + + ' "rgb(0, 180, 0)",' + + ' "Wrong color after reload");' + + "charsetTestFinished('f1', this.contentDocument, 'UTF-8')"); + $("f3").contentWindow.location.reload(); +} + +function runTest() { + var doc = $("f1").contentDocument; + is(doc.characterSet, "UTF-8", + "Unexpected initial character set for first frame"); + doc.open(); + doc.write('<html></html>'); + doc.close(); + is(doc.characterSet, "UTF-8", + "Unexpected character set for first frame after write"); + $("f1"). + setAttribute("onload", + "charsetTestFinished('f1', this.contentDocument, 'UTF-8')"); + $("f1").contentWindow.location.reload(); + + doc = $("f2").contentDocument; + is(doc.characterSet, "UTF-8", + "Unexpected initial character set for second frame"); + doc.open(); + var str = '<html><head>'; + str += '<script src="data:application/javascript,"><'+'/script>'; + str += '<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">'; + str += '</head><body>'; + str += '</body></html>'; + doc.write(str); + doc.close(); + is(doc.characterSet, "UTF-8", + "Unexpected character set for second frame after write"); + $("f2"). + setAttribute("onload", + "charsetTestFinished('f2', this.contentDocument, 'UTF-8');" + + "f2Continue()"); + + doc = $("f3").contentDocument; + is(doc.characterSet, "UTF-8", + "Unexpected initial character set for first frame"); + doc.open(); + var str = '<html><head>'; + str += '<style>body { color: rgb(255, 0, 0) }</style>'; + str += '<link type="text/css" rel="stylesheet" href="data:text/css, body { color: rgb(0, 180, 0) }">'; + str += '</head><body>'; + str += '</body></html>'; + doc.write(str); + doc.close(); + is(doc.characterSet, "UTF-8", + "Unexpected character set for first frame after write"); + $("f3").setAttribute("onload", "f3Continue()"); +} + +addLoadEvent(runTest); +</script> +</pre> +</body> +</html> + |