зеркало из https://github.com/mozilla/gecko-dev.git
66 строки
1.3 KiB
HTML
66 строки
1.3 KiB
HTML
<script>
|
|
function ok(a, msg) {
|
|
parent.postMessage({ type: "check", status: !!a, message: msg }, "*");
|
|
}
|
|
|
|
function is(a, b, msg) {
|
|
ok(a === b, msg);
|
|
}
|
|
|
|
function testWebIDL() {
|
|
ok("AbortController" in self, "We have a AbortController prototype");
|
|
ok("AbortSignal" in self, "We have a AbortSignal prototype");
|
|
|
|
var ac = new AbortController();
|
|
ok(!!ac, "AbortController can be created");
|
|
ok(ac instanceof AbortController, "AbortController is a AbortController");
|
|
|
|
ok(!!ac.signal, "AbortController has a signal");
|
|
ok(ac.signal instanceof AbortSignal, "abortSignal is a AbortSignal");
|
|
is(ac.signal.aborted, false, "By default AbortSignal.aborted is false");
|
|
next();
|
|
}
|
|
|
|
function testUpdateData() {
|
|
var ac = new AbortController();
|
|
|
|
is(ac.signal.aborted, false, "By default AbortSignal.aborted is false");
|
|
|
|
ac.abort();
|
|
is(ac.signal.aborted, true, "Signal is aborted");
|
|
|
|
next();
|
|
}
|
|
|
|
function testAbortEvent() {
|
|
var ac = new AbortController();
|
|
ac.signal.onabort = function(e) {
|
|
is(e.type, "abort", "Abort received");
|
|
next();
|
|
}
|
|
ac.abort();
|
|
}
|
|
|
|
var steps = [
|
|
// Simple stuff
|
|
testWebIDL,
|
|
testUpdateData,
|
|
|
|
// Event propagation
|
|
testAbortEvent,
|
|
];
|
|
|
|
function next() {
|
|
if (!steps.length) {
|
|
parent.postMessage({ type: "finish" }, "*");
|
|
return;
|
|
}
|
|
|
|
var step = steps.shift();
|
|
step();
|
|
}
|
|
|
|
next();
|
|
|
|
</script>
|