diff options
author | Moonchild <moonchild@palemoon.org> | 2020-06-10 21:33:28 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-06-10 21:33:47 +0000 |
commit | be82b3331878fb2956d22d9bd3906fca3ab39751 (patch) | |
tree | 99b99c83d520b5309fdc9ee4f1afb00eeaa5f964 /dom/tests | |
parent | a8602cc877cb4fc007655cd0f52b52b1e7165bc8 (diff) | |
download | UXP-be82b3331878fb2956d22d9bd3906fca3ab39751.tar UXP-be82b3331878fb2956d22d9bd3906fca3ab39751.tar.gz UXP-be82b3331878fb2956d22d9bd3906fca3ab39751.tar.lz UXP-be82b3331878fb2956d22d9bd3906fca3ab39751.tar.xz UXP-be82b3331878fb2956d22d9bd3906fca3ab39751.zip |
Issue #1587 - Part 2: Implement controller follow/unfollow
Diffstat (limited to 'dom/tests')
-rw-r--r-- | dom/tests/mochitest/fetch/file_fetch_controller.html | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/dom/tests/mochitest/fetch/file_fetch_controller.html b/dom/tests/mochitest/fetch/file_fetch_controller.html index 6efa2fe0a..791d21b2b 100644 --- a/dom/tests/mochitest/fetch/file_fetch_controller.html +++ b/dom/tests/mochitest/fetch/file_fetch_controller.html @@ -21,8 +21,76 @@ function testWebIDL() { 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(); +} + var steps = [ testWebIDL, + testUpdateData, + testFollowingOurself, + testFollowingOther, + testFollowingLoop, + testAbortEvent, ]; function next() { |