mirror of
https://github.com/servo/servo.git
synced 2025-06-29 19:43:39 +01:00
126 lines
3.7 KiB
HTML
126 lines
3.7 KiB
HTML
<!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(new 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(new 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>
|