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

Unified Diff: content/test/data/media/peerconnection-call.html

Issue 468243003: Adding local stream mute tests, tightening up WebRTC audio tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed spelling error Created 6 years, 4 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
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 511380dfe2ea2ef41f55f9e2a42013534c522f4f..bc95ca60ef547531ef5b1b2a404dc6d30f17a265 100644
--- a/content/test/data/media/peerconnection-call.html
+++ b/content/test/data/media/peerconnection-call.html
@@ -159,7 +159,7 @@
waitForVideo('remote-view-2');
});
}
-
+
// Test that we can setup call with an audio and video track and
// simulate that the remote peer don't support MSID.
function callWithoutMsidAndBundle() {
@@ -325,49 +325,81 @@
offerOptions);
}
+ function ensureAudioPlaying(beLenient) {
+ addExpectedEvent();
+
+ // Gather 50 samples per second for 2 seconds.
+ gatherAudioLevelSamples(gSecondConnection, 100, 50, function(samples) {
+ verifyAudioIsPlaying(samples, beLenient);
+ eventOccured();
+ });
+ }
+
+ function callAndEnsureAudioIsPlaying(beLenient, constraints) {
+ createConnections(null);
+
+ // Add the local stream to gFirstConnection to play one-way audio.
+ navigator.webkitGetUserMedia(constraints,
+ addStreamToTheFirstConnectionAndNegotiate, printGetUserMediaError);
+
+ var onCallEstablished = function() {
+ ensureAudioPlaying(beLenient);
+ };
+
+ waitForConnectionToStabilize(gFirstConnection, onCallEstablished);
+ }
+
function enableRemoteVideo(peerConnection, enabled) {
remoteStream = peerConnection.getRemoteStreams()[0];
- remoteVideoTrack = remoteStream.getVideoTracks()[0];
- remoteVideoTrack.enabled = enabled;
+ remoteStream.getVideoTracks()[0].enabled = enabled;
}
function enableRemoteAudio(peerConnection, enabled) {
remoteStream = peerConnection.getRemoteStreams()[0];
- remoteAudioTrack = remoteStream.getAudioTracks()[0];
- remoteAudioTrack.enabled = enabled;
+ remoteStream.getAudioTracks()[0].enabled = enabled;
}
- function callAndEnsureAudioIsPlaying(beLenient, constraints) {
- createConnections(null);
- navigator.webkitGetUserMedia(constraints,
- addStreamToBothConnectionsAndNegotiate, printGetUserMediaError);
+ function enableLocalVideo(peerConnection, enabled) {
+ localStream = peerConnection.getLocalStreams()[0];
+ localStream.getVideoTracks()[0].enabled = enabled;
+ }
+
+ function enableLocalAudio(peerConnection, enabled) {
+ localStream = peerConnection.getLocalStreams()[0];
+ localStream.getAudioTracks()[0].enabled = enabled;
+ }
- // Wait until we have gathered samples and can conclude if audio is playing.
+ function ensureSilence() {
perkj_chrome 2014/08/25 12:05:47 Should this be moved to the utility.js?
phoglund_chromium 2014/08/25 14:25:32 Done. Moved some other stuff as well and raised th
addExpectedEvent();
- var onCallEstablished = function() {
- // Gather 50 samples per second for 2 seconds.
+ setTimeout(function() {
gatherAudioLevelSamples(gSecondConnection, 100, 50, function(samples) {
- verifyAudioIsPlaying(samples, beLenient);
+ verifyIsSilent(samples);
eventOccured();
});
- };
-
- waitForConnectionToStabilize(gFirstConnection, onCallEstablished);
+ }, 500);
}
- function callAndEnsureAudioTrackMutingWorks(beLenient) {
+ function callAndEnsureRemoteAudioTrackMutingWorks(beLenient) {
callAndEnsureAudioIsPlaying(beLenient, {audio: true, video: true});
perkj_chrome 2014/08/25 12:05:47 Is there a risk that callAndEnsureAudioIsPlaying c
phoglund_chromium 2014/08/25 14:25:32 You mean line 384? No, callAndEnsure is async so i
setAllEventsOccuredHandler(function() {
- // Call is up, now mute the track and check everything goes silent (give
- // it a small delay though, we don't expect it to happen instantly).
+ setAllEventsOccuredHandler(reportTestSuccess);
+
+ // Call is up, now mute the remote track and check we stop playing out
+ // audio (after a small delay, we don't expect it to happen instantly).
enableRemoteAudio(gSecondConnection, false);
+ ensureSilence();
+ });
+ }
- setTimeout(function() {
- gatherAudioLevelSamples(gSecondConnection, 100, 50, function(samples) {
- verifyIsSilent(samples);
- reportTestSuccess();
- });
- }, 500);
+ function callAndEnsureLocalAudioTrackMutingWorks(beLenient) {
+ callAndEnsureAudioIsPlaying(beLenient, {audio: true, video: true});
+ setAllEventsOccuredHandler(function() {
+ setAllEventsOccuredHandler(reportTestSuccess);
+
+ // Call is up, now mute the local track of the sending side and ensure
+ // the receiving side stops receiving audio.
+ enableLocalAudio(gFirstConnection, false);
+ ensureSilence();
});
}
@@ -394,6 +426,24 @@
});
}
+ function callAndEnsureLocalVideoMutingDoesntMuteAudio(beLenient) {
+ callAndEnsureAudioIsPlaying(beLenient, {audio: true, video: true});
+ setAllEventsOccuredHandler(function() {
+ setAllEventsOccuredHandler(reportTestSuccess);
+ enableLocalVideo(gFirstConnection, false);
+ ensureAudioPlaying(beLenient);
+ });
+ }
+
+ function callAndEnsureRemoteVideoMutingDoesntMuteAudio(beLenient) {
+ callAndEnsureAudioIsPlaying(beLenient, {audio: true, video: true});
+ setAllEventsOccuredHandler(function() {
+ setAllEventsOccuredHandler(reportTestSuccess);
+ enableRemoteVideo(gSecondConnection, false);
+ ensureAudioPlaying(beLenient);
+ });
+ }
+
function callAndEnsureVideoTrackMutingWorks() {
createConnections(null);
navigator.webkitGetUserMedia({audio: true, video: true},
@@ -874,16 +924,16 @@
<td>Remote Stream for Connection 4</td>
</tr>
<tr>
- <td><video width="320" height="240" id="local-view"
- autoplay="autoplay"></video></td>
- <td><video width="320" height="240" id="remote-view-1"
- autoplay="autoplay"></video></td>
- <td><video width="320" height="240" id="remote-view-2"
- autoplay="autoplay"></video></td>
- <td><video width="320" height="240" id="remote-view-3"
- autoplay="autoplay"></video></td>
- <td><video width="320" height="240" id="remote-view-4"
- autoplay="autoplay"></video></td>
+ <td><video width="320" height="240" id="local-view" autoplay muted>
+ </video></td>
+ <td><video width="320" height="240" id="remote-view-1" autoplay>
+ </video></td>
+ <td><video width="320" height="240" id="remote-view-2" autoplay>
+ </video></td>
+ <td><video width="320" height="240" id="remote-view-3" autoplay>
+ </video></td>
+ <td><video width="320" height="240" id="remote-view-4" autoplay>
+ </video></td>
<!-- Canvases are named after their corresponding video elements. -->
<td><canvas width="320" height="240" id="remote-view-1-canvas"
style="display:none"></canvas></td>
« content/browser/media/webrtc_browsertest.cc ('K') | « content/browser/media/webrtc_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698