Chromium Code Reviews| 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> |