Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8340)

Unified Diff: chrome/test/data/webrtc/jsep01_call.js

Issue 271653002: Rewrote WebRTC browser tests to not use peerconnection_server. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nit fixes Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/data/webrtc/getusermedia.js ('k') | chrome/test/data/webrtc/message_handling.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webrtc/jsep01_call.js
diff --git a/chrome/test/data/webrtc/jsep01_call.js b/chrome/test/data/webrtc/jsep01_call.js
index f21be1d3b4456d7614b1a6fb81ea65de1f0841f2..89370653f5378602895a568d388a8c8980e9ae09 100644
--- a/chrome/test/data/webrtc/jsep01_call.js
+++ b/chrome/test/data/webrtc/jsep01_call.js
@@ -4,188 +4,66 @@
* found in the LICENSE file.
*/
-/** @private */
-var gTransformOutgoingSdp = function(sdp) { return sdp; };
-
-/** @private */
-var gCreateAnswerConstraints = {};
-
-/** @private */
-var gCreateOfferConstraints = {};
-
-/** @private */
-var gDataChannel = null;
-
-/** @private */
-var gDataStatusCallback = function(status) {};
-
-/** @private */
-var gDataCallback = function(data) {};
-
-/** @private */
-var gDtmfSender = null;
-
-/** @private */
-var gDtmfOnToneChange = function(tone) {};
+// TODO(phoglund): merge into message_handling.js.
/** @private */
var gHasSeenCryptoInSdp = 'no-crypto-seen';
-/**
- * Sets the transform to apply just before setting the local description and
- * sending to the peer.
- * @param {function} transformFunction A function which takes one SDP string as
- * argument and returns the modified SDP string.
- */
-function setOutgoingSdpTransform(transformFunction) {
- gTransformOutgoingSdp = transformFunction;
-}
-
-/**
- * Sets the MediaConstraints to be used for PeerConnection createAnswer() calls.
- * @param {string} mediaConstraints The constraints, as defined in the
- * PeerConnection JS API spec.
- */
-function setCreateAnswerConstraints(mediaConstraints) {
- gCreateAnswerConstraints = mediaConstraints;
-}
-
-/**
- * Sets the MediaConstraints to be used for PeerConnection createOffer() calls.
- * @param {string} mediaConstraints The constraints, as defined in the
- * PeerConnection JS API spec.
- */
-function setCreateOfferConstraints(mediaConstraints) {
- gCreateOfferConstraints = mediaConstraints;
-}
-
-/**
- * Sets the callback functions that will receive DataChannel readyState updates
- * and received data.
- * @param {function} status_callback The function that will receive a string
- * with
- * the current DataChannel readyState.
- * @param {function} data_callback The function that will a string with data
- * received from the remote peer.
- */
-function setDataCallbacks(status_callback, data_callback) {
- gDataStatusCallback = status_callback;
- gDataCallback = data_callback;
-}
-
-/**
- * Sends data on an active DataChannel.
- * @param {string} data The string that will be sent to the remote peer.
- */
-function sendDataOnChannel(data) {
- if (gDataChannel == null)
- throw failTest('Trying to send data, but there is no DataChannel.');
- gDataChannel.send(data);
-}
-
-/**
- * Sets the callback function that will receive DTMF sender ontonechange events.
- * @param {function} ontonechange The function that will receive a string with
- * the tone that has just begun playout.
- */
-function setOnToneChange(ontonechange) {
- gDtmfOnToneChange = ontonechange;
-}
-
-/**
- * Inserts DTMF tones on an active DTMF sender.
- * @param {string} data The string that will be sent to the remote peer.
- */
-function insertDtmf(tones, duration, interToneGap) {
- if (gDtmfSender == null)
- throw failTest('Trying to send DTMF, but there is no DTMF sender.');
- gDtmfSender.insertDTMF(tones, duration, interToneGap);
-}
-
// Public interface towards the other javascript files, such as
// message_handling.js. The contract for these functions is described in
// message_handling.js.
-function handleMessage(peerConnection, message) {
- var parsed_msg = JSON.parse(message);
- if (parsed_msg.type) {
- var session_description = new RTCSessionDescription(parsed_msg);
- peerConnection.setRemoteDescription(
- session_description,
- function() { success_('setRemoteDescription'); },
- function() { failure_('setRemoteDescription'); });
- if (session_description.type == 'offer') {
- debug('createAnswer with constraints: ' +
- JSON.stringify(gCreateAnswerConstraints, null, ' '));
- peerConnection.createAnswer(
- setLocalAndSendMessage_,
- function() { failure_('createAnswer'); },
- gCreateAnswerConstraints);
- }
- return;
- } else if (parsed_msg.candidate) {
- var candidate = new RTCIceCandidate(parsed_msg);
- peerConnection.addIceCandidate(candidate);
- return;
- }
- throw failTest('unknown message received');
+function receiveOffer(peerConnection, offer, constraints, callback) {
+ var sessionDescription = new RTCSessionDescription(offer);
+ peerConnection.setRemoteDescription(
+ sessionDescription,
+ function() { success_('setRemoteDescription'); },
+ function() { failure_('setRemoteDescription'); });
+
+ peerConnection.createAnswer(
+ function(answer) {
+ success_('createAnswer');
+ setLocalDescription(peerConnection, answer);
+ callback(answer);
+ },
+ function() { failure_('createAnswer'); },
+ constraints);
+}
+
+function receiveAnswer(peerConnection, answer, callback) {
+ var sessionDescription = new RTCSessionDescription(answer);
+ peerConnection.setRemoteDescription(
+ sessionDescription,
+ function() {
+ success_('setRemoteDescription');
+ callback();
+ },
+ function() { failure_('setRemoteDescription'); });
}
function createPeerConnection(stun_server, useRtpDataChannels) {
servers = {iceServers: [{url: 'stun:' + stun_server}]};
try {
var constraints = { optional: [{ RtpDataChannels: useRtpDataChannels }]};
- peerConnection = new webkitRTCPeerConnection(servers, constraints);
+ peerConnection = new RTCPeerConnection(servers, constraints);
} catch (exception) {
throw failTest('Failed to create peer connection: ' + exception);
}
peerConnection.onaddstream = addStreamCallback_;
peerConnection.onremovestream = removeStreamCallback_;
peerConnection.onicecandidate = iceCallback_;
- peerConnection.ondatachannel = onCreateDataChannelCallback_;
return peerConnection;
}
-function setupCall(peerConnection) {
- debug('createOffer with constraints: ' +
- JSON.stringify(gCreateOfferConstraints, null, ' '));
+function createOffer(peerConnection, constraints, callback) {
peerConnection.createOffer(
- setLocalAndSendMessage_,
+ function(localDescription) {
+ success_('createOffer');
+ setLocalDescription(peerConnection, localDescription);
+ callback(localDescription);
+ },
function() { failure_('createOffer'); },
- gCreateOfferConstraints);
-}
-
-function answerCall(peerConnection, message) {
- handleMessage(peerConnection, message);
-}
-
-function createDataChannel(peerConnection, label) {
- if (gDataChannel != null && gDataChannel.readyState != 'closed') {
- throw failTest('Creating DataChannel, but we already have one.');
- }
-
- gDataChannel = peerConnection.createDataChannel(label, { reliable: false });
- debug('DataChannel with label ' + gDataChannel.label + ' initiated locally.');
- hookupDataChannelEvents();
-}
-
-function closeDataChannel(peerConnection) {
- if (gDataChannel == null)
- throw failTest('Closing DataChannel, but none exists.');
- debug('DataChannel with label ' + gDataChannel.label + ' is beeing closed.');
- gDataChannel.close();
-}
-
-function createDtmfSender(peerConnection) {
- if (gDtmfSender != null)
- throw failTest('Creating DTMF sender, but we already have one.');
-
- var localStream = getLocalStream();
- if (localStream == null)
- throw failTest('Creating DTMF sender but local stream is null.');
- local_audio_track = localStream.getAudioTracks()[0];
- gDtmfSender = peerConnection.createDTMFSender(local_audio_track);
- gDtmfSender.ontonechange = gDtmfOnToneChange;
+ constraints);
}
function hasSeenCryptoInSdp() {
@@ -206,21 +84,19 @@ function failure_(method, error) {
/** @private */
function iceCallback_(event) {
if (event.candidate)
- sendToPeer(gRemotePeerId, JSON.stringify(event.candidate));
+ sendIceCandidate(event.candidate);
}
/** @private */
-function setLocalAndSendMessage_(session_description) {
- session_description.sdp = gTransformOutgoingSdp(session_description.sdp);
- if (session_description.sdp.search('a=crypto') != -1 ||
- session_description.sdp.search('a=fingerprint') != -1)
+function setLocalDescription(peerConnection, sessionDescription) {
+ if (sessionDescription.sdp.search('a=crypto') != -1 ||
+ sessionDescription.sdp.search('a=fingerprint') != -1)
gHasSeenCryptoInSdp = 'crypto-seen';
+
peerConnection.setLocalDescription(
- session_description,
+ sessionDescription,
function() { success_('setLocalDescription'); },
function() { failure_('setLocalDescription'); });
- debug('Sending SDP message:\n' + session_description.sdp);
- sendToPeer(gRemotePeerId, JSON.stringify(session_description));
}
/** @private */
@@ -235,32 +111,3 @@ function removeStreamCallback_(event) {
debug('Call ended.');
document.getElementById('remote-view').src = '';
}
-
-/** @private */
-function onCreateDataChannelCallback_(event) {
- if (gDataChannel != null && gDataChannel.readyState != 'closed') {
- throw failTest('Received DataChannel, but we already have one.');
- }
-
- gDataChannel = event.channel;
- debug('DataChannel with label ' + gDataChannel.label +
- ' initiated by remote peer.');
- hookupDataChannelEvents();
-}
-
-/** @private */
-function hookupDataChannelEvents() {
- gDataChannel.onmessage = gDataCallback;
- gDataChannel.onopen = onDataChannelReadyStateChange_;
- gDataChannel.onclose = onDataChannelReadyStateChange_;
- // Trigger gDataStatusCallback so an application is notified
- // about the created data channel.
- onDataChannelReadyStateChange_();
-}
-
-/** @private */
-function onDataChannelReadyStateChange_() {
- var readyState = gDataChannel.readyState;
- debug('DataChannel state:' + readyState);
- gDataStatusCallback(readyState);
-}
« no previous file with comments | « chrome/test/data/webrtc/getusermedia.js ('k') | chrome/test/data/webrtc/message_handling.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698