Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
1347 lines (1346 sloc) 136 KB

Web Platform test results

Test IE Chrome Firefox Edge
🔨 datachannel-emptystring
Can send empty strings across a WebRTC data channel.
Test Total 0/1 0/1 0/1 0/1
🔨 getstats
Can get stats from a basic WebRTC call.
Test Total 0/1 1/1 0/1 0/1
🔨 historical
RTCDataChannel member reliable should not exist
RTCPeerConnection member addStream should not exist
RTCPeerConnection member createDTMFSender should not exist
RTCPeerConnection member getLocalStreams should not exist
RTCPeerConnection member getRemoteStreams should not exist
RTCPeerConnection member getStreamById should not exist
RTCPeerConnection member onaddstream should not exist
RTCPeerConnection member onremovestream should not exist
RTCPeerConnection member removeStream should not exist
RTCPeerConnection member updateIce should not exist
mozRTCIceCandidate interface should not exist
mozRTCPeerConnection interface should not exist
mozRTCSessionDescription interface should not exist
webkitRTCPeerConnection interface should not exist
Test Total 13/14 5/14 5/14 5/14
🔨 interfaces.https
Main test driver
Test driver for asyncInitCertificate
Test driver for asyncInitTransports
Test driver for asyncInitMediaStreamTrack
MediaStreamTrack interface: existence and properties of interface object
MediaStreamTrack interface object length
MediaStreamTrack interface object name
MediaStreamTrack interface: existence and properties of interface prototype object
MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
MediaStreamTrack interface: attribute isolated
MediaStreamTrack interface: attribute onisolationchange
MediaStreamTrack must be primary interface of idlTestObjects.mediaStreamTrack
Stringification of idlTestObjects.mediaStreamTrack
MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "isolated" with the proper type
MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "onisolationchange" with the proper type
MediaStreamTrack must be primary interface of generateMediaStreamTrack('audio')
Stringification of generateMediaStreamTrack('audio')
MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "isolated" with the proper type
MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "onisolationchange" with the proper type
RTCPeerConnection interface: existence and properties of interface object
RTCPeerConnection interface object length
RTCPeerConnection interface object name
RTCPeerConnection interface: existence and properties of interface prototype object
RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property
RTCPeerConnection interface: operation createOffer(RTCOfferOptions)
RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions)
RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit)
RTCPeerConnection interface: attribute localDescription
RTCPeerConnection interface: attribute currentLocalDescription
RTCPeerConnection interface: attribute pendingLocalDescription
RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit)
RTCPeerConnection interface: attribute remoteDescription
RTCPeerConnection interface: attribute currentRemoteDescription
RTCPeerConnection interface: attribute pendingRemoteDescription
RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object])
RTCPeerConnection interface: attribute signalingState
RTCPeerConnection interface: attribute iceGatheringState
RTCPeerConnection interface: attribute iceConnectionState
RTCPeerConnection interface: attribute connectionState
RTCPeerConnection interface: attribute canTrickleIceCandidates
RTCPeerConnection interface: operation getDefaultIceServers()
RTCPeerConnection interface: operation getConfiguration()
RTCPeerConnection interface: operation setConfiguration(RTCConfiguration)
RTCPeerConnection interface: operation close()
RTCPeerConnection interface: attribute onnegotiationneeded
RTCPeerConnection interface: attribute onicecandidate
RTCPeerConnection interface: attribute onicecandidateerror
RTCPeerConnection interface: attribute onsignalingstatechange
RTCPeerConnection interface: attribute oniceconnectionstatechange
RTCPeerConnection interface: attribute onicegatheringstatechange
RTCPeerConnection interface: attribute onconnectionstatechange
RTCPeerConnection interface: attribute onfingerprintfailure
RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)
RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)
RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)
RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier)
RTCPeerConnection interface: operation getSenders()
RTCPeerConnection interface: operation getReceivers()
RTCPeerConnection interface: operation getTransceivers()
RTCPeerConnection interface: operation addTrack(MediaStreamTrack, MediaStream)
RTCPeerConnection interface: operation removeTrack(RTCRtpSender)
RTCPeerConnection interface: operation addTransceiver([object Object],[object Object], RTCRtpTransceiverInit)
RTCPeerConnection interface: attribute ontrack
RTCPeerConnection interface: attribute sctp
RTCPeerConnection interface: operation createDataChannel(USVString, RTCDataChannelInit)
RTCPeerConnection interface: attribute ondatachannel
RTCPeerConnection interface: operation getStats(MediaStreamTrack)
RTCPeerConnection interface: operation setIdentityProvider(DOMString, RTCIdentityProviderOptions)
RTCPeerConnection interface: operation getIdentityAssertion()
RTCPeerConnection interface: attribute peerIdentity
RTCPeerConnection interface: attribute idpLoginUrl
RTCPeerConnection interface: attribute idpErrorInfo
RTCPeerConnection must be primary interface of new RTCPeerConnection()
Stringification of new RTCPeerConnection()
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCOfferOptions)" with the proper type
RTCPeerConnection interface: calling createOffer(RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCAnswerOptions)" with the proper type
RTCPeerConnection interface: calling createAnswer(RTCAnswerOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit)" with the proper type
RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "localDescription" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentLocalDescription" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingLocalDescription" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit)" with the proper type
RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "remoteDescription" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentRemoteDescription" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingRemoteDescription" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object])" with the proper type
RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object]) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "signalingState" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceGatheringState" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceConnectionState" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "connectionState" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "canTrickleIceCandidates" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getDefaultIceServers()" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setConfiguration(RTCConfiguration)" with the proper type
RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "close()" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onnegotiationneeded" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidate" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidateerror" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onsignalingstatechange" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "oniceconnectionstatechange" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicegatheringstatechange" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onconnectionstatechange" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onfingerprintfailure" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)" with the proper type
RTCPeerConnection interface: calling createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)" with the proper type
RTCPeerConnection interface: calling createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "generateCertificate(AlgorithmIdentifier)" with the proper type
RTCPeerConnection interface: calling generateCertificate(AlgorithmIdentifier) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getSenders()" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getReceivers()" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getTransceivers()" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTrack(MediaStreamTrack, MediaStream)" with the proper type
RTCPeerConnection interface: calling addTrack(MediaStreamTrack, MediaStream) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "removeTrack(RTCRtpSender)" with the proper type
RTCPeerConnection interface: calling removeTrack(RTCRtpSender) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTransceiver([object Object],[object Object], RTCRtpTransceiverInit)" with the proper type
RTCPeerConnection interface: calling addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ontrack" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "sctp" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createDataChannel(USVString, RTCDataChannelInit)" with the proper type
RTCPeerConnection interface: calling createDataChannel(USVString, RTCDataChannelInit) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ondatachannel" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getStats(MediaStreamTrack)" with the proper type
RTCPeerConnection interface: calling getStats(MediaStreamTrack) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setIdentityProvider(DOMString, RTCIdentityProviderOptions)" with the proper type
RTCPeerConnection interface: calling setIdentityProvider(DOMString, RTCIdentityProviderOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getIdentityAssertion()" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "peerIdentity" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpLoginUrl" with the proper type
RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpErrorInfo" with the proper type
RTCSessionDescription interface: existence and properties of interface object
RTCSessionDescription interface object length
RTCSessionDescription interface object name
RTCSessionDescription interface: existence and properties of interface prototype object
RTCSessionDescription interface: existence and properties of interface prototype object's "constructor" property
RTCSessionDescription interface: attribute type
RTCSessionDescription interface: attribute sdp
RTCSessionDescription interface: operation toJSON()
RTCSessionDescription must be primary interface of new RTCSessionDescription({ type: 'offer' })
Stringification of new RTCSessionDescription({ type: 'offer' })
RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "type" with the proper type
RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "sdp" with the proper type
RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "toJSON()" with the proper type
Test default toJSON operation of RTCSessionDescription
RTCIceCandidate interface: existence and properties of interface object
RTCIceCandidate interface object length
RTCIceCandidate interface object name
RTCIceCandidate interface: existence and properties of interface prototype object
RTCIceCandidate interface: existence and properties of interface prototype object's "constructor" property
RTCIceCandidate interface: attribute candidate
RTCIceCandidate interface: attribute sdpMid
RTCIceCandidate interface: attribute sdpMLineIndex
RTCIceCandidate interface: attribute foundation
RTCIceCandidate interface: attribute component
RTCIceCandidate interface: attribute priority
RTCIceCandidate interface: attribute ip
RTCIceCandidate interface: attribute protocol
RTCIceCandidate interface: attribute port
RTCIceCandidate interface: attribute type
RTCIceCandidate interface: attribute tcpType
RTCIceCandidate interface: attribute relatedAddress
RTCIceCandidate interface: attribute relatedPort
RTCIceCandidate interface: attribute usernameFragment
RTCIceCandidate interface: operation toJSON()
RTCIceCandidate must be primary interface of new RTCIceCandidate({ sdpMid: 1 })
Stringification of new RTCIceCandidate({ sdpMid: 1 })
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "candidate" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMid" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMLineIndex" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "foundation" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "component" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "priority" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "ip" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "protocol" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "port" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "type" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "tcpType" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedAddress" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedPort" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "usernameFragment" with the proper type
RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "toJSON()" with the proper type
Test toJSON operation of RTCIceCandidate
RTCPeerConnectionIceEvent interface: existence and properties of interface object
RTCPeerConnectionIceEvent interface object length
RTCPeerConnectionIceEvent interface object name
RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object
RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's "constructor" property
RTCPeerConnectionIceEvent interface: attribute candidate
RTCPeerConnectionIceEvent interface: attribute url
RTCPeerConnectionIceEvent must be primary interface of new RTCPeerConnectionIceEvent('ice')
Stringification of new RTCPeerConnectionIceEvent('ice')
RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "candidate" with the proper type
RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "url" with the proper type
RTCPeerConnectionIceErrorEvent interface: existence and properties of interface object
RTCPeerConnectionIceErrorEvent interface object length
RTCPeerConnectionIceErrorEvent interface object name
RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object
RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's "constructor" property
RTCPeerConnectionIceErrorEvent interface: attribute hostCandidate
RTCPeerConnectionIceErrorEvent interface: attribute url
RTCPeerConnectionIceErrorEvent interface: attribute errorCode
RTCPeerConnectionIceErrorEvent interface: attribute errorText
RTCPeerConnectionIceErrorEvent must be primary interface of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 });
Stringification of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 });
RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "hostCandidate" with the proper type
RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "url" with the proper type
RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorCode" with the proper type
RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorText" with the proper type
RTCCertificate interface: existence and properties of interface object
RTCCertificate interface object length
RTCCertificate interface object name
RTCCertificate interface: existence and properties of interface prototype object
RTCCertificate interface: existence and properties of interface prototype object's "constructor" property
RTCCertificate interface: attribute expires
RTCCertificate interface: operation getFingerprints()
RTCCertificate interface: operation getAlgorithm()
RTCCertificate must be primary interface of idlTestObjects.certificate
Stringification of idlTestObjects.certificate
RTCCertificate interface: idlTestObjects.certificate must inherit property "expires" with the proper type
RTCCertificate interface: idlTestObjects.certificate must inherit property "getFingerprints()" with the proper type
RTCCertificate interface: idlTestObjects.certificate must inherit property "getAlgorithm()" with the proper type
RTCRtpSender interface: existence and properties of interface object
RTCRtpSender interface object length
RTCRtpSender interface object name
RTCRtpSender interface: existence and properties of interface prototype object
RTCRtpSender interface: existence and properties of interface prototype object's "constructor" property
RTCRtpSender interface: attribute track
RTCRtpSender interface: attribute transport
RTCRtpSender interface: attribute rtcpTransport
RTCRtpSender interface: operation getCapabilities(DOMString)
RTCRtpSender interface: operation setParameters(RTCRtpParameters)
RTCRtpSender interface: operation getParameters()
RTCRtpSender interface: operation replaceTrack(MediaStreamTrack)
RTCRtpSender interface: operation getStats()
RTCRtpSender interface: attribute dtmf
RTCRtpSender must be primary interface of new RTCPeerConnection().addTransceiver('audio').sender
Stringification of new RTCPeerConnection().addTransceiver('audio').sender
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "track" with the proper type
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "transport" with the proper type
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "rtcpTransport" with the proper type
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getCapabilities(DOMString)" with the proper type
RTCRtpSender interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "setParameters(RTCRtpParameters)" with the proper type
RTCRtpSender interface: calling setParameters(RTCRtpParameters) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getParameters()" with the proper type
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "replaceTrack(MediaStreamTrack)" with the proper type
RTCRtpSender interface: calling replaceTrack(MediaStreamTrack) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getStats()" with the proper type
RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "dtmf" with the proper type
RTCRtpReceiver interface: existence and properties of interface object
RTCRtpReceiver interface object length
RTCRtpReceiver interface object name
RTCRtpReceiver interface: existence and properties of interface prototype object
RTCRtpReceiver interface: existence and properties of interface prototype object's "constructor" property
RTCRtpReceiver interface: attribute track
RTCRtpReceiver interface: attribute transport
RTCRtpReceiver interface: attribute rtcpTransport
RTCRtpReceiver interface: operation getCapabilities(DOMString)
RTCRtpReceiver interface: operation getParameters()
RTCRtpReceiver interface: operation getContributingSources()
RTCRtpReceiver interface: operation getSynchronizationSources()
RTCRtpReceiver interface: operation getStats()
RTCRtpReceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio').receiver
Stringification of new RTCPeerConnection().addTransceiver('audio').receiver
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "track" with the proper type
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "transport" with the proper type
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "rtcpTransport" with the proper type
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getCapabilities(DOMString)" with the proper type
RTCRtpReceiver interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').receiver with too few arguments must throw TypeError
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getParameters()" with the proper type
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getContributingSources()" with the proper type
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getSynchronizationSources()" with the proper type
RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getStats()" with the proper type
RTCRtpContributingSource interface: existence and properties of interface object
RTCRtpContributingSource interface object length
RTCRtpContributingSource interface object name
RTCRtpContributingSource interface: existence and properties of interface prototype object
RTCRtpContributingSource interface: existence and properties of interface prototype object's "constructor" property
RTCRtpContributingSource interface: attribute timestamp
RTCRtpContributingSource interface: attribute source
RTCRtpContributingSource interface: attribute audioLevel
RTCRtpSynchronizationSource interface: existence and properties of interface object
RTCRtpSynchronizationSource interface object length
RTCRtpSynchronizationSource interface object name
RTCRtpSynchronizationSource interface: existence and properties of interface prototype object
RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's "constructor" property
RTCRtpSynchronizationSource interface: attribute timestamp
RTCRtpSynchronizationSource interface: attribute source
RTCRtpSynchronizationSource interface: attribute audioLevel
RTCRtpSynchronizationSource interface: attribute voiceActivityFlag
RTCRtpTransceiver interface: existence and properties of interface object
RTCRtpTransceiver interface object length
RTCRtpTransceiver interface object name
RTCRtpTransceiver interface: existence and properties of interface prototype object
RTCRtpTransceiver interface: existence and properties of interface prototype object's "constructor" property
RTCRtpTransceiver interface: attribute mid
RTCRtpTransceiver interface: attribute sender
RTCRtpTransceiver interface: attribute receiver
RTCRtpTransceiver interface: attribute stopped
RTCRtpTransceiver interface: attribute direction
RTCRtpTransceiver interface: attribute currentDirection
RTCRtpTransceiver interface: operation setDirection(RTCRtpTransceiverDirection)
RTCRtpTransceiver interface: operation stop()
RTCRtpTransceiver interface: operation setCodecPreferences([object Object])
RTCRtpTransceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio')
Stringification of new RTCPeerConnection().addTransceiver('audio')
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "mid" with the proper type
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "sender" with the proper type
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "receiver" with the proper type
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stopped" with the proper type
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "direction" with the proper type
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "currentDirection" with the proper type
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setDirection(RTCRtpTransceiverDirection)" with the proper type
RTCRtpTransceiver interface: calling setDirection(RTCRtpTransceiverDirection) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stop()" with the proper type
RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setCodecPreferences([object Object])" with the proper type
RTCRtpTransceiver interface: calling setCodecPreferences([object Object]) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError
RTCDtlsTransport interface: existence and properties of interface object
RTCDtlsTransport interface object length
RTCDtlsTransport interface object name
RTCDtlsTransport interface: existence and properties of interface prototype object
RTCDtlsTransport interface: existence and properties of interface prototype object's "constructor" property
RTCDtlsTransport interface: attribute transport
RTCDtlsTransport interface: attribute state
RTCDtlsTransport interface: operation getRemoteCertificates()
RTCDtlsTransport interface: attribute onstatechange
RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport
Stringification of idlTestObjects.dtlsTransport
RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "transport" with the proper type
RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "state" with the proper type
RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type
RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onstatechange" with the proper type
RTCIceTransport interface: existence and properties of interface object
RTCIceTransport interface object length
RTCIceTransport interface object name
RTCIceTransport interface: existence and properties of interface prototype object
RTCIceTransport interface: existence and properties of interface prototype object's "constructor" property
RTCIceTransport interface: attribute role
RTCIceTransport interface: attribute component
RTCIceTransport interface: attribute state
RTCIceTransport interface: attribute gatheringState
RTCIceTransport interface: operation getLocalCandidates()
RTCIceTransport interface: operation getRemoteCandidates()
RTCIceTransport interface: operation getSelectedCandidatePair()
RTCIceTransport interface: operation getLocalParameters()
RTCIceTransport interface: operation getRemoteParameters()
RTCIceTransport interface: attribute onstatechange
RTCIceTransport interface: attribute ongatheringstatechange
RTCIceTransport interface: attribute onselectedcandidatepairchange
RTCIceTransport must be primary interface of idlTestObjects.iceTransport
Stringification of idlTestObjects.iceTransport
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "role" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "component" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "state" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "gatheringState" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalCandidates()" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteCandidates()" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getSelectedCandidatePair()" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalParameters()" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteParameters()" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onstatechange" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "ongatheringstatechange" with the proper type
RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onselectedcandidatepairchange" with the proper type
RTCTrackEvent interface: existence and properties of interface object
RTCTrackEvent interface object length
RTCTrackEvent interface object name
RTCTrackEvent interface: existence and properties of interface prototype object
RTCTrackEvent interface: existence and properties of interface prototype object's "constructor" property
RTCTrackEvent interface: attribute receiver
RTCTrackEvent interface: attribute track
RTCTrackEvent interface: attribute streams
RTCTrackEvent interface: attribute transceiver
RTCTrackEvent must be primary interface of initTrackEvent()
Stringification of initTrackEvent()
RTCTrackEvent interface: initTrackEvent() must inherit property "receiver" with the proper type
RTCTrackEvent interface: initTrackEvent() must inherit property "track" with the proper type
RTCTrackEvent interface: initTrackEvent() must inherit property "streams" with the proper type
RTCTrackEvent interface: initTrackEvent() must inherit property "transceiver" with the proper type
RTCSctpTransport interface: existence and properties of interface object
RTCSctpTransport interface object length
RTCSctpTransport interface object name
RTCSctpTransport interface: existence and properties of interface prototype object
RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property
RTCSctpTransport interface: attribute transport
RTCSctpTransport interface: attribute maxMessageSize
RTCSctpTransport must be primary interface of idlTestObjects.sctpTransport
Stringification of idlTestObjects.sctpTransport
RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "transport" with the proper type
RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxMessageSize" with the proper type
RTCDataChannel interface: existence and properties of interface object
RTCDataChannel interface object length
RTCDataChannel interface object name
RTCDataChannel interface: existence and properties of interface prototype object
RTCDataChannel interface: existence and properties of interface prototype object's "constructor" property
RTCDataChannel interface: attribute label
RTCDataChannel interface: attribute ordered
RTCDataChannel interface: attribute maxPacketLifeTime
RTCDataChannel interface: attribute maxRetransmits
RTCDataChannel interface: attribute protocol
RTCDataChannel interface: attribute negotiated
RTCDataChannel interface: attribute id
RTCDataChannel interface: attribute priority
RTCDataChannel interface: attribute readyState
RTCDataChannel interface: attribute bufferedAmount
RTCDataChannel interface: attribute bufferedAmountLowThreshold
RTCDataChannel interface: attribute onopen
RTCDataChannel interface: attribute onbufferedamountlow
RTCDataChannel interface: attribute onerror
RTCDataChannel interface: attribute onclose
RTCDataChannel interface: operation close()
RTCDataChannel interface: attribute onmessage
RTCDataChannel interface: attribute binaryType
RTCDataChannel interface: operation send(USVString)
RTCDataChannel interface: operation send(Blob)
RTCDataChannel interface: operation send(ArrayBuffer)
RTCDataChannel interface: operation send(ArrayBufferView)
RTCDataChannel must be primary interface of new RTCPeerConnection().createDataChannel('')
Stringification of new RTCPeerConnection().createDataChannel('')
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "label" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "ordered" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxPacketLifeTime" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxRetransmits" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "protocol" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "negotiated" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "id" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "priority" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "readyState" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmount" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmountLowThreshold" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onopen" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onbufferedamountlow" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onerror" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onclose" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "close()" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onmessage" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "binaryType" with the proper type
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(USVString)" with the proper type
RTCDataChannel interface: calling send(USVString) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(Blob)" with the proper type
RTCDataChannel interface: calling send(Blob) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBuffer)" with the proper type
RTCDataChannel interface: calling send(ArrayBuffer) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBufferView)" with the proper type
RTCDataChannel interface: calling send(ArrayBufferView) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
RTCDataChannelEvent interface: existence and properties of interface object
RTCDataChannelEvent interface object length
RTCDataChannelEvent interface object name
RTCDataChannelEvent interface: existence and properties of interface prototype object
RTCDataChannelEvent interface: existence and properties of interface prototype object's "constructor" property
RTCDataChannelEvent interface: attribute channel
RTCDataChannelEvent must be primary interface of new RTCDataChannelEvent('channel', { channel: new RTCPeerConnection().createDataChannel('') })
Stringification of new RTCDataChannelEvent('channel', { channel: new RTCPeerConnection().createDataChannel('') })
RTCDataChannelEvent interface: new RTCDataChannelEvent('channel', { channel: new RTCPeerConnection().createDataChannel('') }) must inherit property "channel" with the proper type
RTCDTMFSender interface: existence and properties of interface object
RTCDTMFSender interface object length
RTCDTMFSender interface object name
RTCDTMFSender interface: existence and properties of interface prototype object
RTCDTMFSender interface: existence and properties of interface prototype object's "constructor" property
RTCDTMFSender interface: operation insertDTMF(DOMString, unsigned long, unsigned long)
RTCDTMFSender interface: attribute ontonechange
RTCDTMFSender interface: attribute toneBuffer
RTCDTMFToneChangeEvent interface: existence and properties of interface object
RTCDTMFToneChangeEvent interface object length
RTCDTMFToneChangeEvent interface object name
RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object
RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's "constructor" property
RTCDTMFToneChangeEvent interface: attribute tone
RTCStatsReport interface: existence and properties of interface object
RTCStatsReport interface object length
RTCStatsReport interface object name
RTCStatsReport interface: existence and properties of interface prototype object
RTCStatsReport interface: existence and properties of interface prototype object's "constructor" property
RTCIdentityProviderGlobalScope interface: existence and properties of interface object
RTCIdentityProviderRegistrar interface: existence and properties of interface object
RTCIdentityAssertion interface: existence and properties of interface object
RTCIdentityAssertion interface object length
RTCIdentityAssertion interface object name
RTCIdentityAssertion interface: existence and properties of interface prototype object
RTCIdentityAssertion interface: existence and properties of interface prototype object's "constructor" property
RTCIdentityAssertion interface: attribute idp
RTCIdentityAssertion interface: attribute name
RTCErrorEvent interface: existence and properties of interface object
RTCErrorEvent interface object length
RTCErrorEvent interface object name
RTCErrorEvent interface: existence and properties of interface prototype object
RTCErrorEvent interface: existence and properties of interface prototype object's "constructor" property
RTCErrorEvent interface: attribute error
RTCErrorEvent must be primary interface of new RTCErrorEvent('error')
Stringification of new RTCErrorEvent('error')
RTCErrorEvent interface: new RTCErrorEvent('error') must inherit property "error" with the proper type
RTCDataChannelEvent must be primary interface of new RTCDataChannelEvent('channel', { channel: new RTCPeerConnection().createDataChannel('') })
Stringification of new RTCDataChannelEvent('channel', { channel: new RTCPeerConnection().createDataChannel('') })
RTCDataChannelEvent interface: new RTCDataChannelEvent('channel', { channel: new RTCPeerConnection().createDataChannel('') }) must inherit property "channel" with the proper type
Test Total 82/504 201/504 221/504 74/504
🔨 no-media-call
Can set up a basic WebRTC call with no data.
Test Total 0/1 1/1 0/1 0/1
🔨 promises-call
Can set up a basic WebRTC call with only data using promises.
Test Total 1/1 1/1 1/1 0/1
🔨 RTCCertificate
Constructing RTCPeerConnection with expired certificate should reject with InvalidAccessError
Calling setConfiguration with different set of certs should reject with InvalidModificationError
RTCCertificate should have at least one fingerprint
RTCPeerConnection({ certificates }) should generate offer SDP with fingerprint of provided certificate
RTCPeerConnection({ certificates }) should generate offer SDP with fingerprint of all provided certificates
Test Total 0/5 4/5 0/5 0/5
🔨 RTCConfiguration-bundlePolicy
Default bundlePolicy should be balanced
new RTCPeerConnection({ bundlePolicy: undefined }) should have bundlePolicy balanced
new RTCPeerConnection({ bundlePolicy: 'balanced' }) should succeed
new RTCPeerConnection({ bundlePolicy: 'max-compat' }) should succeed
new RTCPeerConnection({ bundlePolicy: 'max-bundle' }) should succeed
setConfiguration({}) with initial default bundlePolicy balanced should succeed
setConfiguration({}) with initial bundlePolicy balanced should succeed
setConfiguration({ bundlePolicy: balanced }) with initial default bundlePolicy balanced should succeed
setConfiguration({ bundlePolicy: 'balanced' }) with initial bundlePolicy balanced should succeed
setConfiguration({ bundlePolicy: 'max-compat' }) with initial bundlePolicy max-compat should succeed
setConfiguration({ bundlePolicy: 'max-bundle' }) with initial bundlePolicy max-bundle should succeed
new RTCPeerConnection({ bundlePolicy: null }) should throw TypeError
new RTCPeerConnection({ bundlePolicy: 'invalid' }) should throw TypeError
setConfiguration({ bundlePolicy: 'max-compat' }) with initial bundlePolicy max-bundle should throw InvalidModificationError
setConfiguration({}) with initial bundlePolicy max-bundle should throw InvalidModificationError
Test Total 13/15 10/15 7/15 0/15
🔨 RTCConfiguration-iceCandidatePoolSize
Initialize a new RTCPeerConnection with no iceCandidatePoolSize
Initialize a new RTCPeerConnection with iceCandidatePoolSize: 0
Initialize a new RTCPeerConnection with iceCandidatePoolSize: 255
Initialize a new RTCPeerConnection with iceCandidatePoolSize: -1 (Out Of Range)
Initialize a new RTCPeerConnection with iceCandidatePoolSize: 256 (Out Of Range)
Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 0
Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 255
Reconfigure RTCPeerConnection instance iceCandidatePoolSize to -1 (Out Of Range)
Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 256 (Out Of Range)
Test Total 9/9 4/9 0/9 0/9
🔨 RTCConfiguration-iceServers
new RTCPeerConnection() should have default configuration.iceServers of undefined
new RTCPeerConnection(config) - { iceServers: null } should throw TypeError
setConfiguration(config) - { iceServers: null } should throw TypeError
new RTCPeerConnection(config) - { iceServers: undefined } should succeed
setConfiguration(config) - { iceServers: undefined } should succeed
new RTCPeerConnection(config) - { iceServers: [] } should succeed
setConfiguration(config) - { iceServers: [] } should succeed
new RTCPeerConnection(config) - { iceServers: [null] } should throw TypeError
setConfiguration(config) - { iceServers: [null] } should throw TypeError
new RTCPeerConnection(config) - { iceServers: [undefined] } should throw TypeError
setConfiguration(config) - { iceServers: [undefined] } should throw TypeError
new RTCPeerConnection(config) - { iceServers: [{}] } should throw TypeError
setConfiguration(config) - { iceServers: [{}] } should throw TypeError
new RTCPeerConnection(config) - with empty list urls should succeed
setConfiguration(config) - with empty list urls should succeed
new RTCPeerConnection(config) - with stun server should succeed
setConfiguration(config) - with stun server should succeed
new RTCPeerConnection(config) - with stun server array should succeed
setConfiguration(config) - with stun server array should succeed
new RTCPeerConnection(config) - with 2 stun servers should succeed
setConfiguration(config) - with 2 stun servers should succeed
new RTCPeerConnection(config) - with turn server, username, credential should succeed
setConfiguration(config) - with turn server, username, credential should succeed
new RTCPeerConnection(config) - with turns server and empty string username, credential should succeed
setConfiguration(config) - with turns server and empty string username, credential should succeed
new RTCPeerConnection(config) - with turn server and empty string username, credential should succeed
setConfiguration(config) - with turn server and empty string username, credential should succeed
new RTCPeerConnection(config) - with one turns server, one turn server, username, credential should succeed
setConfiguration(config) - with one turns server, one turn server, username, credential should succeed
new RTCPeerConnection(config) - with stun server and credentialType password should succeed
setConfiguration(config) - with stun server and credentialType password should succeed
new RTCPeerConnection(config) - with turn server and no credentials should throw InvalidAccessError
setConfiguration(config) - with turn server and no credentials should throw InvalidAccessError
new RTCPeerConnection(config) - with turn server and only username should throw InvalidAccessError
setConfiguration(config) - with turn server and only username should throw InvalidAccessError
new RTCPeerConnection(config) - with turn server and only credential should throw InvalidAccessError
setConfiguration(config) - with turn server and only credential should throw InvalidAccessError
new RTCPeerConnection(config) - with turns server and no credentials should throw InvalidAccessError
setConfiguration(config) - with turns server and no credentials should throw InvalidAccessError
new RTCPeerConnection(config) - with turns server and only username should throw InvalidAccessError
setConfiguration(config) - with turns server and only username should throw InvalidAccessError
new RTCPeerConnection(config) - with turns server and only credential should throw InvalidAccessError
setConfiguration(config) - with turns server and only credential should throw InvalidAccessError
new RTCPeerConnection(config) - with relative url should throw SyntaxError
setConfiguration(config) - with relative url should throw SyntaxError
new RTCPeerConnection(config) - with http url should throw SyntaxError
setConfiguration(config) - with http url should throw SyntaxError
new RTCPeerConnection(config) - with invalid turn url should throw SyntaxError
setConfiguration(config) - with invalid turn url should throw SyntaxError
new RTCPeerConnection(config) - with invalid stun url should throw SyntaxError
setConfiguration(config) - with invalid stun url should throw SyntaxError
new RTCPeerConnection(config) - with empty urls and credentialType password should succeed
setConfiguration(config) - with empty urls and credentialType password should succeed
new RTCPeerConnection(config) - with empty urls and credentialType oauth should succeed
setConfiguration(config) - with empty urls and credentialType oauth should succeed
new RTCPeerConnection(config) - with invalid credentialType should throw TypeError
setConfiguration(config) - with invalid credentialType should throw TypeError
new RTCPeerConnection(config) - with credentialType token should throw TypeError
setConfiguration(config) - with credentialType token should throw TypeError
new RTCPeerConnection(config) - with url field should throw TypeError
setConfiguration(config) - with url field should throw TypeError
new RTCPeerConnection(config) - with turns server, credentialType password, and RTCOauthCredential credential should throw InvalidAccessError
setConfiguration(config) - with turns server, credentialType password, and RTCOauthCredential credential should throw InvalidAccessError
new RTCPeerConnection(config) - with turns server, credentialType oauth, and string credential should throw InvalidAccessError
setConfiguration(config) - with turns server, credentialType oauth, and string credential should throw InvalidAccessError
new RTCPeerConnection(config) - with turns server, credentialType oauth and RTCOAuthCredential credential should succeed
setConfiguration(config) - with turns server, credentialType oauth and RTCOAuthCredential credential should succeed
new RTCPeerConnection(config) - with both turns and stun server, credentialType oauth and RTCOAuthCredential credential should succeed
setConfiguration(config) - with both turns and stun server, credentialType oauth and RTCOAuthCredential credential should succeed
new RTCPeerConnection(config) - with stun server, credentialType oauth, and string credential should succeed
setConfiguration(config) - with stun server, credentialType oauth, and string credential should succeed
new RTCPeerConnection(config) - with stun server, credentialType password, and RTCOAuthCredential credential should succeed
setConfiguration(config) - with stun server, credentialType password, and RTCOAuthCredential credential should succeed
new RTCPeerConnection(config) - with empty urls list, credentialType oauth, and string credential should succeed
setConfiguration(config) - with empty urls list, credentialType oauth, and string credential should succeed
new RTCPeerConnection(config) - with empty urls list, credentialType password, and RTCOAuthCredential credential should succeed
setConfiguration(config) - with empty urls list, credentialType password, and RTCOAuthCredential credential should succeed
Test Total 28/77 24/77 24/77 8/77
🔨 RTCConfiguration-iceTransportPolicy
new RTCPeerConnection() should have default iceTransportPolicy all
new RTCPeerConnection({ iceTransportPolicy: undefined }) should have default iceTransportPolicy all
new RTCPeerConnection({ iceTransportPolicy: 'all' }) should succeed
new RTCPeerConnection({ iceTransportPolicy: 'relay' }) should succeed
setConfiguration({ iceTransportPolicy: 'relay' }) with initial iceTransportPolicy all should succeed
setConfiguration({ iceTransportPolicy: 'all' }) with initial iceTransportPolicy relay should succeed
setConfiguration({}) with initial iceTransportPolicy relay should set new value to all
new RTCPeerConnection(config) - with invalid iceTransportPolicy should throw TypeError
setConfiguration(config) - with invalid iceTransportPolicy should throw TypeError
new RTCPeerConnection(config) - with none iceTransportPolicy should throw TypeError
setConfiguration(config) - with none iceTransportPolicy should throw TypeError
new RTCPeerConnection(config) - with null iceTransportPolicy should throw TypeError
setConfiguration(config) - with null iceTransportPolicy should throw TypeError
new RTCPeerConnection({ iceTransports: 'relay' }) should have no effect
new RTCPeerConnection({ iceTransports: 'invalid' }) should have no effect
new RTCPeerConnection({ iceTransports: null }) should have no effect
Test Total 16/16 6/16 10/16 3/16
🔨 RTCConfiguration-rtcpMuxPolicy
new RTCPeerConnection() should have default rtcpMuxPolicy require
new RTCPeerConnection({ rtcpMuxPolicy: undefined }) should have default rtcpMuxPolicy require
new RTCPeerConnection({ rtcpMuxPolicy: 'require' }) should succeed
new RTCPeerConnection({ rtcpMuxPolicy: 'negotiate' }) may succeed or throw NotSupportedError
new RTCPeerConnection(config) - with { rtcpMuxPolicy: null } should throw TypeError
setConfiguration(config) - with { rtcpMuxPolicy: null } should throw TypeError
new RTCPeerConnection(config) - with { rtcpMuxPolicy: 'invalid' } should throw TypeError
setConfiguration(config) - with { rtcpMuxPolicy: 'invalid' } should throw TypeError
setConfiguration({ rtcpMuxPolicy: 'negotiate' }) with initial rtcpMuxPolicy require should throw InvalidModificationError
setConfiguration({ rtcpMuxPolicy: 'require' }) with initial rtcpMuxPolicy negotiate should throw InvalidModificationError
setConfiguration({}) with initial rtcpMuxPolicy negotiate should throw InvalidModificationError
Test Total 8/11 7/11 0/11 2/11
🔨 RTCDataChannel-bufferedAmount
bufferedAmount should increase to byte length of encoded unicode string sent
bufferedAmount should increase to byte length of buffer sent
bufferedAmount should increase to size of blob sent
bufferedAmount should increase by byte length for each message sent
Test Total 0/4 0/4 0/4 0/4
🔨 RTCDataChannel-id
DTLS client uses odd data channel IDs
DTLS server uses even data channel IDs
Test Total 2/2 2/2 0/2 0/2
🔨 RTCDataChannel-send
Calling send() when data channel is in connecting state should throw InvalidStateError
Data channel should be able to send simple string and receive as string
Data channel should be able to send unicode string and receive as unicode string
Data channel should ignore binaryType and always receive string message as string
Data channel should be able to send Uint8Array message and receive as ArrayBuffer
Data channel should be able to send ArrayBuffer message and receive as ArrayBuffer
Data channel should be able to send Blob message and receive as ArrayBuffer
Data channel should be able to send ArrayBuffer message and receive as Blob
Data channel binaryType should receive message as Blob by default
Sending multiple messages with different types should succeed and be received
Test Total 3/10 6/10 10/10 0/10
🔨 RTCDataChannelEvent-constructor
RTCDataChannelEvent constructor without a required argument.
RTCDataChannelEvent constructor with channel passed as null.
RTCDataChannelEvent constructor with a channel passed as undefined.
RTCDataChannelEvent constructor with full arguments.
Test Total 0/4 4/4 1/4 0/4
🔨 RTCDtlsTransport-getRemoteCertificates
RTCDtlsTransport.prototype.getRemoteCertificates
Test Total 0/1 0/1 0/1 0/1
🔨 RTCDTMFSender-insertDTMF.https
insertDTMF() should succeed if tones contains valid DTMF characters
insertDTMF() should throw InvalidCharacterError if tones contains invalid DTMF characters
insertDTMF() should throw InvalidStateError if transceiver is stopped
insertDTMF() should throw InvalidStateError if transceiver.currentDirection is recvonly
insertDTMF() should throw InvalidStateError if transceiver.currentDirection is inactive
insertDTMF() should set toneBuffer to provided tones normalized, with old tones overridden
Test Total 0/6 0/6 3/6 0/6
🔨 RTCDTMFSender-ontonechange-long.https
insertDTMF with duration greater than 6000 should be clamped to 6000
Test Total 0/1 0/1 1/1 0/1
🔨 RTCDTMFSender-ontonechange.https
insertDTMF() with default duration and intertoneGap should fire tonechange events at the expected time
insertDTMF() with explicit duration and intertoneGap should fire tonechange events at the expected time
insertDTMF('') should not fire any tonechange event, including for '' tone
insertDTMF() with duration less than 40 should be clamped to 40
insertDTMF() with interToneGap less than 30 should be clamped to 30
insertDTMF with comma should delay next tonechange event for a constant 2000ms
insertDTMF() with transceiver stopped in the middle should stop future tonechange events from firing
Calling insertDTMF() in the middle of tonechange events should cause future tonechanges to be updated to new tones
Calling insertDTMF() multiple times in the middle of tonechange events should cause future tonechanges to be updated the last provided tones
Calling insertDTMF('') in the middle of tonechange events should stop future tonechange events from firing
Setting transceiver.currentDirection to recvonly in the middle of tonechange events should stop future tonechange events from firing
Test Total 0/11 0/11 5/11 0/11
🔨 RTCIceCandidate-constructor
new RTCIceCandidate()
new RTCIceCandidate({})
new RTCIceCandidate({ ... }) with manually filled default values
new RTCIceCandidate({ sdpMid: null, sdpMLineIndex: null })
new RTCIceCandidate({ candidate: '' })
new RTCIceCandidate({ candidate: null })
new RTCIceCandidate({ ... }) with valid candidate string only
new RTCIceCandidate({ sdpMid: 'audio' })
new RTCIceCandidate({ sdpMLineIndex: 0 })
new RTCIceCandidate({ sdpMid: 'audio', sdpMLineIndex: 0 })
new RTCIceCandidate({ candidate: '', sdpMid: 'audio' }
new RTCIceCandidate({ candidate: '', sdpMLineIndex: 0 }
new RTCIceCandidate({ ... }) with valid candidate string and sdpMid
new RTCIceCandidate({ ... }) with invalid candidate string and sdpMid
new RTCIceCandidate({ ... }) with non default value for all fields
new RTCIceCandidate({ ... }) with invalid sdpMid
new RTCIceCandidate({ ... }) with invalid sdpMLineIndex
Test Total 6/17 1/17 3/17 0/17
🔨 RTCIceTransport
Two connected iceTransports should has matching local/remote candidates returned
Unconnected iceTransport should have empty remote candidates and selected pair
Test Total 0/2 0/2 0/2 0/2
🔨 RTCPeerConnection-addIceCandidate
Add null candidate should reject with TypeError
Add ICE candidate before setting remote description should reject with InvalidStateError
Add ICE candidate after setting remote description should succeed
Add ICE candidate with RTCIceCandidate should succeed
Add candidate with only valid sdpMid should succeed
Add candidate with only valid sdpMLineIndex should succeed
addIceCandidate with first sdpMid and sdpMLineIndex add candidate to first media stream
addIceCandidate with second sdpMid and sdpMLineIndex should add candidate to second media stream
Add candidate for first media stream with null ufrag should add candidate to first media stream
Adding multiple candidates should add candidates to their corresponding media stream
Add with empty candidate string (end of candidate) should succeed
Add candidate with both sdpMid and sdpMLineIndex manually set to null should reject with TypeError
Add candidate with only valid candidate string should reject with TypeError
Add candidate with invalid candidate string and both sdpMid and sdpMLineIndex null should reject with TypeError
Add candidate with empty dict should reject with TypeError
Add candidate with manually filled default values should reject with TypeError
Add candidate with invalid sdpMid should reject with OperationError
Add candidate with invalid sdpMLineIndex should reject with OperationError
Invalid sdpMLineIndex should be ignored if valid sdpMid is provided
Add candidate for media stream 2 with null ufrag should succeed
Add candidate with invalid ufrag should reject with OperationError
Add candidate with invalid candidate string should reject with OperationError
Add candidate with sdpMid belonging to different ufrag should reject with OperationError
Test Total 14/23 13/23 13/23 0/23
🔨 RTCPeerConnection-addTrack.https
addTrack when pc is closed should throw InvalidStateError
addTrack with single track argument and no mediaStream should succeed
addTrack with single track argument and single mediaStream should succeed
addTrack with single track argument and multiple mediaStreams should succeed
Adding the same track multiple times should throw InvalidAccessError
addTrack with existing sender with null track, same kind, and recvonly direction should reuse sender
addTrack with existing sender with null track, same kind, and sendrecv direction should create new sender
addTrack with existing sender with null track, different kind, and recvonly direction should create new sender
Test Total 1/8 0/8 3/8 0/8
🔨 RTCPeerConnection-addTransceiver
addTransceiver() with string argument as invalid kind should throw TypeError
addTransceiver('audio') should return an audio transceiver
addTransceiver('video') should return a video transceiver
addTransceiver() with direction sendonly should have result transceiver.direction be the same
addTransceiver() with direction inactive should have result transceiver.direction be the same
addTransceiver() with invalid direction should throw TypeError
addTransceiver(track) should have result with sender.track be given track
addTransceiver(track) multiple times should create multiple transceivers
addTransceiver() with rid containing invalid non-alphanumeric characters should throw TypeError
addTransceiver() with rid longer than 16 characters should throw TypeError
addTransceiver() with valid rid value should succeed
addTransceiver() with readonly ssrc set should throw InvalidAccessError
addTransceiver() with readonly rtx set should throw InvalidAccessError
addTransceiver() with readonly fec set should throw InvalidAccessError
addTransceiver() with valid sendEncodings should succeed
Test Total 4/15 0/15 0/15 0/15
🔨 RTCPeerConnection-canTrickleIceCandidates
canTrickleIceCandidates property is null prior to setRemoteDescription
canTrickleIceCandidates property is true after setRemoteDescription with a=ice-options:trickle
canTrickleIceCandidates property is false after setRemoteDescription without a=ice-options:trickle
Test Total 1/3 0/3 3/3 0/3
🔨 RTCPeerConnection-connectionState
Initial connectionState should be new
connection with one data channel should eventually have connected connection state
Test Total 1/2 0/2 0/2 0/2
🔨 RTCPeerConnection-constructor
RTCPeerConnection.length
new RTCPeerConnection()
new RTCPeerConnection(null)
new RTCPeerConnection(undefined)
new RTCPeerConnection({})
new RTCPeerConnection({ peerIdentity: toStringThrows })
new RTCPeerConnection({ certificates: null })
new RTCPeerConnection({ certificates: undefined })
new RTCPeerConnection({ certificates: [] })
new RTCPeerConnection({ certificates: [null] })
new RTCPeerConnection({ certificates: [undefined] })
localDescription initial value
currentLocalDescription initial value
pendingLocalDescription initial value
remoteDescription initial value
currentRemoteDescription initial value
pendingRemoteDescription initial value
signalingState initial value
iceGatheringState initial value
iceConnectionState initial value
connectionState initial value
canTrickleIceCandidates initial value
Test Total 17/22 13/22 21/22 2/22
🔨 RTCPeerConnection-createAnswer
createAnswer() with null remoteDescription should reject with InvalidStateError
createAnswer() after setting remote description should succeed
createAnswer() when connection is closed reject with InvalidStateError
Test Total 3/3 1/3 3/3 0/3
🔨 RTCPeerConnection-createDataChannel
createDataChannel with no argument should throw TypeError
createDataChannel with closed connection should throw InvalidStateError
createDataChannel attribute default values
createDataChannel with provided parameters should initialize attributes to provided values
createDataChannel with label "foo" should succeed
createDataChannel with label null should succeed
createDataChannel with label undefined should succeed
createDataChannel with label lone surrogate should succeed
createDataChannel with ordered false should succeed
createDataChannel with ordered null/undefined should succeed
createDataChannel with maxPacketLifeTime 0 should succeed
createDataChannel with maxRetransmits 0 should succeed
createDataChannel with both maxPacketLifeTime and maxRetransmits should throw SyntaxError
createDataChannel with protocol "foo" should succeed
createDataChannel with protocol null should succeed
createDataChannel with protocol undefined should succeed
createDataChannel with protocol lone surrogate should succeed
createDataChannel with negotiated true should succeed
createDataChannel with id 0 should succeed
createDataChannel with id 1 should succeed
createDataChannel with id 65534 should succeed
createDataChannel with id -1 should throw TypeError
createDataChannel with id 65535 should throw TypeError
createDataChannel with id 65536 should throw TypeError
createDataChannel with priority "high" should succeed
createDataChannel with invalid priority should throw TypeError
createDataChannel with negotiated false and long label should throw TypeError
createDataChannel with negotiated false and long protocol should throw TypeError
createDataChannel with negotiated true and long label and long protocol should succeed
Channels created after SCTP transport is established should have id assigned
Test Total 3/30 14/30 11/30 0/30
🔨 RTCPeerConnection-createOffer-offerToReceive
createOffer() with offerToReceiveAudio set to false should not create a transceiver
createOffer() with offerToReceiveAudio should create a "recvonly" transceiver
offerToReceiveAudio option should be ignored if a non-stopped "recvonly" transceiver exists
offerToReceiveAudio option should be ignored if a non-stopped "sendrecv" transceiver exists
offerToReceiveAudio set to false with a track should create a "sendonly" transceiver
offerToReceiveAudio set to false with a "recvonly" transceiver should change the direction to "inactive"
subsequent offerToReceiveAudio set to false with a track should change the direction to "sendonly"
createOffer() with offerToReceiveVideo set to false should not create a transceiver
createOffer() with offerToReceiveVideo should create a "recvonly" transceiver
offerToReceiveVideo option should be ignored if a non-stopped "recvonly" transceiver exists
offerToReceiveVideo option should be ignored if a non-stopped "sendrecv" transceiver exists
offerToReceiveVideo set to false with a track should create a "sendonly" transceiver
offerToReceiveVideo set to false with a "recvonly" transceiver should change the direction to "inactive"
subsequent offerToReceiveVideo set to false with a track should change the direction to "sendonly"
offerToReceiveAudio and Video should create two "recvonly" transceivers
Test Total 0/15 0/15 0/15 0/15
🔨 RTCPeerConnection-createOffer
createOffer() with no argument from newly created RTCPeerConnection should succeed
createOffer() and then setLocalDescription() should succeed
createOffer() after connection is closed should reject with InvalidStateError
When media stream is added when createOffer() is running in parallel, the result offer should contain the new media stream
createOffer() with offerToReceiveAudio should add audio line to all subsequent created offers
createOffer() with offerToReceiveVideo should add video line to all subsequent created offers
createOffer() with offerToReceiveAudio:true then offerToReceiveVideo:true should have result offer with both audio and video line
Test onsignalingstatechange event for createOffer() and then setLocalDescription() should succeed
Test Total 4/8 2/8 3/8 0/8
🔨 RTCPeerConnection-generateCertificate
generateCertificate() with compulsary RSASSA-PKCS1-v1_5 parameters should succeed
generateCertificate() with compulsary ECDSA parameters should succeed
generateCertificate() with invalid string algorithm should reject with NotSupportedError
generateCertificate() with invalid algorithm dict should reject with NotSupportedError
generateCertificate() with valid expires parameter should succeed
generateCertificate() with 0 expires parameter should generate expired cert
generateCertificate() with invalid range for expires should reject with TypeError
generateCertificate() with invalid type for expires should reject with TypeError
Test Total 0/8 6/8 6/8 0/8
🔨 RTCPeerConnection-getDefaultIceServers
RTCPeerConnection.getDefaultIceServers() should return array of RTCIceServer
Test Total 0/1 0/1 0/1 0/1
🔨 RTCPeerConnection-getIdentityAssertion
getIdentityAssertion() should load IdP proxy and return assertion generated
getIdentityAssertion() should succeed if mock-idp.js return different domain and protocol in assertion
getIdentityAssertion() should reject with RTCError('idp-execution-failure') if mock-idp.js throws error
getIdentityAssertion() should reject with RTCError('idp-bad-script-failure') if IdP proxy script do not register its callback
getIdentityAssertion() should reject with OperationError if mock-idp.js return invalid result
getIdentityAssertion() should reject with RTCError('idp-load-failure') if IdP cannot be loaded
getIdentityAssertion() should reject with RTCError('idp-need-login') when mock-idp.js requires login
setIdentityProvider() with no peerIdentity provided should use peerIdentity value from getConfiguration()
Calling setIdentityProvider() multiple times should reset identity assertions
createOffer() should return SDP containing identity assertion string if identity provider is set
createOffer() should reject with NotReadableError if identitity assertion request fails
createAnswer() should reject with NotReadableError if identitity assertion request fails
Test Total 0/12 0/12 0/12 0/12
🔨 RTCPeerConnection-getStats.https
getStats() with no argument should succeed
getStats(null) should succeed
getStats() with track not added to connection should reject with InvalidAccessError
getStats() with track added via addTrack should succeed
getStats() with track added via addTransceiver should succeed
getStats() with track associated with more than one sender should reject with InvalidAccessError
getStats() with track associated with both sender and receiver should reject with InvalidAccessError
getStats() with no argument should return stats report containing peer-connection stats on an empty PC
getStats() with no argument should return stats report containing peer-connection stats and outbound-track-stats
getStats() with no argument should return stats for no-stream tracks
getStats() on track associated with RtpSender should return stats report containing outbound-rtp stats
getStats() on track associated with RtpReceiver should return stats report containing inbound-rtp stats
getStats() with connected peer connections having tracks and data channel should return all mandatory to implement stats
Test Total 0/13 2/13 3/13 0/13
🔨 RTCPeerConnection-getTransceivers
Initial peer connection should have list of zero senders, receivers and transceivers
Test Total 0/1 0/1 0/1 0/1
🔨 RTCPeerConnection-iceConnectionState
Initial iceConnectionState should be new
connection with one data channel should eventually have connected connection state
Test Total 1/2 1/2 1/2 0/2
🔨 RTCPeerConnection-iceGatheringState
Initial iceGatheringState should be new
iceGatheringState should eventually become complete after setLocalDescription
connection with one data channel should eventually have connected connection state
Test Total 2/3 2/3 2/3 0/3
🔨 RTCPeerConnection-ondatachannel
datachannel event should fire when new data channel is announced to the remote peer
Data channel created on remote peer should match the same configuration as local peer
Data channel created with negotiated set to true should not fire datachannel event on remote peer
Test Total 0/3 2/3 1/3 0/3
🔨 RTCPeerConnection-onnegotiationneeded
Creating first data channel should fire negotiationneeded event
calling createDataChannel twice should fire negotiationneeded event once
addTransceiver() should fire negotiationneeded event
Calling addTransceiver() twice should fire negotiationneeded event once
Calling both addTransceiver() and createDataChannel() should fire negotiationneeded event once
negotiationneeded event should not fire if signaling state is not stable
negotiationneeded event should fire only after signaling state go back to stable
Test Total 3/7 3/7 3/7 0/7
🔨 RTCPeerConnection-ontrack.https
setRemoteDescription should trigger ontrack event when the MSID of the stream is is parsed.
setRemoteDescription() with m= line of recvonly direction should not trigger track event
addTrack() should cause remote connection to fire ontrack when setRemoteDescription()
addTransceiver('video') should cause remote connection to fire ontrack when setRemoteDescription()
addTransceiver() with inactive direction should not cause remote connection to fire ontrack when setRemoteDescription()
Test Total 1/5 0/5 1/5 0/5
🔨 RTCPeerConnection-peerIdentity
setRemoteDescription() on offer with a=identity should establish peerIdentity
setRemoteDescription() on offer with a=identity that resolve to value different from target peer identity should reject with InvalidModificationError
setRemoteDescription() with peerIdentity set and with IdP proxy that return validationAssertion with mismatch contents should reject with OperationError
setRemoteDescription() and peerIdentity should reject with OperationError if IdP return validated identity that is different from its own domain
When IdP throws error and pc has target peer identity, setRemoteDescription() and peerIdentity rejected with RTCError('idp-execution-error')
IdP failure with no target peer identity should have following setRemoteDescription() succeed and replace pc.peerIdentity with a new promise
Test Total 0/6 0/6 0/6 0/6
🔨 RTCPeerConnection-removeTrack.https
addTransceiver - Calling removeTrack when connection is closed should throw InvalidStateError
addTrack - Calling removeTrack when connection is closed should throw InvalidStateError
addTransceiver - Calling removeTrack on different connection that is closed should throw InvalidStateError
addTrack - Calling removeTrack on different connection that is closed should throw InvalidStateError
addTransceiver - Calling removeTrack on different connection should throw InvalidAccessError
addTrack - Calling removeTrack on different connection should throw InvalidAccessError
addTransceiver - Calling removeTrack with valid sender should set sender.track to null
addTrack - Calling removeTrack with valid sender should set sender.track to null
Calling removeTrack with currentDirection sendrecv should set direction to recvonly
Calling removeTrack with currentDirection sendonly should set direction to inactive
Calling removeTrack with currentDirection recvonly should not change direction
Calling removeTrack with currentDirection inactive should not change direction
Test Total 2/12 0/12 2/12 0/12
🔨 RTCPeerConnection-setDescription-transceiver
setLocalDescription(offer) with m= section should assign mid to corresponding transceiver
setRemoteDescription(offer) with m= section and no existing transceiver should create corresponding transceiver
setLocalDescription(rollback) should unset transceiver.mid
setLocalDescription(rollback) should only unset transceiver mids associated with current round
setRemoteDescription(rollback) should remove newly created transceiver from transceiver list
Test Total 0/5 0/5 0/5 0/5
🔨 RTCPeerConnection-setLocalDescription-answer
setLocalDescription() with valid answer should succeed
setLocalDescription() with type answer and null sdp should use lastAnswer generated from createAnswer
setLocalDescription() with answer not created by own createAnswer() should reject with InvalidModificationError
Calling setLocalDescription(answer) from stable state should reject with InvalidStateError
Calling setLocalDescription(answer) from have-local-offer state should reject with InvalidStateError
Test onsignalingstatechange event for setLocalDescription() with valid answer should succeed
Test Total 4/6 1/6 2/6 0/6
🔨 RTCPeerConnection-setLocalDescription-offer
setLocalDescription with valid offer should succeed
setLocalDescription with type offer and null sdp should use lastOffer generated from createOffer
setLocalDescription() with offer not created by own createOffer() should reject with InvalidModificationError
Set created offer other than last offer should reject with InvalidModificationError
Creating and setting offer multiple times should succeed
Test onsignalingstatechange event for setLocalDescription with valid offer should succeed
Test onsignalingstatechange event for Creating and setting offer multiple times should succeed
Test Total 4/7 2/7 3/7 0/7
🔨 RTCPeerConnection-setLocalDescription-pranswer
setLocalDescription(pranswer) from stable state should reject with InvalidStateError
setLocalDescription(pranswer) should succeed
setLocalDescription(pranswer) can be applied multiple times while still in have-local-pranswer
setLocalDescription(answer) from have-local-pranswer state should succeed
Test onsignalingstatechange event for setLocalDescription(pranswer) should succeed
Test onsignalingstatechange event for setLocalDescription(pranswer) can be applied multiple times while still in have-local-pranswer
Test onsignalingstatechange event for setLocalDescription(answer) from have-local-pranswer state should succeed
Test Total 3/7 4/7 0/7 0/7
🔨 RTCPeerConnection-setLocalDescription-rollback
setLocalDescription(rollback) from have-local-offer state should reset back to stable state
setLocalDescription(rollback) from stable state should reject with InvalidStateError
setLocalDescription(rollback) after setting answer description should reject with InvalidStateError
setLocalDescription(rollback) should ignore invalid sdp content and succeed
Test onsignalingstatechange event for setLocalDescription(rollback) from have-local-offer state should reset back to stable state
Test Total 2/5 0/5 2/5 0/5
🔨 RTCPeerConnection-setLocalDescription
Calling createOffer() and setLocalDescription() again after one round of local-offer/remote-answer should succeed
Switching role from answerer to offerer after going back to stable state should succeed
Test onsignalingstatechange event for Calling createOffer() and setLocalDescription() again after one round of local-offer/remote-answer should succeed
Test onsignalingstatechange event for Switching role from answerer to offerer after going back to stable state should succeed
Test Total 3/4 2/4 3/4 0/4
🔨 RTCPeerConnection-setRemoteDescription-answer
setRemoteDescription() with valid state and answer should succeed
Calling setRemoteDescription(answer) from stable state should reject with InvalidStateError
Calling setRemoteDescription(answer) from have-remote-offer state should reject with InvalidStateError
Test onsignalingstatechange event for setRemoteDescription() with valid state and answer should succeed
Test Total 4/4 1/4 2/4 0/4
🔨 RTCPeerConnection-setRemoteDescription-offer
setRemoteDescription with valid offer should succeed
setRemoteDescription multiple times should succeed
setRemoteDescription multiple times with different offer should succeed
setRemoteDescription(offer) with invalid SDP should reject with RTCError
setRemoteDescription(offer) from have-local-offer state should reject with InvalidStateError
Test onsignalingstatechange event for setRemoteDescription with valid offer should succeed
Test onsignalingstatechange event for setRemoteDescription multiple times should succeed
Test onsignalingstatechange event for setRemoteDescription multiple times with different offer should succeed
Test Total 1/8 3/8 3/8 0/8
🔨 RTCPeerConnection-setRemoteDescription-pranswer
setRemoteDescription(pranswer) from stable state should reject with InvalidStateError
setRemoteDescription(pranswer) from have-local-offer state should succeed
setRemoteDescription(pranswer) multiple times should succeed
setRemoteDescription(answer) from have-remote-pranswer state should succeed
Test onsignalingstatechange event for setRemoteDescription(pranswer) from have-local-offer state should succeed
Test onsignalingstatechange event for setRemoteDescription(pranswer) multiple times should succeed
Test onsignalingstatechange event for setRemoteDescription(answer) from have-remote-pranswer state should succeed
Test Total 7/7 4/7 0/7 0/7
🔨 RTCPeerConnection-setRemoteDescription-replaceTrack.https
replaceTrack() sets the track attribute to a new track.
replaceTrack() sets the track attribute to null.
replaceTrack() does not set the track synchronously.
replaceTrack() rejects when the peer connection is closed.
replaceTrack() rejects when invoked after removeTrack().
replaceTrack() rejects after a subsequent removeTrack().
Test Total 0/6 0/6 0/6 0/6
🔨 RTCPeerConnection-setRemoteDescription-rollback
setRemoteDescription(rollback) in have-remote-offer state should revert to stable state
setRemoteDescription(rollback) from stable state should reject with InvalidStateError
setRemoteDescription(rollback) should ignore invalid sdp content and succeed
Test onsignalingstatechange event for setRemoteDescription(rollback) in have-remote-offer state should revert to stable state
Test Total 1/4 0/4 2/4 0/4
🔨 RTCPeerConnection-setRemoteDescription-tracks.https
addTrack() with a track and no stream makes ontrack fire with a track and no stream.
addTrack() with a track and a stream makes ontrack fire with a track and a stream.
ontrack fires before setRemoteDescription resolves.
addTrack() with two tracks and one stream makes ontrack fire twice with the tracks and shared stream.
addTrack() with a track and two streams makes ontrack fire with a track and two streams.
ontrack's receiver matches getReceivers().
removeTrack() does not remove the receiver.
removeTrack() makes stream.onremovetrack fire and the track to be removed from the stream.
stream.onremovetrack fires before setRemoteDescription resolves.
removeTrack() makes track.onmute fire and the track to be muted.
track.onmute fires before setRemoteDescription resolves.
removeTrack() twice is safe.
Test Total 2/12 0/12 1/12 0/12
🔨 RTCPeerConnection-setRemoteDescription
setRemoteDescription with invalid type and invalid SDP should reject with TypeError
setRemoteDescription() with invalid SDP and stable state should reject with InvalidStateError
Calling setRemoteDescription() again after one round of remote-offer/local-answer should succeed
Switching role from offerer to answerer after going back to stable state should succeed
Test onsignalingstatechange event for Calling setRemoteDescription() again after one round of remote-offer/local-answer should succeed
Test onsignalingstatechange event for Switching role from offerer to answerer after going back to stable state should succeed
Test Total 1/6 1/6 2/6 0/6
🔨 RTCPeerConnection-track-stats.https
addTrack() without setLocalDescription() yields track stats
addTrack() without setLocalDescription() yields media stream stats
addTrack() with setLocalDescription() yields track stats
addTrack() with setLocalDescription() yields media stream stats
addTrack(): Media stream stats references track stats
Legacy addStream(): Media stream stats references track stats
O/A exchange yields outbound RTP stream stats for sending track
O/A exchange yields inbound RTP stream stats for receiving track
replaceTrack() before offer: new track attachment stats present
replaceTrack() after offer, before answer: new track attachment stats present
replaceTrack() after answer: new track attachment stats present
replaceTrack(): original track attachment stats present after replacing
Test Total 0/12 1/12 0/12 0/12
🔨 RTCPeerConnectionIceEvent-constructor
RTCPeerConnectionIceEvent with no arguments throws TypeError
RTCPeerConnectionIceEvent with no eventInitDict (default)
RTCPeerConnectionIceEvent with empty object as eventInitDict (default)
RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: null }
RTCPeerConnectionIceEvent.candidate is null when constructed with { candidate: undefined }
RTCPeerConnectionIceEvent with RTCIceCandidate
RTCPeerConnectionIceEvent with non RTCIceCandidate object throws
RTCPeerConnectionIceEvent bubbles and cancelable
Test Total 0/8 5/8 6/8 5/8
🔨 RTCRtpParameters-codecs
setParameters() with codec.payloadType modified should reject with InvalidModificationError
setParameters() with codec.mimeType modified should reject with InvalidModificationError
setParameters() with codec.clockRate modified should reject with InvalidModificationError
setParameters() with codec.channels modified should reject with InvalidModificationError
setParameters() with codec.sdpFmtpLine modified should reject with InvalidModificationError
setParameters() with new codecs inserted should reject with InvalidModificationError
setParameters with reordered codecs should succeed
setParameters with dropped codec should succeed
Test Total 0/8 0/8 0/8 0/8
🔨 RTCRtpParameters-degradationPreference
setParameters with degradationPreference set should succeed
setParameters with degradationPreference unset should succeed
Test Total 0/2 0/2 0/2 0/2
🔨 RTCRtpParameters-encodings
addTransceiver() with undefined sendEncodings should have default encoding parameter with active set to true
addTransceiver() with empty list sendEncodings should have default encoding parameter with active set to true
sender.getParameters() should return sendEncodings set by addTransceiver()
sender.setParameters() with mismatch number of encodings should reject with InvalidModificationError
sender.setParameters() with encodings unset should reject with InvalidModificationError
setParameters() with modified encoding.ssrc field should reject with InvalidModificationError
setParameters() with modified encoding.rtx field should reject with InvalidModificationError
setParameters() with modified encoding.fec field should reject with InvalidModificationError
setParameters() with modified encoding.rid field should reject with InvalidModificationError
setParameters() with encoding.scaleResolutionDownBy field set to less than 1.0 should reject with RangeError
setParameters() with encoding.scaleResolutionDownBy field set to greater than 1.0 should succeed
setParameters() with modified encoding.dtx should succeed
setParameters() with unset encoding.dtx should succeed
setParameters() with modified encoding.active should succeed
setParameters() with modified encoding.priority should succeed
setParameters() with modified encoding.ptime should succeed
setParameters() with modified encoding.maxBitrate should succeed
setParameters() with modified encoding.maxFramerate should succeed
Test Total 0/18 0/18 0/18 0/18
🔨 RTCRtpParameters-headerExtensions
setParameters() with modified headerExtensions should reject with InvalidModificationError
Test Total 0/1 0/1 0/1 0/1
🔨 RTCRtpParameters-rtcp
setParameters() with modified rtcp.cname should reject with InvalidModificationError
setParameters() with modified rtcp.reducedSize should reject with InvalidModificationError
Test Total 0/2 0/2 0/2 0/2
🔨 RTCRtpParameters-transactionId
sender.getParameters() should return different transaction IDs for each call
sender.setParameters() with transaction ID different from last getParameters() should reject with InvalidModificationError
sender.setParameters() with transaction ID unset should reject with InvalidModificationError
setParameters() twice with the same parameters should reject with InvalidModificationError
setParameters() with parameters older than last getParameters() should reject with InvalidModificationError
Test Total 0/5 0/5 0/5 0/5
🔨 RTCRtpReceiver-getCapabilities
RTCRtpSender.getCapabilities('audio') should return RTCRtpCapabilities dictionary
RTCRtpSender.getCapabilities('video') should return RTCRtpCapabilities dictionary
Test Total 0/2 0/2 0/2 0/2
🔨 RTCRtpReceiver-getContributingSources.https
getContributingSources() should return list of CSRC after connection is established
Test Total 0/1 0/1 0/1 0/1
🔨 RTCRtpReceiver-getParameters
RTCRtpReceiver.prototype.getParameters
Test Total 0/1 0/1 0/1 0/1
🔨 RTCRtpReceiver-getStats
receiver.getStats() should return stats report containing inbound-rtp stats
Test Total 0/1 0/1 0/1 0/1
🔨 RTCRtpReceiver-getSynchronizationSources.https
getContributingSources() should return list of CSRC after connection is established
Test Total 0/1 0/1 0/1 0/1
🔨 RTCRtpSender-getCapabilities
RTCRtpSender.getCapabilities('audio') should return RTCRtpCapabilities dictionary
RTCRtpSender.getCapabilities('video') should return RTCRtpCapabilities dictionary
Test Total 0/2 0/2 0/2 0/2
🔨 RTCRtpSender-getStats.https
sender.getStats() via addTransceiver should return stats report containing outbound-rtp stats
sender.getStats() via addTrack should return stats report containing outbound-rtp stats
Test Total 0/2 0/2 0/2 0/2
🔨 RTCRtpSender-replaceTrack
Calling replaceTrack on closed connection should reject with InvalidStateError
Calling replaceTrack with track of different kind should reject with TypeError
Calling replaceTrack on stopped sender should reject with InvalidStateError
Calling replaceTrack on sender with null track and not set to session description should resolve with sender.track set to given track
Calling replaceTrack on sender not set to session description should resolve with sender.track set to given track
Calling replaceTrack(null) on sender not set to session description should resolve with sender.track set to null
Calling replaceTrack(null) on sender set to session description should resolve with sender.track set to null
Calling replaceTrack on sender with stopped track and and set to session description should resolve with sender.track set to given track
Calling replaceTrack on sender with similar track and and set to session description should resolve with sender.track set to new track
Test Total 0/9 0/9 0/9 0/9
🔨 RTCRtpSender-setParameters
setParameters() when transceiver is stopped should reject with InvalidStateError
Test Total 0/1 0/1 0/1 0/1
🔨 RTCRtpTransceiver-setCodecPreferences
setCodecPreferences() on audio transceiver with codecs returned from RTCRtpSender.getCapabilities('audio') should succeed
setCodecPreferences() on video transceiver with codecs returned from RTCRtpReceiver.getCapabilities('video') should succeed
setCodecPreferences() with both sender receiver codecs combined should succeed
setCodecPreferences([]) should succeed
setCodecPreferences() with reordered codecs should succeed
setCodecPreferences() on audio transceiver with codecs returned from getCapabilities('video') should throw InvalidAccessError
setCodecPreferences() with user defined codec should throw InvalidAccessError
setCodecPreferences() with user defined codec together with codecs returned from getCapabilities() should throw InvalidAccessError
setCodecPreferences() with modified codecs returned from getCapabilities() should throw InvalidAccessError
Test Total 0/9 0/9 0/9 0/9
🔨 RTCRtpTransceiver-setDirection
setDirection should change transceiver.direction
setDirection with same direction should have no effect
setDirection should change transceiver.direction independent of transceiver.currentDirection
Test Total 0/3 0/3 0/3 0/3
🔨 RTCSctpTransport-constructor
setRemoteDescription() with answer containing data media should initialize pc.sctp
setLocalDescription() with answer containing data media should initialize pc.sctp
Test Total 0/2 0/2 0/2 0/2
🔨 RTCSctpTransport-maxMessageSize
Determine the local side send limitation (canSendSize) by offering a max-message-size of 0
Remote offer SDP missing max-message-size attribute
max-message-size with a (non-zero) value provided by the remote peer
Renegotiate max-message-size with a (non-zero) value provided by the remote peer
max-message-size with a (non-zero) value larger than canSendSize provided by the remote peer
Test Total 0/5 0/5 0/5 0/5
🔨 RTCTrackEvent-constructor
new RTCTrackEvent() with valid receiver, track, transceiver should succeed
new RTCTrackEvent() with valid receiver, track, streams, transceiver should succeed
new RTCTrackEvent() with valid receiver, track, multiple streams, transceiver should succeed
new RTCTrackEvent() with unrelated receiver, track, streams, transceiver should succeed
new RTCTrackEvent() with no transceiver should throw TypeError
new RTCTrackEvent() with no track should throw TypeError
new RTCTrackEvent() with no receiver should throw TypeError
Test Total 0/7 0/7 0/7 0/7
🔨 simplecall
Can set up a basic WebRTC call.
Test Total 0/1 0/1 1/1 0/1
Total 1099 270 360 394 99