summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/fetch/file_fetch_controller.html
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-06-11 12:43:17 +0000
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-06-13 11:52:17 +0200
commit29bca891d5ca243774a7355fc3a6a68903f0d596 (patch)
treeec5a36a57a179b811642c0ee5636ffd3005adc67 /dom/tests/mochitest/fetch/file_fetch_controller.html
parentbb7060582934f087b71702d1e83f762d5fd6f0af (diff)
downloadUXP-29bca891d5ca243774a7355fc3a6a68903f0d596.tar
UXP-29bca891d5ca243774a7355fc3a6a68903f0d596.tar.gz
UXP-29bca891d5ca243774a7355fc3a6a68903f0d596.tar.lz
UXP-29bca891d5ca243774a7355fc3a6a68903f0d596.tar.xz
UXP-29bca891d5ca243774a7355fc3a6a68903f0d596.zip
Issue #1587 - Part 6: Move FetchController/Signal to its own dir
Since it is specced separately from fetch.
Diffstat (limited to 'dom/tests/mochitest/fetch/file_fetch_controller.html')
-rw-r--r--dom/tests/mochitest/fetch/file_fetch_controller.html161
1 files changed, 0 insertions, 161 deletions
diff --git a/dom/tests/mochitest/fetch/file_fetch_controller.html b/dom/tests/mochitest/fetch/file_fetch_controller.html
deleted file mode 100644
index e4137aac9..000000000
--- a/dom/tests/mochitest/fetch/file_fetch_controller.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<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("FetchController" in self, "We have a FetchController prototype");
- ok("FetchSignal" in self, "We have a FetchSignal prototype");
-
- var fc = new FetchController();
- ok(!!fc, "FetchController can be created");
- ok(fc instanceof FetchController, "FetchController is a FetchController");
-
- ok(!!fc.signal, "FetchController has a signal");
- ok(fc.signal instanceof FetchSignal, "fetchSignal is a FetchSignal");
- is(fc.signal.aborted, false, "By default FetchSignal.aborted is false");
- next();
-}
-
-function testUpdateData() {
- var fc = new FetchController();
-
- is(fc.signal.aborted, false, "By default FetchSignal.aborted is false");
-
- fc.abort();
- is(fc.signal.aborted, true, "Signal is aborted");
-
- next();
-}
-
-function testFollowingOurself() {
- // Let's follow ourself
- var fc = new FetchController();
- fc.follow(fc.signal);
-
- fc.abort();
- is(fc.signal.aborted, true, "Signal is aborted");
-
- next();
-}
-
-function testFollowingOther() {
- // Let's follow another one
- var fc1 = new FetchController();
- var fc2 = new FetchController();
- fc1.follow(fc2.signal);
-
- fc2.abort();
-
- is(fc1.signal.aborted, true, "Signal is aborted");
- is(fc2.signal.aborted, true, "Signal is aborted");
-
- next();
-}
-
-function testFollowingLoop() {
- // fc1 -> fc2 -> fc3 -> fc1
- var fc1 = new FetchController();
- var fc2 = new FetchController();
- var fc3 = new FetchController();
- fc1.follow(fc2.signal);
- fc2.follow(fc3.signal);
- fc3.follow(fc1.signal);
-
- fc3.abort();
-
- is(fc1.signal.aborted, true, "Signal is aborted");
- is(fc2.signal.aborted, true, "Signal is aborted");
- is(fc3.signal.aborted, true, "Signal is aborted");
-
- next();
-}
-
-function testAbortEvent() {
- var fc = new FetchController();
- fc.signal.onabort = function(e) {
- is(e.type, "abort", "Abort received");
- next();
- }
- fc.abort();
-}
-
-function testAbortedFetch() {
- var fc = new FetchController();
- fc.abort();
-
- fetch('slow.sjs', { signal: fc.signal }).then(() => {
- ok(false, "Fetch should not return a resolved promise");
- }, e => {
- is(e.name, "AbortError", "We have an abort error");
- }).then(next);
-}
-
-function testFetchAndAbort() {
- var fc = new FetchController();
-
- var p = fetch('slow.sjs', { signal: fc.signal });
- fc.abort();
-
- p.then(() => {
- ok(false, "Fetch should not return a resolved promise");
- }, e => {
- is(e.name, "AbortError", "We have an abort error");
- }).then(next);
-}
-
-function testWorkerAbortedFetch() {
- var w = new Worker('worker_fetch_controller.js');
- w.onmessage = function(e) {
- ok(e.data, "Abort + Fetch works in workers");
- next();
- }
- w.postMessage('testWorkerAbortedFetch');
-}
-
-function testWorkerFetchAndAbort() {
- var w = new Worker('worker_fetch_controller.js');
- w.onmessage = function(e) {
- ok(e.data, "Abort + Fetch works in workers");
- next();
- }
- w.postMessage('testWorkerFetchAndAbort');
-}
-
-var steps = [
- // Simple stuff
- testWebIDL,
- testUpdateData,
-
- // Following algorithm
- testFollowingOurself,
- testFollowingOther,
- testFollowingLoop,
-
- // Event propagation
- testAbortEvent,
-
- // fetch + signaling
- testAbortedFetch,
- testFetchAndAbort,
- testWorkerAbortedFetch,
- testWorkerFetchAndAbort,
-];
-
-function next() {
- if (!steps.length) {
- parent.postMessage({ type: "finish" }, "*");
- return;
- }
-
- var step = steps.shift();
- step();
-}
-
-next();
-
-</script>