From 4d98a4a4f1eacc0c6c7eefd5a877b671d5ad2428 Mon Sep 17 00:00:00 2001 From: Ken Smith Date: Thu, 17 Jan 2013 09:48:27 -0800 Subject: [PATCH] Added basic tests. --- webrtc/MediaStream-tests.ts | 32 +++++++++++++++++++ webrtc/MediaStream.d.ts | 4 +-- webrtc/RTCPeerConnection-tests.ts | 51 +++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 webrtc/MediaStream-tests.ts create mode 100644 webrtc/RTCPeerConnection-tests.ts diff --git a/webrtc/MediaStream-tests.ts b/webrtc/MediaStream-tests.ts new file mode 100644 index 0000000000..290e2ff3c7 --- /dev/null +++ b/webrtc/MediaStream-tests.ts @@ -0,0 +1,32 @@ +/// +var mediaStreamConstraints: MediaStreamConstraints = { audio: true, video: true }; + +var mediaTrackConstraintSet: MediaTrackConstraintSet = {}; +var mediaTrackConstraintArray: MediaTrackConstraint[] = []; +var mediaTrackConstraints: MediaTrackConstraints = { mandatory: mediaTrackConstraintSet, optional: mediaTrackConstraintArray } + +navigator.getUserMedia(mediaStreamConstraints, + stream => { + console.log('label:' + stream.label); + console.log('ended:' + stream.ended); + stream.onended = event => console.log('Stream ended'); + var objectUrl = URL.createObjectURL(stream); + var wkObjectUrl = webkitURL.createObjectURL(stream); + }, + error => { + console.log('Error message: ' + error.message); + console.log('Error name: ' + error.name); + }); + +navigator.webkitGetUserMedia(mediaStreamConstraints, + stream => { + console.log('label:' + stream.label); + console.log('ended:' + stream.ended); + stream.onended = event => console.log('Stream ended'); + var objectUrl = URL.createObjectURL(stream); + var wkObjectUrl = webkitURL.createObjectURL(stream); + }, + error => { + console.log('Error message: ' + error.message); + console.log('Error name: ' + error.name); + }); \ No newline at end of file diff --git a/webrtc/MediaStream.d.ts b/webrtc/MediaStream.d.ts index 7d6b3759b8..23aee0987d 100644 --- a/webrtc/MediaStream.d.ts +++ b/webrtc/MediaStream.d.ts @@ -35,8 +35,8 @@ declare var MediaTrackConstraint: { } interface Navigator { - getUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: any) => void , errorCallback: (error: Error) => void ); - webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: any) => void , errorCallback: (error: Error) => void ); + getUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: LocalMediaStream) => void , errorCallback: (error: Error) => void ); + webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: LocalMediaStream) => void , errorCallback: (error: Error) => void ); } interface EventHandler { (event: Event): void; } diff --git a/webrtc/RTCPeerConnection-tests.ts b/webrtc/RTCPeerConnection-tests.ts new file mode 100644 index 0000000000..d7b5a07f74 --- /dev/null +++ b/webrtc/RTCPeerConnection-tests.ts @@ -0,0 +1,51 @@ +/// +/// + +var config: RTCConfiguration = { iceServers: [{ url: "stun.l.google.com:19302" }] }; +var constraints: MediaConstraints = { mandatory: { OfferToReceiveAudio: true, OfferToReceiveVideo: true } }; + +var peerConnection: RTCPeerConnection = new RTCPeerConnection(config, constraints); + +navigator.getUserMedia({ audio: true, video: true }, + stream => { + peerConnection.addStream(stream); + }, + error => { + console.log('Error message: ' + error.message); + console.log('Error name: ' + error.name); + }); + +peerConnection.onaddstream = ev => console.log(ev.type); +peerConnection.ondatachannel = ev => console.log(ev.type); +peerConnection.onicechange = ev => console.log(ev.type); +peerConnection.onnegotiationneeded = ev => console.log(ev.type); +peerConnection.onopen = ev => console.log(ev.type); +peerConnection.onicecandidate = ev => console.log(ev.type); +peerConnection.onremovestream = ev => console.log(ev.type); +peerConnection.onstatechange = ev => console.log(ev.type); + +peerConnection.createOffer( + offer => { + peerConnection.setLocalDescription(offer, + () => console.log("set local description"), + error => console.log("Error setting local description: " + error)); + }, + error => console.log("Error creating offer: " + error)); + +var type: RTCSdpType = RTCSdpType.offer; +var offer: RTCSessionDescriptionInit = { type: type, sdp: "some sdp" }; +var sessionDescription = new RTCSessionDescription(offer); + +peerConnection.setRemoteDescription(sessionDescription, () => { + peerConnection.createAnswer( + answer => { + peerConnection.setLocalDescription(answer, + () => console.log('Set local description'), + error => console.log("Error setting local description from created answer: " + error + "; answer.sdp=" + answer.sdp)); + }, + error => console.log("Error creating answer: " + error)); +}, +error => console.log('Error setting remote description: ' + error + "; offer.sdp=" + offer.sdp)); + +var wkPeerConnection: webkitRTCPeerConnection = new webkitRTCPeerConnection(config, constraints); +