зеркало из https://github.com/mozilla/gecko-dev.git
95 строки
2.5 KiB
HTML
95 строки
2.5 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1436276.
|
|
-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test for Bug 1436276.</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=1436276.">Mozilla Bug 1436276.</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_retval_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);
|
|
}
|
|
|
|
function expectedExceptionGlobal(_) {
|
|
// We should end up with an exception from "window" no matter what global
|
|
// was involved to start with, because we're working over Xrays.
|
|
return window;
|
|
}
|
|
|
|
function getPromise(global, arg) {
|
|
return global.TestFunctions.passThroughPromise(arg);
|
|
}
|
|
|
|
function testPromiseRetvals() {
|
|
runPromiseRetvalTests(nextTest);
|
|
}
|
|
|
|
var tests = [
|
|
testLoadComplete,
|
|
testHaveXray,
|
|
testPromiseRetvals,
|
|
];
|
|
|
|
function nextTest() {
|
|
if (tests.length == 0) {
|
|
SimpleTest.finish();
|
|
return;
|
|
}
|
|
tests.shift()();
|
|
}
|
|
|
|
addLoadEvent(function() {
|
|
frames[0].label = "child";
|
|
SpecialPowers.pushPrefEnv({set: [["dom.expose_test_interfaces", true]]},
|
|
nextTest);
|
|
});
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|