| Index: content/test/data/media/peerconnection-call.html
|
| diff --git a/content/test/data/media/peerconnection-call.html b/content/test/data/media/peerconnection-call.html
|
| index 535498f45d409b115b8c39774cd2d173bfd7d2a0..dbd873a197eb9d8f9c533e276b5130a731b16520 100644
|
| --- a/content/test/data/media/peerconnection-call.html
|
| +++ b/content/test/data/media/peerconnection-call.html
|
| @@ -9,7 +9,6 @@
|
| var gFirstConnection = null;
|
| var gSecondConnection = null;
|
| var gTestWithoutMsid = false;
|
| -
|
| var gLocalStream = null;
|
| var gSentTones = '';
|
|
|
| @@ -19,6 +18,7 @@
|
| var transformSdp = function(sdp) { return sdp; };
|
| var transformRemoteSdp = function(sdp) { return sdp; };
|
| var transformCandidate = function(candidate) { return candidate; };
|
| + var onLocalDescriptionError = function(error) { };
|
|
|
| // When using external SDES, the crypto key is chosen by javascript.
|
| var EXTERNAL_SDES_LINES = {
|
| @@ -114,11 +114,43 @@
|
| transformRemoteSdp = removeMsid;
|
| gTestWithoutMsid = true;
|
| navigator.webkitGetUserMedia({audio: true, video: true},
|
| - addStreamToBothConnectionsAndNegotiate, printGetUserMediaError);
|
| + addStreamToBothConnectionsAndNegotiate, printGetUserMediaError);
|
| waitForVideo('remote-view-1');
|
| waitForVideo('remote-view-2');
|
| }
|
|
|
| + // Test that we can't setup a call with an unsupported video codec
|
| + function negotiateUnsupportedVideoCodec() {
|
| + createConnections(null);
|
| + transformSdp = removeVideoCodec;
|
| + navigator.webkitGetUserMedia({audio: true, video: true},
|
| + addStreamToBothConnectionsAndNegotiate, printGetUserMediaError);
|
| + onLocalDescriptionError = function(error) {
|
| + var expectedMsg = 'SetLocalDescription failed: Failed to' +
|
| + ' update session state: ERROR_CONTENT';
|
| + expectEquals(expectedMsg, error);
|
| +
|
| + // Got the right message, test succeeded.
|
| + document.title = 'OK';
|
| + };
|
| + }
|
| +
|
| + // Test that we can't setup a call if one peer does not support encryption
|
| + function negotiateNonCryptoCall() {
|
| + createConnections(null);
|
| + transformSdp = removeCrypto;
|
| + navigator.webkitGetUserMedia({audio: true, video: true},
|
| + addStreamToBothConnectionsAndNegotiate, printGetUserMediaError);
|
| + onLocalDescriptionError = function(error) {
|
| + var expectedMsg = 'SetLocalDescription failed: Called with a SDP without'
|
| + + ' crypto enabled.';
|
| + expectEquals(expectedMsg, error);
|
| +
|
| + // Got the right message, test succeeded.
|
| + document.title = 'OK';
|
| + };
|
| + }
|
| +
|
| // Test that we can setup call with legacy settings.
|
| function callWithLegacySdp() {
|
| transformSdp = function(sdp) {
|
| @@ -418,10 +450,10 @@
|
|
|
| gLocalStream = localStream;
|
| }
|
| -
|
| +
|
| // Called if getUserMedia fails.
|
| function printGetUserMediaError(error) {
|
| - document.title = 'getUserMedia request failed with code ' + error.code;
|
| + document.title = 'getUserMedia request failed with code ' + error.code;
|
| }
|
|
|
| // Called if getUserMedia succeeds and we want to send from both connections.
|
| @@ -510,7 +542,8 @@
|
|
|
| function onOfferCreated(offer, caller, callee) {
|
| offer.sdp = transformSdp(offer.sdp);
|
| - caller.setLocalDescription(offer);
|
| + caller.setLocalDescription(offer, null, onLocalDescriptionError);
|
| +
|
| expectEquals('have-local-offer', caller.signalingState);
|
| receiveOffer(offer.sdp, caller, callee);
|
| }
|
| @@ -535,6 +568,18 @@
|
| return offerSdp;
|
| }
|
|
|
| + function removeVideoCodec(offerSdp) {
|
| + offerSdp = offerSdp.replace('a=rtpmap:100 VP8/90000\r\n',
|
| + 'a=rtpmap:100 XVP8/90000\r\n');
|
| + return offerSdp;
|
| + }
|
| +
|
| + function removeCrypto(offerSdp) {
|
| + offerSdp = offerSdp.replace(/a=crypto.*\r\n/g, 'a=Xcrypto\r\n');
|
| + offerSdp = offerSdp.replace(/a=fingerprint.*\r\n/g, '');
|
| + return offerSdp;
|
| + }
|
| +
|
| function removeBundle(sdp) {
|
| return sdp.replace(/a=group:BUNDLE .*\r\n/g, '');
|
| }
|
|
|