diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/webrtc/RTCPeerConnectionIceEvent-constructor.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/webrtc/RTCPeerConnectionIceEvent-constructor.html')
-rw-r--r-- | testing/web-platform/tests/webrtc/RTCPeerConnectionIceEvent-constructor.html | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webrtc/RTCPeerConnectionIceEvent-constructor.html b/testing/web-platform/tests/webrtc/RTCPeerConnectionIceEvent-constructor.html new file mode 100644 index 0000000000..447002dca1 --- /dev/null +++ b/testing/web-platform/tests/webrtc/RTCPeerConnectionIceEvent-constructor.html @@ -0,0 +1,126 @@ +<!doctype html> +<meta charset="utf-8"> +<!-- +4.8.2 RTCPeerConnectionIceEvent + + The icecandidate event of the RTCPeerConnection uses the RTCPeerConnectionIceEvent interface. + +--> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +/* +RTCPeerConnectionIceEvent + +[Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict)] + +interface RTCPeerConnectionIceEvent : Event { + readonly attribute RTCIceCandidate? candidate; + readonly attribute DOMString? url; +}; + */ +test(() => { + assert_throws_js(TypeError, () => { + new RTCPeerConnectionIceEvent(); + }); +}, "RTCPeerConnectionIceEvent with no arguments throws TypeError"); + +test(() => { + const event = new RTCPeerConnectionIceEvent("type"); + /* + candidate of type RTCIceCandidate, readonly, nullable + url of type DOMString, readonly, nullable + */ + assert_equals(event.candidate, null); + assert_equals(event.url, null); + + /* + Firing an RTCPeerConnectionIceEvent event named e with an RTCIceCandidate + candidate means that an event with the name e, which does not bubble + (except where otherwise stated) and is not cancelable + (except where otherwise stated), + */ + assert_false(event.bubbles); + assert_false(event.cancelable); + +}, "RTCPeerConnectionIceEvent with no eventInitDict (default)"); + +test(() => { + const event = new RTCPeerConnectionIceEvent("type", {}); + + /* + candidate of type RTCIceCandidate, readonly, nullable + url of type DOMString, readonly, nullable + */ + assert_equals(event.candidate, null); + assert_equals(event.url, null); + + /* + Firing an RTCPeerConnectionIceEvent event named e with an RTCIceCandidate + candidate means that an event with the name e, which does not bubble + (except where otherwise stated) and is not cancelable + (except where otherwise stated), + */ + assert_false(event.bubbles); + assert_false(event.cancelable); + +}, "RTCPeerConnectionIceEvent with empty object as eventInitDict (default)"); + +test(() => { + const event = new RTCPeerConnectionIceEvent("type", { + candidate: null + }); + assert_equals(event.candidate, null); +}, "RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: null }"); + +test(() => { + const event = new RTCPeerConnectionIceEvent("type", { + candidate: undefined + }); + assert_equals(event.candidate, null); +}, "RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: undefined }"); + + +/* + +4.8.1 RTCIceCandidate Interface + +The RTCIceCandidate() constructor takes a dictionary argument, candidateInitDict, +whose content is used to initialize the new RTCIceCandidate object. When run, if +both the sdpMid and sdpMLineIndex dictionary members are null, throw a TypeError. +*/ +const candidate = ""; +const sdpMid = "sdpMid"; +const sdpMLineIndex = 1; +const usernameFragment = ""; +const url = "foo.bar"; + +test(() => { + const iceCandidate = new RTCIceCandidate({ candidate, sdpMid, sdpMLineIndex, usernameFragment }); + const event = new RTCPeerConnectionIceEvent("type", { + candidate: iceCandidate, + url, + }); + + assert_equals(event.candidate, iceCandidate); + assert_false(event.bubbles); + assert_false(event.cancelable); +}, "RTCPeerConnectionIceEvent with RTCIceCandidate"); + +test(() => { + const plain = { candidate, sdpMid, sdpMLineIndex, usernameFragment }; + assert_throws_js(TypeError, () => new RTCPeerConnectionIceEvent("type", { candidate: plain })); +}, "RTCPeerConnectionIceEvent with non RTCIceCandidate object throws"); + +test(() => { + const event = new RTCPeerConnectionIceEvent("type", { + candidate: null, + bubbles: true, + cancelable: true, + }); + + assert_true(event.bubbles); + assert_true(event.cancelable); +}, "RTCPeerConnectionIceEvent bubbles and cancelable"); + +</script> |