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

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

Issue 1645043004: WebRtcBrowserTest with VP8 and VP9. WebRtcTestBase::NegotiateCall specifying video codec. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: knitted the nits Created 4 years, 11 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/munge_sdp.js ('k') | chrome/test/data/webrtc/test_functions.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webrtc/peerconnection.js
diff --git a/chrome/test/data/webrtc/peerconnection.js b/chrome/test/data/webrtc/peerconnection.js
index 578718802d0b57aadf4a2d9f27d57087727da521..adcb475b24d13c485e7ba406899e95ddc362f6eb 100644
--- a/chrome/test/data/webrtc/peerconnection.js
+++ b/chrome/test/data/webrtc/peerconnection.js
@@ -44,16 +44,23 @@ function preparePeerConnection() {
* Returns a string on the format ok-(JSON encoded session description).
*
* @param {!Object} constraints Any createOffer constraints.
+ * @param {string} videoCodec If not null, promotes the specified codec to be
+ * the default video codec, e.g. the first one in the list on the 'm=video'
+ * SDP offer line. |videoCodec| is the case-sensitive codec name, e.g.
+ * 'VP8' or 'H264'.
*/
-function createLocalOffer(constraints) {
+function createLocalOffer(constraints, videoCodec = null) {
peerConnection_().createOffer(
function(localOffer) {
- success_('createOffer');
+ success('createOffer');
+
setLocalDescription(peerConnection, localOffer);
+ if (videoCodec !== null)
+ localOffer.sdp = setSdpDefaultVideoCodec(localOffer.sdp, videoCodec);
returnToTest('ok-' + JSON.stringify(localOffer));
},
- function(error) { failure_('createOffer', error); },
+ function(error) { failure('createOffer', error); },
constraints);
}
@@ -76,20 +83,48 @@ function receiveOfferFromPeer(sessionDescJson, constraints) {
var sessionDescription = new RTCSessionDescription(offer);
peerConnection_().setRemoteDescription(
sessionDescription,
- function() { success_('setRemoteDescription'); },
- function(error) { failure_('setRemoteDescription', error); });
+ function() { success('setRemoteDescription'); },
+ function(error) { failure('setRemoteDescription', error); });
peerConnection_().createAnswer(
function(answer) {
- success_('createAnswer');
+ success('createAnswer');
setLocalDescription(peerConnection, answer);
returnToTest('ok-' + JSON.stringify(answer));
},
- function(error) { failure_('createAnswer', error); },
+ function(error) { failure('createAnswer', error); },
constraints);
}
/**
+ * Verifies that the specified codec is the default video codec, e.g. the first
+ * one in the list on the 'm=video' SDP answer line. If this is not the case,
+ * |failure| occurs.
+ *
+ * @param {!string} sessionDescJson A JSON-encoded session description.
+ * @param {!string} expectedVideoCodec The case-sensitive codec name, e.g.
+ * 'VP8' or 'H264'.
+ */
+function verifyDefaultVideoCodec(sessionDescJson, expectedVideoCodec) {
+ var sessionDesc = parseJson_(sessionDescJson);
+ if (!sessionDesc.type) {
+ failure('verifyDefaultVideoCodec',
+ 'Invalid session description: ' + sessionDescJson);
+ }
+ var defaultVideoCodec = getSdpDefaultVideoCodec(sessionDesc.sdp);
+ if (defaultVideoCodec === null) {
+ failure('verifyDefaultVideoCodec',
+ 'Could not determine default video codec.');
+ }
+ if (expectedVideoCodec !== defaultVideoCodec) {
+ failure('verifyDefaultVideoCodec',
+ 'Expected default video codec ' + expectedVideoCodec +
+ ', got ' + defaultVideoCodec + '.');
+ }
+ returnToTest('ok-verified');
+}
+
+/**
* Asks this page to accept an answer generated by the peer in response to a
* previous offer by this page
*
@@ -109,10 +144,10 @@ function receiveAnswerFromPeer(sessionDescJson) {
peerConnection_().setRemoteDescription(
sessionDescription,
function() {
- success_('setRemoteDescription');
+ success('setRemoteDescription');
returnToTest('ok-accepted-answer');
},
- function(error) { failure_('setRemoteDescription', error); });
+ function(error) { failure('setRemoteDescription', error); });
}
/**
@@ -194,8 +229,8 @@ function receiveIceCandidates(iceCandidatesJson) {
iceCandidatesJson);
peerConnection_().addIceCandidate(new RTCIceCandidate(iceCandidate,
- function() { success_('addIceCandidate'); },
- function(error) { failure_('addIceCandidate', error); }
+ function() { success('addIceCandidate'); },
+ function(error) { failure('addIceCandidate', error); }
));
});
@@ -248,16 +283,6 @@ function peerConnection_() {
}
/** @private */
-function success_(method) {
- debug(method + '(): success.');
-}
-
-/** @private */
-function failure_(method, error) {
- throw failTest(method + '() failed: ' + JSON.stringify(error));
-}
-
-/** @private */
function iceCallback_(event) {
if (event.candidate)
gIceCandidates.push(event.candidate);
@@ -271,8 +296,8 @@ function setLocalDescription(peerConnection, sessionDescription) {
peerConnection.setLocalDescription(
sessionDescription,
- function() { success_('setLocalDescription'); },
- function(error) { failure_('setLocalDescription', error); });
+ function() { success('setLocalDescription'); },
+ function(error) { failure('setLocalDescription', error); });
}
/** @private */
« no previous file with comments | « chrome/test/data/webrtc/munge_sdp.js ('k') | chrome/test/data/webrtc/test_functions.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698