diff options
Diffstat (limited to 'dom/media/webrtc/tests/mochitests/test_peerConnection_addSecondAudioStreamNoBundle.html')
-rw-r--r-- | dom/media/webrtc/tests/mochitests/test_peerConnection_addSecondAudioStreamNoBundle.html | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/dom/media/webrtc/tests/mochitests/test_peerConnection_addSecondAudioStreamNoBundle.html b/dom/media/webrtc/tests/mochitests/test_peerConnection_addSecondAudioStreamNoBundle.html new file mode 100644 index 0000000000..32d0564717 --- /dev/null +++ b/dom/media/webrtc/tests/mochitests/test_peerConnection_addSecondAudioStreamNoBundle.html @@ -0,0 +1,53 @@ +<!DOCTYPE HTML> +<html> +<head> + <script type="application/javascript" src="pc.js"></script> +</head> +<body> +<pre id="test"> +<script type="application/javascript"> + createHTML({ + bug: "1017888", + title: "Renegotiation: add second audio stream, no bundle" + }); + + runNetworkTest(function (options = {}) { + options.bundle = false; + const test = new PeerConnectionTest(options); + addRenegotiation(test.chain, + [ + function PC_LOCAL_ADD_SECOND_STREAM(test) { + test.setMediaConstraints([{audio: true}, {audio: true}], + [{audio: true}]); + // Since this is a NoBundle variant, adding a track will cause us to + // go back to checking. + test.pcLocal.expectIceChecking(); + return test.pcLocal.getAllUserMediaAndAddStreams([{audio: true}]); + }, + function PC_REMOTE_EXPECT_ICE_CHECKING(test) { + test.pcRemote.expectIceChecking(); + }, + ], + [ + function PC_REMOTE_CHECK_ADDED_TRACK(test) { + // We test both tracks to avoid an ordering problem + is(test.pcRemote._pc.getReceivers().length, 2, + "pcRemote should have two receivers"); + return Promise.all(test.pcRemote._pc.getReceivers().map(r => { + const analyser = new AudioStreamAnalyser( + new AudioContext(), new MediaStream([r.track])); + const freq = analyser.binIndexForFrequency(TEST_AUDIO_FREQ); + return analyser.waitForAnalysisSuccess(arr => arr[freq] > 200); + })); + }, + ] + ); + + // TODO(bug 1093835): figure out how to verify if media flows through the new stream + test.setMediaConstraints([{audio: true}], [{audio: true}]); + return test.run(); + }); +</script> +</pre> +</body> +</html> |