diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/workers/Worker-multi-port.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/workers/Worker-multi-port.html')
-rw-r--r-- | testing/web-platform/tests/workers/Worker-multi-port.html | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/testing/web-platform/tests/workers/Worker-multi-port.html b/testing/web-platform/tests/workers/Worker-multi-port.html new file mode 100644 index 0000000000..587176e9fc --- /dev/null +++ b/testing/web-platform/tests/workers/Worker-multi-port.html @@ -0,0 +1,86 @@ +<!DOCTYPE html> +<title>Test sending multiple ports through Worker.postMessage.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +async_test(function(t) { + var worker = new Worker("support/Worker-thread-multi-port.js"); + worker.onmessage = t.step_func_done(function(evt) { + assert_true(evt.data.startsWith('PASS')); + }); + worker.postMessage("noport"); +}, 'Test postMessage with no port.'); + +async_test(function(t) { + var worker = new Worker("support/Worker-thread-multi-port.js"); + worker.onmessage = t.step_func_done(function(evt) { + assert_true(evt.data.startsWith('PASS')); + }); + worker.postMessage("noargs"); +}, 'Test postMessage with no arguments.'); + +async_test(function(t) { + var worker = new Worker("support/Worker-thread-multi-port.js"); + worker.onmessage = t.step_func_done(function(evt) { + assert_true(evt.data.startsWith('PASS')); + }); + worker.postMessage("zero ports", []); +}, 'Test postMessage with no ports and empty array.'); + +async_test(function(t) { + var worker = new Worker("support/Worker-thread-multi-port.js"); + var channel = new MessageChannel(); + worker.onmessage = t.step_func_done(function(evt) { + assert_true(evt.data.startsWith('PASS')); + }); + worker.postMessage("two ports", [channel.port1, channel.port2]); +}, 'Test postMessage with two ports.'); + +test(() => { + var worker = new Worker("support/Worker-thread-multi-port.js"); + assert_throws_js(TypeError, + function() { worker.postMessage(); }, + 'Empty postMessage should throw exception.'); +}, 'Test empty postMessage throws exception.'); + +test(() => { + var worker = new Worker("support/Worker-thread-multi-port.js"); + var channel = new MessageChannel(); + assert_throws_js(TypeError, + function() { worker.postMessage("null port", + [channel.port1, null, + channel.port2]); }, + 'postMessage with null ports should throw exception.'); +}, 'Test postMessage with null ports throws exception.'); + +test(() => { + var worker = new Worker("support/Worker-thread-multi-port.js") + var channel = new MessageChannel(); + assert_throws_dom('DataCloneError', + function() { worker.postMessage("notAPort", + [channel.port1, {}, + channel.port2]); }, + 'postMessage with incorrect ports should throw exception.'); +}, 'Test postMessage with incorrect ports throws exception'); + +test(() => { + var worker = new Worker("support/Worker-thread-multi-port.js"); + assert_throws_dom('DataCloneError', + function() { worker.postMessage("notASequence", [{length: 3}]) }, + 'postMessage without sequence should throw exception.'); +}, 'Test postMessage without sequence throws exception'); + +async_test(function(t) { + var worker = new Worker("support/Worker-thread-multi-port.js"); + var channel = new MessageChannel(); + assert_throws_dom('DataCloneError', + function() { worker.postMessage("notAPort", + [channel.port1, {}, + channel.port2]); }, + 'postMessage with incorrect ports should throw exception.'); + worker.onmessage = t.step_func_done(function(evt) { + assert_true(evt.data.startsWith('PASS')); + }); + worker.postMessage("failed ports", [channel.port1, channel.port2]); +}, 'Test postMessage on channel with previous failed postMessage calls.'); +</script> |