CONSOLE WARNING: line 1: The rtcpMuxPolicy option is being considered for removal and may be removed no earlier than M60, around August 2017. If you depend on it, please see https://www.chromestatus.com/features/5654810086866944 for more details.
CONSOLE WARNING: line 1: Unknown constraint named invalid rejected
CONSOLE WARNING: line 1: Unknown constraint named valid_but_unsupported_1 rejected
CONSOLE WARNING: line 1: Unknown constraint named valid_but_unsupported_1 rejected
Tests the RTCPeerConnection constructor.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS webkitRTCPeerConnection is RTCPeerConnection
PASS new RTCPeerConnection(null); did not throw exception.
PASS new RTCPeerConnection(undefined); did not throw exception.
PASS new RTCPeerConnection({}); did not throw exception.
PASS new RTCPeerConnection(); did not throw exception.
PASS new RTCPeerConnection(''); threw exception TypeError: Failed to construct 'RTCPeerConnection': parameter 1 ('configuration') is not an object..
PASS new RTCPeerConnection({iceServers:[]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[{url:'stun:foo.com'}]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[{url:'turn:foo.com', username:'x', credential:'x'}]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[{url:'turn:foo.com', username:'x', credential:'x'},{url:'stun:bar.com'}]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[{urls:['stun:foo.com', 'turn:foo.com'], username:'x', credential:'x'}]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[{urls:['stun:foo.com', 'turn:foo.com']}]}); threw exception InvalidAccessError: Failed to construct 'RTCPeerConnection': Both username and credential are required when the URL scheme is "turn" or "turns"..
PASS new RTCPeerConnection({fooServers:[]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:true}); threw exception TypeError: Failed to construct 'RTCPeerConnection': The value provided is neither an array, nor does it have indexed properties..
PASS new RTCPeerConnection({iceServers:[1, 2, 3]}); threw exception TypeError: Failed to construct 'RTCPeerConnection': cannot convert to dictionary..
PASS new RTCPeerConnection({iceServers:[{}]}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Malformed RTCIceServer.
PASS new RTCPeerConnection({iceServers:[{url:'foo'}]}); threw exception SyntaxError: Failed to construct 'RTCPeerConnection': 'foo' is not a valid URL..
PASS new RTCPeerConnection({iceServers:[{urls:'unsupported:scheme'}]}); threw exception SyntaxError: Failed to construct 'RTCPeerConnection': 'unsupported' is not one of the supported URL schemes 'stun', 'turn' or 'turns'..
PASS new RTCPeerConnection({iceServers:[{urls:[1, 'turn:foo.com']}]}); threw exception SyntaxError: Failed to construct 'RTCPeerConnection': '1' is not a valid URL..
PASS new RTCPeerConnection({iceServers:[], iceTransports:'none'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], iceTransports:'relay'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], iceTransports:'all'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], iceTransports:'foo'}); threw exception TypeError: Failed to construct 'RTCPeerConnection': The provided value 'foo' is not a valid enum value of type RTCIceTransportPolicy..
PASS new RTCPeerConnection({iceServers:[], bundlePolicy:'balanced'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], bundlePolicy:'max-bundle'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], bundlePolicy:'max-compat'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], bundlePolicy:'foo'}); threw exception TypeError: Failed to construct 'RTCPeerConnection': The provided value 'foo' is not a valid enum value of type RTCBundlePolicy..
PASS new RTCPeerConnection({iceServers:[], rtcpMuxPolicy:'negotiate'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], rtcpMuxPolicy:'require'}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], rtcpMuxPolicy:'foo'}); threw exception TypeError: Failed to construct 'RTCPeerConnection': The provided value 'foo' is not a valid enum value of type RTCRtcpMuxPolicy..
PASS new RTCPeerConnection({iceCandidatePoolSize:0}); did not throw exception.
PASS new RTCPeerConnection({iceCandidatePoolSize:1}); did not throw exception.
PASS new RTCPeerConnection({iceCandidatePoolSize:255}); did not throw exception.
PASS new RTCPeerConnection({iceCandidatePoolSize:-1}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Value is outside the 'octet' value range..
PASS new RTCPeerConnection({iceCandidatePoolSize:99999999}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Value is outside the 'octet' value range..
PASS new RTCPeerConnection({iceCandidatePoolSize:256}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Value is outside the 'octet' value range..
PASS new RTCPeerConnection({iceCandidatePoolSize:'foo'}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Value is not of type 'octet'..
PASS new RTCPeerConnection(null, {mandatory:{valid_and_supported_1:1}}); did not throw exception.
PASS new RTCPeerConnection(null, {mandatory:{valid_and_supported_1:1, valid_and_supported_2:1}}); did not throw exception.
PASS new RTCPeerConnection(null, {optional:[{valid_and_supported_1:0}]}); did not throw exception.
PASS new RTCPeerConnection(null, {optional:[{valid_and_supported_1:0},{valid_and_supported_2:0}]}); did not throw exception.
PASS new RTCPeerConnection(null, {optional:[{valid_but_unsupported_1:0},{valid_but_unsupported_2:0}]}); did not throw exception.
PASS new RTCPeerConnection(null, {mandatory:{valid_and_supported_1:66}}); threw exception NotSupportedError: Failed to construct 'RTCPeerConnection': Unsatisfiable constraint valid_and_supported_1.
PASS new RTCPeerConnection(null, {mandatory:{invalid:1}}); threw exception NotSupportedError: Failed to construct 'RTCPeerConnection': Unsatisfiable constraint invalid.
PASS new RTCPeerConnection(null, {mandatory:{valid_but_unsupported_1:1}}); threw exception NotSupportedError: Failed to construct 'RTCPeerConnection': Unsatisfiable constraint valid_but_unsupported_1.
PASS new RTCPeerConnection(null, {mandatory:{valid_but_unsupported_1:1, valid_and_supported_1:1}}); threw exception NotSupportedError: Failed to construct 'RTCPeerConnection': Unsatisfiable constraint valid_but_unsupported_1.
PASS new RTCPeerConnection(null, {optional:{valid_and_supported_1:0}}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Malformed constraints object..
PASS new RTCPeerConnection(null, {optional:[{valid_and_supported_1:0,valid_and_supported_2:0}]}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Malformed constraints object..
PASS new RTCPeerConnection(null, {optional:[{invalid:0}]}); did not throw exception.
PASS new RTCPeerConnection(null, {valid_and_supported_1:1}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Malformed constraints object..
PASS new RTCPeerConnection(null, {valid_but_unsupported_1:1}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Malformed constraints object..
PASS new RTCPeerConnection(null, {valid_and_supported_2:1, mandatory:{valid_and_supported_1:1}}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Malformed constraints object..
PASS new RTCPeerConnection({iceServers:[], certificates:null}); threw exception TypeError: Failed to construct 'RTCPeerConnection': The value provided is neither an array, nor does it have indexed properties..
PASS new RTCPeerConnection({iceServers:[], certificates:undefined}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], certificates:[]}); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], certificates:[null]}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Invalid Array element type.
PASS new RTCPeerConnection({iceServers:[], certificates:[1337]}); threw exception TypeError: Failed to construct 'RTCPeerConnection': Invalid Array element type.
PASS new RTCPeerConnection({iceServers:[], certificates:[certRSA]}, null); did not throw exception.
PASS new RTCPeerConnection({iceServers:[], certificates:[certECDSA]}, null); did not throw exception.
PASS certExpired.expires <= new Date().getTime() is true
PASS new RTCPeerConnection({iceServers:[], certificates:[certExpired]}, null); threw exception InvalidAccessError: Failed to construct 'RTCPeerConnection': Expired certificate(s)..
PASS successfullyParsed is true

TEST COMPLETE

