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 20129ad26cfc85edd6fb120c941ea32e7ba88b71..c4d9859b8d2074abfa7aa54b5f638033e286776c 100644 |
--- a/content/test/data/media/peerconnection-call.html |
+++ b/content/test/data/media/peerconnection-call.html |
@@ -72,11 +72,12 @@ |
function callEmptyThenAddOneStreamAndRenegotiate(constraints) { |
createConnections(null); |
negotiate(); |
- waitForConnectionToStabilize(gFirstConnection); |
- navigator.webkitGetUserMedia(constraints, |
- addStreamToTheFirstConnectionAndNegotiate, printGetUserMediaError); |
- // Only the first connection is sending here. |
- waitForVideo('remote-view-2'); |
+ waitForConnectionToStabilize(gFirstConnection, function() { |
+ navigator.webkitGetUserMedia(constraints, |
+ addStreamToTheFirstConnectionAndNegotiate, printGetUserMediaError); |
+ // Only the first connection is sending here. |
+ waitForVideo('remote-view-2'); |
+ }); |
} |
// First makes a call between pc1 and pc2, and then makes a call between pc3 |
@@ -265,6 +266,18 @@ |
detectVideoPlaying('remote-view-2', onCallEstablished); |
} |
+ function enableRemoteVideo(peerConnection, enabled) { |
+ remoteStream = peerConnection.getRemoteStreams()[0]; |
+ remoteVideoTrack = remoteStream.getVideoTracks()[0]; |
+ remoteVideoTrack.enabled = enabled; |
+ } |
+ |
+ function enableRemoteAudio(peerConnection, enabled) { |
+ remoteStream = peerConnection.getRemoteStreams()[0]; |
+ remoteAudioTrack = remoteStream.getAudioTracks()[0]; |
+ remoteAudioTrack.enabled = enabled; |
+ } |
+ |
function callAndEnsureAudioIsPlaying() { |
createConnections(null); |
navigator.webkitGetUserMedia({audio: true, video: true}, |
@@ -278,20 +291,20 @@ |
verifyAudioIsPlaying(samples); |
eventOccured(); |
}); |
+ |
+ // (Also, ensure video muting doesn't affect audio). |
+ enableRemoteVideo(gSecondConnection, false); |
}; |
detectVideoPlaying('remote-view-2', onCallEstablished); |
} |
- function callAndEnsureAudioMutingWorks(force_isac_16k) { |
- callAndEnsureAudioIsPlaying(force_isac_16k); |
+ function callAndEnsureAudioMutingWorks() { |
+ callAndEnsureAudioIsPlaying(); |
setAllEventsOccuredHandler(function() { |
- var audioTrack = |
- gSecondConnection.getRemoteStreams()[0].getAudioTracks()[0]; |
- |
// 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). |
- audioTrack.enabled = false; |
+ enableRemoteAudio(gSecondConnection, false); |
setTimeout(function() { |
gatherAudioLevelSamples(gSecondConnection, 200, 100, function(samples) { |
@@ -302,6 +315,26 @@ |
}); |
} |
+ function callAndEnsureVideoMutingWorks() { |
+ createConnections(null); |
+ navigator.webkitGetUserMedia({audio: true, video: true}, |
+ addStreamToBothConnectionsAndNegotiate, printGetUserMediaError); |
+ |
+ addExpectedEvent(); |
+ detectVideoPlaying('remote-view-2', function() { |
+ // Disable the receiver's remote media stream. Video should stop. |
+ // (Also, ensure muting audio doesn't affect video). |
+ enableRemoteVideo(gSecondConnection, false); |
+ enableRemoteAudio(gSecondConnection, false); |
+ |
+ detectVideoStopped('remote-view-2', function() { |
+ // Video has stopped: unmute and succeed if it starts playing again. |
+ enableRemoteVideo(gSecondConnection, true); |
+ detectVideoPlaying('remote-view-2', eventOccured); |
+ }) |
+ }); |
+ } |
+ |
// Test call with a new Video MediaStream that has been created based on a |
// stream generated by getUserMedia. |
function callWithNewVideoMediaStream() { |