diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html')
-rw-r--r-- | testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html b/testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html new file mode 100644 index 0000000000..1708b2705f --- /dev/null +++ b/testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html @@ -0,0 +1,76 @@ +<!doctype html> +<meta charset=utf-8> +<title>RTCPeerConnection constructor</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script> +test(function() { + assert_equals(RTCPeerConnection.length, 0); +}, 'RTCPeerConnection.length'); + +// These are used for string and number dictionary members to see if they are +// being accessed at all. +const toStringThrows = { toString: function() { throw new Error; } }; +const toNumberThrows = Symbol(); + +// Test the first argument of the constructor. The key is the argument itself, +// and the value is the first argument for assert_throws_js, or false if no +// exception should be thrown. +const testArgs = { + // No argument or equivalent. + '': false, + 'null': false, + 'undefined': false, + '{}': false, + + // certificates + '{ certificates: null }': TypeError, + '{ certificates: undefined }': false, + '{ certificates: [] }': false, + '{ certificates: [null] }': TypeError, + '{ certificates: [undefined] }': TypeError, + + // iceCandidatePoolSize + '{ iceCandidatePoolSize: toNumberThrows }': TypeError, +} + +for (const arg in testArgs) { + const expr = 'new RTCPeerConnection(' + arg + ')'; + test(function() { + const throws = testArgs[arg]; + if (throws) { + assert_throws_js(throws, function() { + eval(expr); + }); + } else { + eval(expr); + } + }, expr); +} + +// The initial values of attributes of RTCPeerConnection. +const initialState = { + 'localDescription': null, + 'currentLocalDescription': null, + 'pendingLocalDescription': null, + 'remoteDescription': null, + 'currentRemoteDescription': null, + 'pendingRemoteDescription': null, + 'signalingState': 'stable', + 'iceGatheringState': 'new', + 'iceConnectionState': 'new', + 'connectionState': 'new', + 'canTrickleIceCandidates': null, + // TODO: defaultIceServers +}; + +for (const attr in initialState) { + test(function() { + // Use one RTCPeerConnection instance for all initial value tests. + if (!window.pc) { + window.pc = new RTCPeerConnection; + } + assert_equals(window.pc[attr], initialState[attr]); + }, attr + ' initial value'); +} +</script> |