summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/webrtc/RTCPeerConnection-constructor.html
parentInitial commit. (diff)
downloadfirefox-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.html76
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>