commit 15c8fcfdaae11079889d4d9d996efc54e6a776b7
parent 6500b94510ad159b8cd6936ae461bae9ca16f7fa
Author: Ahmad Saleem <52317531+Ahmad-S792@users.noreply.github.com>
Date: Fri, 19 Dec 2025 09:15:16 +0000
Bug 2006266 [wpt PR 56773] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=277604, a=testonly
Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=277604 (#56773)
--
wpt-commits: 5123142aa9e06571d5753ef0ba95726f0559906d
wpt-pr: 56773
Diffstat:
2 files changed, 202 insertions(+), 0 deletions(-)
diff --git a/testing/web-platform/tests/webrtc/RTCDataChannelInit-maxPacketLifeTime-enforce-range.html b/testing/web-platform/tests/webrtc/RTCDataChannelInit-maxPacketLifeTime-enforce-range.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>RTCDataChannelInit maxPacketLifeTime [EnforceRange] unsigned short tests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+'use strict';
+
+// Helper to create a basic RTCPeerConnection
+function createPC() {
+ return new RTCPeerConnection();
+}
+
+// Test valid values within unsigned short range (0-65535)
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: 0 });
+ assert_equals(channel.maxPacketLifeTime, 0);
+ pc.close();
+}, 'maxPacketLifeTime with value 0 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: 1 });
+ assert_equals(channel.maxPacketLifeTime, 1);
+ pc.close();
+}, 'maxPacketLifeTime with value 1 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: 1000 });
+ assert_equals(channel.maxPacketLifeTime, 1000);
+ pc.close();
+}, 'maxPacketLifeTime with value 1000 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: 65535 });
+ assert_equals(channel.maxPacketLifeTime, 65535);
+ pc.close();
+}, 'maxPacketLifeTime with maximum value 65535 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: 65534 });
+ assert_equals(channel.maxPacketLifeTime, 65534);
+ pc.close();
+}, 'maxPacketLifeTime with value 65534 (max-1) should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: 3 });
+ assert_equals(channel.maxPacketLifeTime, 3);
+ pc.close();
+}, 'maxPacketLifeTime with value 3 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: 10 });
+ assert_equals(channel.maxPacketLifeTime, 10);
+ pc.close();
+}, 'maxPacketLifeTime with value 10 should succeed');
+
+// Test [EnforceRange] behavior - values outside range should throw TypeError
+const badValues = [
+ { value: -1, description: 'value -1' },
+ { value: -100, description: 'value -100' },
+ { value: 65536, description: 'value 65536' },
+ { value: 100000, description: 'value 100000' },
+ { value: Infinity, description: 'Infinity' },
+ { value: -Infinity, description: '-Infinity' },
+ { value: NaN, description: 'NaN' },
+ { value: "65536", description: 'string "65536"' }
+];
+
+badValues.forEach(({ value, description }) => {
+ test(() => {
+ const pc = createPC();
+ assert_throws_js(TypeError, () => {
+ pc.createDataChannel('test', { maxPacketLifeTime: value });
+ });
+ pc.close();
+ }, `maxPacketLifeTime with ${description} should throw TypeError`);
+});
+
+// Test numeric strings (should be converted to numbers)
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxPacketLifeTime: "100" });
+ assert_equals(channel.maxPacketLifeTime, 100);
+ pc.close();
+}, 'maxPacketLifeTime with numeric string "100" should be converted to 100');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', {});
+ assert_equals(channel.maxPacketLifeTime, null);
+ pc.close();
+}, 'maxPacketLifeTime when omitted should be null');
+
+</script>
diff --git a/testing/web-platform/tests/webrtc/RTCDataChannelInit-maxRetransmits-enforce-range.html b/testing/web-platform/tests/webrtc/RTCDataChannelInit-maxRetransmits-enforce-range.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>RTCDataChannelInit maxRetransmits [EnforceRange] unsigned short tests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+'use strict';
+
+// Helper to create a basic RTCPeerConnection
+function createPC() {
+ return new RTCPeerConnection();
+}
+
+// Test valid values within unsigned short range (0-65535)
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: 0 });
+ assert_equals(channel.maxRetransmits, 0);
+ pc.close();
+}, 'maxRetransmits with value 0 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: 1 });
+ assert_equals(channel.maxRetransmits, 1);
+ pc.close();
+}, 'maxRetransmits with value 1 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: 1000 });
+ assert_equals(channel.maxRetransmits, 1000);
+ pc.close();
+}, 'maxRetransmits with value 1000 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: 65535 });
+ assert_equals(channel.maxRetransmits, 65535);
+ pc.close();
+}, 'maxRetransmits with maximum value 65535 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: 65534 });
+ assert_equals(channel.maxRetransmits, 65534);
+ pc.close();
+}, 'maxRetransmits with value 65534 (max-1) should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: 3 });
+ assert_equals(channel.maxRetransmits, 3);
+ pc.close();
+}, 'maxRetransmits with value 3 should succeed');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: 10 });
+ assert_equals(channel.maxRetransmits, 10);
+ pc.close();
+}, 'maxRetransmits with value 10 should succeed');
+
+// Test [EnforceRange] behavior - values outside range should throw TypeError
+const badValues = [
+ { value: -1, description: 'value -1' },
+ { value: -100, description: 'value -100' },
+ { value: 65536, description: 'value 65536' },
+ { value: 100000, description: 'value 100000' },
+ { value: Infinity, description: 'Infinity' },
+ { value: -Infinity, description: '-Infinity' },
+ { value: NaN, description: 'NaN' },
+ { value: "65536", description: 'string "65536"' }
+];
+
+badValues.forEach(({ value, description }) => {
+ test(() => {
+ const pc = createPC();
+ assert_throws_js(TypeError, () => {
+ pc.createDataChannel('test', { maxRetransmits: value });
+ });
+ pc.close();
+ }, `maxRetransmits with ${description} should throw TypeError`);
+});
+
+// Test numeric strings (should be converted to numbers)
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', { maxRetransmits: "100" });
+ assert_equals(channel.maxRetransmits, 100);
+ pc.close();
+}, 'maxRetransmits with numeric string "100" should be converted to 100');
+
+test(() => {
+ const pc = createPC();
+ const channel = pc.createDataChannel('test', {});
+ assert_equals(channel.maxRetransmits, null);
+ pc.close();
+}, 'maxRetransmits when omitted should be null');
+
+</script>