summaryrefslogtreecommitdiffstats
path: root/layout/forms/test/test_bug287446.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/forms/test/test_bug287446.html')
-rw-r--r--layout/forms/test/test_bug287446.html74
1 files changed, 74 insertions, 0 deletions
diff --git a/layout/forms/test/test_bug287446.html b/layout/forms/test/test_bug287446.html
new file mode 100644
index 0000000000..bb9e3bec39
--- /dev/null
+++ b/layout/forms/test/test_bug287446.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=287446
+-->
+<head>
+ <title>Test for Bug 287446</title>
+ <script 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=287446">Mozilla Bug 287446</a>
+<p id="display">
+ <iframe id="i"
+ src="http://example.com/tests/layout/forms/test/bug287446_subframe.html"></iframe>
+</p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+<script type="application/javascript">
+
+/** Test for Bug 287446 **/
+SimpleTest.waitForExplicitFinish();
+addLoadEvent(function() {
+ isnot(window.location.host, "example.com", "test is not testing cross-site");
+ var accessed = false;
+ try {
+ $("i").contentDocument.documentElement;
+ accessed = true;
+ } catch(e) {}
+ is(accessed, false, "Shouldn't be able to access cross-site");
+
+ $("i").style.display = "none";
+ document.body.offsetWidth;
+ is(document.defaultView.getComputedStyle($("i")).display, "none",
+ "toggling display failed");
+ $("i").style.display = "";
+ document.body.offsetWidth;
+ is(document.defaultView.getComputedStyle($("i")).display, "inline",
+ "toggling display back failed");
+
+ $("i").contentWindow.postMessage("start", "*");
+});
+
+function continueTest() {
+ $("i").style.display = "none";
+ document.body.offsetWidth;
+ is(document.defaultView.getComputedStyle($("i")).display, "none",
+ "toggling display second time failed");
+ $("i").style.display = "";
+ document.body.offsetWidth;
+ is(document.defaultView.getComputedStyle($("i")).display, "inline",
+ "toggling display back second time failed");
+
+$("i").contentWindow.postMessage("continue", "*");
+}
+
+window.addEventListener("message",
+ function(evt) {
+ var arr = evt.data.split(/ /).map(decodeURIComponent);
+ if (arr[0] == 't') {
+ is(arr[1], arr[2], arr[3]);
+ } else if (arr[0] == 'c') {
+ continueTest();
+ } else if (arr[0] == 'f') {
+ SimpleTest.finish();
+ }
+ });
+
+</script>
+</pre>
+</body>
+</html>