Bug 1437832 - Part 1: Test-case for addTransceiver, then addTrack, then removeTrack. r+jib
MozReview-Commit-ID: 70hjut3HIsw
--- a/dom/media/tests/mochitest/test_peerConnection_transceivers.html
+++ b/dom/media/tests/mochitest/test_peerConnection_transceivers.html
@@ -780,16 +780,35 @@
{currentDirection: "sendrecv"}
]);
pc1.close();
pc2.close();
stopTracks(stream);
};
+ let checkAddTrackExistingTransceiverThenRemove = async () => {
+ let pc = new RTCPeerConnection();
+ pc.addTransceiver("audio");
+ let stream = await getUserMedia({audio: true});
+ let audio = stream.getAudioTracks()[0];
+ let sender = pc.addTrack(audio, stream);
+ pc.removeTrack(sender);
+
+ // Cause transceiver to be associated
+ await pc.setLocalDescription(await pc.createOffer());
+
+ // Make sure add/remove works still
+ sender = pc.addTrack(audio, stream);
+ pc.removeTrack(sender);
+
+ pc.close();
+ stopTracks(stream);
+ };
+
let checkRemoveTrackNegotiation = async () => {
let pc1 = new RTCPeerConnection();
let pc2 = new RTCPeerConnection();
let stream = await getUserMedia({audio: true, video: true});
let audio = stream.getAudioTracks()[0];
pc1.addTrack(audio, stream);
let video = stream.getVideoTracks()[0];
pc1.addTrack(video, stream);
@@ -2193,16 +2212,17 @@
await checkSendrecvWithTracklessStream();
await checkAddTransceiverNoTrackDoesntPair();
await checkAddTransceiverWithTrackDoesntPair();
await checkAddTransceiverThenReplaceTrackDoesntPair();
await checkAddTransceiverThenAddTrackPairs();
await checkAddTrackPairs();
await checkReplaceTrackNullDoesntPreventPairing();
await checkRemoveAndReadd();
+ await checkAddTrackExistingTransceiverThenRemove();
await checkRemoveTrackNegotiation();
await checkMute();
await checkOnAddStream();
await checkStop();
await checkStopAfterCreateOffer();
await checkStopAfterSetLocalOffer();
await checkStopAfterSetRemoteOffer();
await checkStopAfterCreateAnswer();