Bug 1437832 - Part 1: Test-case for addTransceiver, then addTrack, then removeTrack. r+jib draft
authorByron Campen [:bwc] <docfaraday@gmail.com>
Tue, 13 Feb 2018 13:21:29 -0600
changeset 754899 209a55ed377fa3b55f72217af8c712919bfcec53
parent 754399 38b3c1d03a594664c6b32c35533734283c258f43
child 754900 688f982047496ab2f0f5461f42aceb013381c554
push id99037
push userbcampen@mozilla.com
push dateWed, 14 Feb 2018 14:55:46 +0000
bugs1437832
milestone60.0a1
Bug 1437832 - Part 1: Test-case for addTransceiver, then addTrack, then removeTrack. r+jib MozReview-Commit-ID: 70hjut3HIsw
dom/media/tests/mochitest/test_peerConnection_transceivers.html
--- 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();