summaryrefslogtreecommitdiffstats
path: root/dom/promise/tests/test_promise_argument_xrays.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/promise/tests/test_promise_argument_xrays.html')
-rw-r--r--dom/promise/tests/test_promise_argument_xrays.html90
1 files changed, 90 insertions, 0 deletions
diff --git a/dom/promise/tests/test_promise_argument_xrays.html b/dom/promise/tests/test_promise_argument_xrays.html
new file mode 100644
index 0000000000..f3a234cf6d
--- /dev/null
+++ b/dom/promise/tests/test_promise_argument_xrays.html
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1233324
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1233324</title>
+ <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="chrome://global/skin"/>
+ <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1233324">Mozilla Bug 1233324</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+<iframe id="t" src="http://example.org/chrome/dom/promise/tests/file_promise_xrays.html"></iframe>
+</div>
+
+<pre id="test">
+<script src="file_promise_argument_tests.js"></script>
+<script type="application/javascript">
+
+var win = $("t").contentWindow;
+
+/** Test for Bug 1233324 **/
+SimpleTest.waitForExplicitFinish();
+
+function testLoadComplete() {
+ is(win.location.href, $("t").src, "Should have loaded the right thing");
+ nextTest();
+}
+
+function testHaveXray() {
+ is(typeof win.Promise.race, "function", "Should see a race() function");
+ var exception;
+ try {
+ win.Promise.wrappedJSObject.race;
+ } catch (e) {
+ exception = e;
+ }
+ is(exception, "Getting race", "Should have thrown the right exception");
+ is(win.wrappedJSObject.setupThrew, false, "Setup should not have thrown");
+ nextTest();
+}
+
+function verifyPromiseGlobal(p, _, msg) {
+ // SpecialPowers.Cu.getGlobalForObject returns a SpecialPowers wrapper for
+ // the actual global. We want to grab the underlying object.
+ var global = SpecialPowers.unwrap(SpecialPowers.Cu.getGlobalForObject(p));
+
+ // We expect our global to always be "window" here, because we're working over
+ // Xrays.
+ is(global, window, msg + " should come from " + window.label);
+}
+
+const isXrayArgumentTest = true;
+
+function getPromise(global, arg) {
+ return global.TestFunctions.passThroughPromise(arg);
+}
+
+function testPromiseArgumentConversions() {
+ runPromiseArgumentTests(nextTest);
+}
+
+var tests = [
+ testLoadComplete,
+ testHaveXray,
+ testPromiseArgumentConversions,
+];
+
+function nextTest() {
+ if (!tests.length) {
+ SimpleTest.finish();
+ return;
+ }
+ tests.shift()();
+}
+
+addLoadEvent(function() {
+ frames[0].label = "child";
+ SpecialPowers.pushPrefEnv({set: [["dom.expose_test_interfaces", true]]},
+ nextTest);
+});
+
+</script>
+</pre>
+</body>
+</html>