summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webtransport/sendorder.https.any.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/webtransport/sendorder.https.any.js
parentInitial commit. (diff)
downloadfirefox-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/webtransport/sendorder.https.any.js')
-rw-r--r--testing/web-platform/tests/webtransport/sendorder.https.any.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webtransport/sendorder.https.any.js b/testing/web-platform/tests/webtransport/sendorder.https.any.js
new file mode 100644
index 0000000000..96944fb39b
--- /dev/null
+++ b/testing/web-platform/tests/webtransport/sendorder.https.any.js
@@ -0,0 +1,57 @@
+// META: global=window,worker
+// META: script=/common/get-host-info.sub.js
+// META: script=resources/webtransport-test-helpers.sub.js
+// META: script=/common/utils.js
+
+
+promise_test(async t => {
+ // Establish a WebTransport session.
+ const wt = new WebTransport(webtransport_url('echo.py'));
+ await wt.ready;
+
+ // Create a bidirectional stream with sendorder
+ const {readable, writable} = await wt.createBidirectionalStream({sendOrder: 3});
+ assert_equals(writable.sendOrder, 3);
+
+ // Write a message to the writable end, and close it.
+ const writer = writable.getWriter();
+ const encoder = new TextEncoder();
+ writer.write(encoder.encode('Hello World')).catch(() => {});
+ await writer.close();
+
+ // Read the data on the readable end.
+ const reply = await read_stream_as_string(readable);
+
+ // Check that the message from the readable end matches the writable end.
+ assert_equals(reply, 'Hello World');
+}, 'WebTransport client should be able to create and handle a bidirectional stream with sendOrder');
+
+promise_test(async t => {
+ // Establish a WebTransport session.
+ const wt = new WebTransport(webtransport_url('echo.py'));
+ await wt.ready;
+
+ // Create a bidirectional stream with sendorder
+ const {readable, writable} = await wt.createBidirectionalStream();
+ assert_equals(writable.sendOrder, null);
+ // modify it
+ writable.sendOrder = 4;
+ assert_equals(writable.sendOrder, 4);
+}, 'WebTransport client should be able to modify unset sendOrder after stream creation');
+
+promise_test(async t => {
+ // Establish a WebTransport session.
+ const wt = new WebTransport(webtransport_url('echo.py'));
+ await wt.ready;
+
+ // Create a bidirectional stream without sendorder
+ const {readable, writable} = await wt.createBidirectionalStream({sendOrder: 3});
+ assert_equals(writable.sendOrder, 3);
+ // modify it
+ writable.sendOrder = 5;
+ assert_equals(writable.sendOrder, 5);
+ writable.sendOrder = null;
+ assert_equals(writable.sendOrder, null);
+ // Note: this doesn't verify the underlying stack actually changes priority, just the API
+ // for controlling sendOrder
+}, 'WebTransport client should be able to modify existing sendOrder after stream creation');