| <!doctype html> | |
| <meta charset="utf-8"> | |
| <!-- | |
| 4.2.1 RTCConfiguration Dictionary | |
| The RTCConfiguration defines a set of parameters to configure how the peer to peer communication established via RTCPeerConnection is established or re-established. | |
| ... | |
| iceCandidatePoolSize of type octet, defaulting to 0 | |
| Size of the prefetched ICE pool as defined in [JSEP] (section 3.5.4. and section 4.1.1.). | |
| --> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| /* | |
| dictionary RTCConfiguration { | |
| ... | |
| [EnforceRange] | |
| octet iceCandidatePoolSize = 0; | |
| }; | |
| ... of type octet | |
| */ | |
| test(() => { | |
| const pc = new RTCPeerConnection(); | |
| assert_idl_attribute(pc, "getConfiguration"); | |
| assert_equals(pc.getConfiguration().iceCandidatePoolSize, 0); | |
| }, "Initialize a new RTCPeerConnection with no iceCandidatePoolSize"); | |
| test(() => { | |
| const pc = new RTCPeerConnection({ | |
| iceCandidatePoolSize: 0 | |
| }); | |
| assert_idl_attribute(pc, "getConfiguration"); | |
| assert_equals(pc.getConfiguration().iceCandidatePoolSize, 0); | |
| }, "Initialize a new RTCPeerConnection with iceCandidatePoolSize: 0"); | |
| test(() => { | |
| const pc = new RTCPeerConnection({ | |
| iceCandidatePoolSize: 255 | |
| }); | |
| assert_idl_attribute(pc, "getConfiguration"); | |
| assert_equals(pc.getConfiguration().iceCandidatePoolSize, 255); | |
| }, "Initialize a new RTCPeerConnection with iceCandidatePoolSize: 255"); | |
| test(() => { | |
| assert_throws_js(TypeError, () => { | |
| new RTCPeerConnection({ | |
| iceCandidatePoolSize: -1 | |
| }); | |
| }); | |
| }, "Initialize a new RTCPeerConnection with iceCandidatePoolSize: -1 (Out Of Range)"); | |
| test(() => { | |
| assert_throws_js(TypeError, () => { | |
| new RTCPeerConnection({ | |
| iceCandidatePoolSize: 256 | |
| }); | |
| }); | |
| }, "Initialize a new RTCPeerConnection with iceCandidatePoolSize: 256 (Out Of Range)"); | |
| /* | |
| Reconfiguration | |
| */ | |
| test(() => { | |
| const pc = new RTCPeerConnection(); | |
| assert_idl_attribute(pc, "getConfiguration"); | |
| assert_idl_attribute(pc, "setConfiguration"); | |
| pc.setConfiguration({ | |
| iceCandidatePoolSize: 0 | |
| }); | |
| assert_equals(pc.getConfiguration().iceCandidatePoolSize, 0); | |
| }, "Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 0"); | |
| test(() => { | |
| const pc = new RTCPeerConnection(); | |
| assert_idl_attribute(pc, "getConfiguration"); | |
| assert_idl_attribute(pc, "setConfiguration"); | |
| pc.setConfiguration({ | |
| iceCandidatePoolSize: 255 | |
| }); | |
| assert_equals(pc.getConfiguration().iceCandidatePoolSize, 255); | |
| }, "Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 255"); | |
| /* | |
| The following tests include an explicit assertion for the existence of a | |
| setConfiguration function to prevent the assert_throws_js from catching the | |
| TypeError object that will be thrown when attempting to call the | |
| non-existent setConfiguration method (in cases where it has not yet | |
| been implemented). Without this check, these tests will pass incorrectly. | |
| */ | |
| test(() => { | |
| const pc = new RTCPeerConnection(); | |
| assert_equals(typeof pc.setConfiguration, "function", "RTCPeerConnection.prototype.setConfiguration is not implemented"); | |
| assert_throws_js(TypeError, () => { | |
| pc.setConfiguration({ | |
| iceCandidatePoolSize: -1 | |
| }); | |
| }); | |
| }, "Reconfigure RTCPeerConnection instance iceCandidatePoolSize to -1 (Out Of Range)"); | |
| test(() => { | |
| const pc = new RTCPeerConnection(); | |
| assert_equals(typeof pc.setConfiguration, "function", "RTCPeerConnection.prototype.setConfiguration is not implemented"); | |
| assert_throws_js(TypeError, () => { | |
| pc.setConfiguration({ | |
| iceCandidatePoolSize: 256 | |
| }); | |
| }); | |
| }, "Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 256 (Out Of Range)"); | |
| </script> |