Description

This test verifies the availability of the RTCPeerConnection interface.


Harness Error (FAIL), message = Not enough arguments

PASS Partial interface RTCPeerConnection: original interface defined 
PASS Partial interface RTCPeerConnection[2]: original interface defined 
PASS Partial interface RTCPeerConnection[3]: original interface defined 
PASS Partial interface RTCPeerConnection[4]: original interface defined 
PASS Partial interface RTCPeerConnection[5]: original interface defined 
PASS Partial interface RTCPeerConnection[6]: original interface defined 
PASS Partial interface RTCPeerConnection[7]: original interface defined 
PASS EventTarget interface: existence and properties of interface object 
PASS EventTarget interface object length 
PASS EventTarget interface object name 
PASS EventTarget interface: existence and properties of interface prototype object 
PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property 
PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property 
PASS RTCPeerConnection interface: existence and properties of interface object 
PASS RTCPeerConnection interface object length 
PASS RTCPeerConnection interface object name 
PASS RTCPeerConnection interface: existence and properties of interface prototype object 
PASS RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property 
PASS RTCPeerConnection interface: existence and properties of interface prototype object's @@unscopables property 
PASS RTCPeerConnection interface: operation createOffer(RTCOfferOptions) 
PASS RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions) 
PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescription) 
PASS RTCPeerConnection interface: attribute localDescription 
PASS RTCPeerConnection interface: attribute currentLocalDescription 
PASS RTCPeerConnection interface: attribute pendingLocalDescription 
PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescription) 
PASS RTCPeerConnection interface: attribute remoteDescription 
PASS RTCPeerConnection interface: attribute currentRemoteDescription 
PASS RTCPeerConnection interface: attribute pendingRemoteDescription 
PASS RTCPeerConnection interface: operation addIceCandidate(RTCIceCandidate) 
PASS RTCPeerConnection interface: attribute signalingState 
PASS RTCPeerConnection interface: attribute iceGatheringState 
PASS RTCPeerConnection interface: attribute iceConnectionState 
FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false
PASS RTCPeerConnection interface: operation getConfiguration() 
PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration) 
PASS RTCPeerConnection interface: operation close() 
PASS RTCPeerConnection interface: attribute onnegotiationneeded 
PASS RTCPeerConnection interface: attribute onicecandidate 
PASS RTCPeerConnection interface: attribute onsignalingstatechange 
PASS RTCPeerConnection interface: attribute oniceconnectionstatechange 
PASS RTCPeerConnection interface: attribute onicegatheringstatechange 
FAIL RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) assert_throws: calling operation with this = null didn't throw TypeError function "function () {
            fn.apply(obj, args);
        }" did not throw
FAIL RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () {
            fn.apply(obj, args);
        }" did not throw
FAIL RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () {
            fn.apply(obj, args);
        }" did not throw
FAIL RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () {
            fn.apply(obj, args);
        }" did not throw
FAIL RTCPeerConnection interface: operation addIceCandidate(RTCIceCandidate, VoidFunction, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () {
            fn.apply(obj, args);
        }" did not throw
FAIL RTCPeerConnection interface: operation getStats(MediaStreamTrack, RTCStatsCallback, RTCPeerConnectionErrorCallback) assert_throws: calling operation with this = null didn't throw TypeError function "function () {
            fn.apply(obj, args);
        }" did not throw
PASS RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier) 
PASS RTCPeerConnection interface: operation getSenders() 
PASS RTCPeerConnection interface: operation getReceivers() 
PASS RTCPeerConnection interface: operation addTrack(MediaStreamTrack, MediaStream) 
PASS RTCPeerConnection interface: operation removeTrack(RTCRtpSender) 
PASS RTCPeerConnection interface: attribute ontrack 
PASS RTCPeerConnection interface: operation createDataChannel(DOMString, RTCDataChannelInit) 
PASS RTCPeerConnection interface: attribute ondatachannel 
FAIL RTCPeerConnection interface: attribute dtmf assert_true: The prototype object must have a property "dtmf" expected true got false
PASS RTCPeerConnection interface: operation getStats(MediaStreamTrack) 
FAIL RTCPeerConnection interface: operation setIdentityProvider(DOMString, DOMString, DOMString) assert_own_property: interface prototype object missing non-static operation expected property "setIdentityProvider" missing
FAIL RTCPeerConnection interface: operation getIdentityAssertion() assert_own_property: interface prototype object missing non-static operation expected property "getIdentityAssertion" missing
FAIL RTCPeerConnection interface: attribute peerIdentity assert_true: The prototype object must have a property "peerIdentity" expected true got false
FAIL RTCPeerConnection interface: attribute idpLoginUrl assert_true: The prototype object must have a property "idpLoginUrl" expected true got false
PASS RTCPeerConnection must be primary interface of pc 
PASS Stringification of pc 
PASS RTCPeerConnection interface: pc must inherit property "createOffer(RTCOfferOptions)" with the proper type 
PASS RTCPeerConnection interface: calling createOffer(RTCOfferOptions) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "createAnswer(RTCAnswerOptions)" with the proper type 
PASS RTCPeerConnection interface: calling createAnswer(RTCAnswerOptions) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "setLocalDescription(RTCSessionDescription)" with the proper type 
PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescription) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "localDescription" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "currentLocalDescription" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "pendingLocalDescription" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "setRemoteDescription(RTCSessionDescription)" with the proper type 
PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescription) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "remoteDescription" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "currentRemoteDescription" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "pendingRemoteDescription" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "addIceCandidate(RTCIceCandidate)" with the proper type 
PASS RTCPeerConnection interface: calling addIceCandidate(RTCIceCandidate) on pc with too few arguments must throw TypeError 
FAIL RTCPeerConnection interface: pc must inherit property "signalingState" with the proper type Unrecognized type RTCSignalingState
FAIL RTCPeerConnection interface: pc must inherit property "iceGatheringState" with the proper type Unrecognized type RTCIceGatheringState
FAIL RTCPeerConnection interface: pc must inherit property "iceConnectionState" with the proper type Unrecognized type RTCIceConnectionState
FAIL RTCPeerConnection interface: pc must inherit property "canTrickleIceCandidates" with the proper type assert_inherits: property "canTrickleIceCandidates" not found in prototype chain
PASS RTCPeerConnection interface: pc must inherit property "getConfiguration()" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "setConfiguration(RTCConfiguration)" with the proper type 
PASS RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "close()" with the proper type 
FAIL RTCPeerConnection interface: pc must inherit property "onnegotiationneeded" with the proper type Unrecognized type EventHandler
FAIL RTCPeerConnection interface: pc must inherit property "onicecandidate" with the proper type Unrecognized type EventHandler
FAIL RTCPeerConnection interface: pc must inherit property "onsignalingstatechange" with the proper type Unrecognized type EventHandler
FAIL RTCPeerConnection interface: pc must inherit property "oniceconnectionstatechange" with the proper type Unrecognized type EventHandler
FAIL RTCPeerConnection interface: pc must inherit property "onicegatheringstatechange" with the proper type Unrecognized type EventHandler
PASS RTCPeerConnection interface: pc must inherit property "createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)" with the proper type 
PASS RTCPeerConnection interface: calling createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "setLocalDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type 
FAIL RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) on pc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function "function () {
            fn.apply(obj, args);
        }" did not throw
PASS RTCPeerConnection interface: pc must inherit property "createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)" with the proper type 
PASS RTCPeerConnection interface: calling createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "setRemoteDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type 
FAIL RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescription, VoidFunction, RTCPeerConnectionErrorCallback) on pc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function "function () {
            fn.apply(obj, args);
        }" did not throw
PASS RTCPeerConnection interface: pc must inherit property "addIceCandidate(RTCIceCandidate, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type 
FAIL RTCPeerConnection interface: calling addIceCandidate(RTCIceCandidate, VoidFunction, RTCPeerConnectionErrorCallback) on pc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function "function () {
            fn.apply(obj, args);
        }" did not throw
PASS RTCPeerConnection interface: pc must inherit property "getStats(MediaStreamTrack, RTCStatsCallback, RTCPeerConnectionErrorCallback)" with the proper type 
PASS RTCPeerConnection interface: calling getStats(MediaStreamTrack, RTCStatsCallback, RTCPeerConnectionErrorCallback) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "generateCertificate(AlgorithmIdentifier)" with the proper type 
PASS RTCPeerConnection interface: calling generateCertificate(AlgorithmIdentifier) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "getSenders()" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "getReceivers()" with the proper type 
PASS RTCPeerConnection interface: pc must inherit property "addTrack(MediaStreamTrack, MediaStream)" with the proper type 
PASS RTCPeerConnection interface: calling addTrack(MediaStreamTrack, MediaStream) on pc with too few arguments must throw TypeError 
PASS RTCPeerConnection interface: pc must inherit property "removeTrack(RTCRtpSender)" with the proper type 
PASS RTCPeerConnection interface: calling removeTrack(RTCRtpSender) on pc with too few arguments must throw TypeError 
FAIL RTCPeerConnection interface: pc must inherit property "ontrack" with the proper type Unrecognized type EventHandler
PASS RTCPeerConnection interface: pc must inherit property "createDataChannel(DOMString, RTCDataChannelInit)" with the proper type 
PASS RTCPeerConnection interface: calling createDataChannel(DOMString, RTCDataChannelInit) on pc with too few arguments must throw TypeError 
FAIL RTCPeerConnection interface: pc must inherit property "ondatachannel" with the proper type Unrecognized type EventHandler
FAIL RTCPeerConnection interface: pc must inherit property "dtmf" with the proper type assert_inherits: property "dtmf" not found in prototype chain
PASS RTCPeerConnection interface: pc must inherit property "getStats(MediaStreamTrack)" with the proper type 
PASS RTCPeerConnection interface: calling getStats(MediaStreamTrack) on pc with too few arguments must throw TypeError 
FAIL RTCPeerConnection interface: pc must inherit property "setIdentityProvider(DOMString, DOMString, DOMString)" with the proper type assert_inherits: property "setIdentityProvider" not found in prototype chain
FAIL RTCPeerConnection interface: calling setIdentityProvider(DOMString, DOMString, DOMString) on pc with too few arguments must throw TypeError assert_inherits: property "setIdentityProvider" not found in prototype chain
FAIL RTCPeerConnection interface: pc must inherit property "getIdentityAssertion()" with the proper type assert_inherits: property "getIdentityAssertion" not found in prototype chain
FAIL RTCPeerConnection interface: pc must inherit property "peerIdentity" with the proper type assert_inherits: property "peerIdentity" not found in prototype chain
FAIL RTCPeerConnection interface: pc must inherit property "idpLoginUrl" with the proper type assert_inherits: property "idpLoginUrl" not found in prototype chain

