Bug 1093835 - Check audio flow stopping after removing audio track and renegotiating. r=jib

MozReview-Commit-ID: 2lx6jUON3jU

--HG--
extra : rebase_source : 4caee72edbc678ba9bb5d7a35c04a4eadfe6005d
extra : source : bb77023e0e7f4399e57dd2be2f331ee19c1a874a
This commit is contained in:
Andreas Pehrson 2017-05-04 11:37:02 +02:00
Родитель e3f9211a25
Коммит 2827d03e31
1 изменённых файлов: 26 добавлений и 4 удалений

Просмотреть файл

@ -11,20 +11,42 @@
title: "Renegotiation: remove audio track"
});
var test;
runNetworkTest(function (options) {
test = new PeerConnectionTest(options);
const test = new PeerConnectionTest(options);
let receivedTrack, analyser, freq;
addRenegotiation(test.chain,
[
function PC_REMOTE_SETUP_ANALYSER(test) {
is(test.pcRemote._pc.getReceivers().length, 1,
"pcRemote should have one receiver before renegotiation");
receivedTrack = test.pcRemote._pc.getReceivers()[0].track;
is(receivedTrack.readyState, "live",
"The received track should be live");
analyser = new AudioStreamAnalyser(
new AudioContext(), new MediaStream([receivedTrack]));
freq = analyser.binIndexForFrequency(TEST_AUDIO_FREQ);
return analyser.waitForAnalysisSuccess(arr => arr[freq] > 200);
},
function PC_LOCAL_REMOVE_AUDIO_TRACK(test) {
test.setOfferOptions({ offerToReceiveAudio: true });
return test.pcLocal.removeSender(0);
},
],
[
function PC_REMOTE_CHECK_FLOW_STOPPED(test) {
is(test.pcRemote._pc.getReceivers().length, 0,
"pcRemote should have no more receivers");
is(receivedTrack.readyState, "ended",
"The received track should have ended");
return analyser.waitForAnalysisSuccess(arr => arr[freq] < 50);
},
]
);
// TODO(bug 1093835): figure out how to verify that media stopped flowing from pcLocal
test.setMediaConstraints([{audio: true}], [{audio: true}]);
test.run();
});