summaryrefslogtreecommitdiffstats
path: root/dom/jsurl/test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dom/jsurl/test/.eslintrc.js5
-rw-r--r--dom/jsurl/test/fail.html9
-rw-r--r--dom/jsurl/test/form-submit.html14
-rw-r--r--dom/jsurl/test/load-stopping-1a.html9
-rw-r--r--dom/jsurl/test/load-stopping-1b.html7
-rw-r--r--dom/jsurl/test/load-stopping-1c.html9
-rw-r--r--dom/jsurl/test/load-stopping-1d.html12
-rw-r--r--dom/jsurl/test/mochitest.ini17
-rw-r--r--dom/jsurl/test/pass.html9
-rw-r--r--dom/jsurl/test/test_bug1382035-1.html33
-rw-r--r--dom/jsurl/test/test_bug1382035-2.html38
-rw-r--r--dom/jsurl/test/test_bug351633-1.html42
-rw-r--r--dom/jsurl/test/test_bug351633-2.html47
-rw-r--r--dom/jsurl/test/test_bug351633-3.html120
-rw-r--r--dom/jsurl/test/test_bug351633-4.html40
-rw-r--r--dom/jsurl/test/test_bug384981.html36
16 files changed, 447 insertions, 0 deletions
diff --git a/dom/jsurl/test/.eslintrc.js b/dom/jsurl/test/.eslintrc.js
new file mode 100644
index 0000000000..845ed3f013
--- /dev/null
+++ b/dom/jsurl/test/.eslintrc.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = {
+ extends: ["plugin:mozilla/mochitest-test"],
+};
diff --git a/dom/jsurl/test/fail.html b/dom/jsurl/test/fail.html
new file mode 100644
index 0000000000..d8f57acc27
--- /dev/null
+++ b/dom/jsurl/test/fail.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script>
+parent.passJSUrl = false;
+parent.finishTest();
+</script>
+</body>
+</html>
diff --git a/dom/jsurl/test/form-submit.html b/dom/jsurl/test/form-submit.html
new file mode 100644
index 0000000000..f12414efbf
--- /dev/null
+++ b/dom/jsurl/test/form-submit.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<head>
+<script>
+ function test() {
+ var form = document.getElementById("test");
+ form.action = "pass.html";
+ form.submit();
+ }
+</script>
+<body>
+<form id="test" action="javascript:test()">
+<input type="submit" value="Submit the form; you should PASS when done">
+</form>
+</body>
diff --git a/dom/jsurl/test/load-stopping-1a.html b/dom/jsurl/test/load-stopping-1a.html
new file mode 100644
index 0000000000..09f1c69951
--- /dev/null
+++ b/dom/jsurl/test/load-stopping-1a.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<head>
+<script>
+// location = 'javascript: "Test"';
+</script>
+</head>
+<body>
+ <script>parent.passJSUrl1 = true;</script>
+</body>
diff --git a/dom/jsurl/test/load-stopping-1b.html b/dom/jsurl/test/load-stopping-1b.html
new file mode 100644
index 0000000000..ddbc5d1c60
--- /dev/null
+++ b/dom/jsurl/test/load-stopping-1b.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<head>
+</head>
+<body>
+<script>parent.passJSUrl2 = true</script>
+
+</body>
diff --git a/dom/jsurl/test/load-stopping-1c.html b/dom/jsurl/test/load-stopping-1c.html
new file mode 100644
index 0000000000..1fcab4169c
--- /dev/null
+++ b/dom/jsurl/test/load-stopping-1c.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<head>
+<script>
+ location = 'javascript:void("Test")';
+</script>
+</head>
+<body>
+<script>parent.passJSUrl3 = true</script>
+</body>
diff --git a/dom/jsurl/test/load-stopping-1d.html b/dom/jsurl/test/load-stopping-1d.html
new file mode 100644
index 0000000000..5e265ba642
--- /dev/null
+++ b/dom/jsurl/test/load-stopping-1d.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<head>
+<script>
+ function foo() {
+ return "aaa";
+ }
+</script>
+</head>
+<body>
+<img src="javascript: foo()">
+<script>parent.passJSUrl4 = true</script>
+</body>
diff --git a/dom/jsurl/test/mochitest.ini b/dom/jsurl/test/mochitest.ini
new file mode 100644
index 0000000000..6b3e5da197
--- /dev/null
+++ b/dom/jsurl/test/mochitest.ini
@@ -0,0 +1,17 @@
+[DEFAULT]
+support-files =
+ fail.html
+ form-submit.html
+ load-stopping-1a.html
+ load-stopping-1b.html
+ load-stopping-1c.html
+ load-stopping-1d.html
+ pass.html
+
+[test_bug351633-1.html]
+[test_bug351633-2.html]
+[test_bug351633-3.html]
+[test_bug351633-4.html]
+[test_bug384981.html]
+[test_bug1382035-1.html]
+[test_bug1382035-2.html]
diff --git a/dom/jsurl/test/pass.html b/dom/jsurl/test/pass.html
new file mode 100644
index 0000000000..c73afdccd8
--- /dev/null
+++ b/dom/jsurl/test/pass.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script>
+parent.passJSUrl = true;
+parent.finishTest();
+</script>
+</body>
+</html>
diff --git a/dom/jsurl/test/test_bug1382035-1.html b/dom/jsurl/test/test_bug1382035-1.html
new file mode 100644
index 0000000000..89aae72edf
--- /dev/null
+++ b/dom/jsurl/test/test_bug1382035-1.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1382035
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1382035</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script type="application/javascript">
+
+ /** Test for Bug 1382035 **/
+ addLoadEvent(function() {
+ is(frames[0].document.documentElement.textContent, "",
+ "Should not navigate to a stringified Promise");
+ SimpleTest.finish();
+ });
+
+ SimpleTest.waitForExplicitFinish();
+ </script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1382035">Mozilla Bug 1382035</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+ <iframe src="javascript: Promise.resolve()">
+ </iframe>
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>
diff --git a/dom/jsurl/test/test_bug1382035-2.html b/dom/jsurl/test/test_bug1382035-2.html
new file mode 100644
index 0000000000..f917a545b6
--- /dev/null
+++ b/dom/jsurl/test/test_bug1382035-2.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1382035
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1382035</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script type="application/javascript">
+
+ /** Test for Bug 1382035 **/
+ addLoadEvent(function() {
+ is(frames[0].document.documentElement.textContent, "test",
+ "Should not navigate to a stringified Promise");
+ SimpleTest.finish();
+ });
+ SimpleTest.waitForExplicitFinish();
+ </script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1382035">Mozilla Bug 1382035</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+ <iframe>
+ </iframe>
+ <script>
+ var blob = new Blob(["test"], { type: "text/html" });
+ var url = URL.createObjectURL(blob);
+ frames[0].location.href = url;
+ frames[0].location.href = "javascript: Promise.resolve()";
+ </script>
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>
diff --git a/dom/jsurl/test/test_bug351633-1.html b/dom/jsurl/test/test_bug351633-1.html
new file mode 100644
index 0000000000..0eaea3ebc5
--- /dev/null
+++ b/dom/jsurl/test/test_bug351633-1.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=351633
+-->
+<head>
+ <title>Test for Bug 351633: Form submission</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=351633">Mozilla Bug 351633</a>
+<p id="display">
+ <iframe id="frame" src="form-submit.html"></iframe>
+</p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+/** Test for Bug 351633 **/
+var passJSUrl = false;
+
+function finishTest() {
+ is(passJSUrl, true, "Unexpected result");
+ SimpleTest.finish();
+}
+
+SimpleTest.waitForExplicitFinish();
+
+function runTest() {
+ $("frame").contentDocument.getElementById("test").submit();
+}
+
+addLoadEvent(runTest);
+
+</script>
+</pre>
+</body>
+</html>
+
diff --git a/dom/jsurl/test/test_bug351633-2.html b/dom/jsurl/test/test_bug351633-2.html
new file mode 100644
index 0000000000..4e34e16a26
--- /dev/null
+++ b/dom/jsurl/test/test_bug351633-2.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=351633
+-->
+<head>
+ <title>Test for Bug 351633</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=351633">Mozilla Bug 351633</a>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+/** Test for Bug 351633 **/
+var passJSUrl1 = false;
+var passJSUrl2 = false;
+var passJSUrl3 = false;
+var passJSUrl4 = false;
+
+SimpleTest.waitForExplicitFinish();
+
+addLoadEvent(function() {
+ is(passJSUrl1, true, "Should have stopped load before getting here");
+ is(passJSUrl2, true, "Should not have stopped load where we didn't set " +
+ "location");
+ is(passJSUrl3, true, "Should not have stopped load where javascript: URI " +
+ "didn't return text");
+ is(passJSUrl4, true, "Should not have stopped load where javascript: URI " +
+ "wasn't set on the document itself");
+ SimpleTest.finish();
+});
+</script>
+</pre>
+<p id="display">
+ <iframe src="load-stopping-1a.html"></iframe>
+ <iframe src="load-stopping-1b.html"></iframe>
+ <iframe src="load-stopping-1c.html"></iframe>
+ <iframe src="load-stopping-1d.html"></iframe>
+</p>
+<div id="content" style="display: none">
+
+</div>
+</body>
+</html>
+
diff --git a/dom/jsurl/test/test_bug351633-3.html b/dom/jsurl/test/test_bug351633-3.html
new file mode 100644
index 0000000000..4e176bc9e5
--- /dev/null
+++ b/dom/jsurl/test/test_bug351633-3.html
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=351633
+-->
+<head>
+ <title>Test for Bug 351633</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=351633">Mozilla Bug 351633</a>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+var passJSUrl;
+var passJSUrl2;
+var finishTest;
+
+/** Test for Bug 351633 **/
+function runTests() {
+ $("testframe1").onload = test1;
+ // test2 will be called as finishTest
+ $("testframe3").onload = test3;
+ $("testframe4").onload = test4;
+ $("testframe5").onload = test5;
+ passJSUrl = false;
+ window.testframe1.location.href =
+ 'javascript:"<script>parent.passJSUrl = true</' + 'script>"'
+}
+
+function test1() {
+ is(passJSUrl, true, "Script should have run in child");
+
+ passJSUrl = false;
+ passJSUrl2 = true;
+ finishTest = test2;
+
+ window.testframe2.location.href =
+ 'javascript: location = "pass.html"; ' +
+ '"<script>parent.passJSUrl2 = false</' + 'script>"'
+}
+
+function test2() {
+ is(passJSUrl, true, "pass.html should have loaded");
+ is(passJSUrl2, true, "<script> should not have run");
+
+ passJSUrl = true;
+ passJSUrl2 = false;
+ finishTest = function() { };
+
+ window.testframe3.location.href = 'fail.html';
+ window.testframe3.location.href =
+ 'javascript: "<script>parent.passJSUrl2 = true</' + 'script>"'
+}
+
+function test3() {
+ if (window.testframe3.location.href == 'fail.html') {
+ // Ignore this call; we expect the javascript: URI to still load. Note
+ // that whether onload fires for the fail.html load before the event for
+ // the javascript: URI execution runs is a timing issue, so we can't depend
+ // on the ordering.
+ return;
+ }
+
+ // Since fail.html could have loaded, the value of passJSUrl here is random
+
+ // Something is bogus here. Maybe we're ending up with the href being the
+ // javascript: URI even though it hasn't run yet? Or something? In any
+ // case, this test fails on some tinderboxen but not others.... Need to
+ // sort it out.
+ // is(passJSUrl2, true, "<script> should have run");
+
+ passJSUrl = false;
+ passJSUrl2 = true;
+ finishTest = function() { };
+
+ window.testframe4.location.href = 'pass.html';
+ window.testframe4.location.href =
+ 'javascript:void("<script>parent.passJSUrl2 = false</' + 'script>")';
+}
+
+function test4() {
+ is(passJSUrl, true, "pass.html should have loaded again");
+ is(passJSUrl2, true, "<script> should not have run in void");
+
+ passJSUrl = false;
+ passJSUrl2 = true;
+ finishTest = function() { };
+
+ window.testframe5.location.href =
+ 'javascript:"<script>parent.passJSUrl2 = false</' + 'script>"';
+ window.testframe5.location.href = 'pass.html';
+}
+
+function test5() {
+ is(passJSUrl, true, "pass.html should have loaded yet again");
+ is(passJSUrl2, true, "javascript: load should have been canceled");
+
+ SimpleTest.finish();
+}
+
+SimpleTest.waitForExplicitFinish();
+addLoadEvent(runTests);
+
+</script>
+</pre>
+<p id="display">
+ <iframe name="testframe1" id="testframe1"></iframe>
+ <iframe name="testframe2" id="testframe2"></iframe>
+ <iframe name="testframe3" id="testframe3"></iframe>
+ <iframe name="testframe4" id="testframe4"></iframe>
+ <iframe name="testframe5" id="testframe5"></iframe>
+</p>
+<div id="content" style="display: none">
+
+</div>
+</body>
+</html>
+
diff --git a/dom/jsurl/test/test_bug351633-4.html b/dom/jsurl/test/test_bug351633-4.html
new file mode 100644
index 0000000000..c7ed3011c2
--- /dev/null
+++ b/dom/jsurl/test/test_bug351633-4.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=351633
+-->
+<head>
+ <title>Test for Bug 351633</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=351633">Mozilla Bug 351633</a>
+<p id="display">
+ <iframe name="x" id="x"></iframe>
+</p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+/** Test for Bug 351633 **/
+
+var str;
+str = "a";
+window.x.location.href =
+ "javascript: parent.str += 'c'; void(parent.finishTest());"
+str += "b";
+
+SimpleTest.waitForExplicitFinish();
+
+function finishTest() {
+ is (str, "abc", "Unexpected ordering");
+ SimpleTest.finish();
+}
+</script>
+</pre>
+</body>
+</html>
+
diff --git a/dom/jsurl/test/test_bug384981.html b/dom/jsurl/test/test_bug384981.html
new file mode 100644
index 0000000000..7c62487bd8
--- /dev/null
+++ b/dom/jsurl/test/test_bug384981.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=384981
+-->
+<head>
+ <title>Test for Bug 384981</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+ <!-- Make sure we wait for the stylesheet load -->
+ <script>document.documentElement.offsetWidth</script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=384981">Mozilla Bug 384981</a>
+<p id="display">
+ <iframe src="javascript:'content'"></iframe>
+</p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+/** Test for Bug 384981 **/
+SimpleTest.waitForExplicitFinish()
+addLoadEvent(function() {
+ is(window.frames[0].document.documentElement.textContent, "content",
+ "Onload should not fire before subframe loads");
+});
+addLoadEvent(SimpleTest.finish);
+
+</script>
+</pre>
+</body>
+</html>
+