Bug 1208390 - Use MediaStream.getTrackById() in some existing tests. r?jib draft
authorAndreas Pehrson <pehrsons@gmail.com>
Fri, 20 May 2016 13:33:42 +0200
changeset 369128 10bc7cfb94b6a210decc91c596bd4c7a4bfb0a64
parent 369127 908e6a69f3d93fffa4dd1d52d1abc310615c0cff
child 369129 0894f58c6d26baf3dedb1023a447791a83ac4686
push id18750
push userpehrsons@gmail.com
push dateFri, 20 May 2016 11:34:31 +0000
reviewersjib
bugs1208390
milestone49.0a1
Bug 1208390 - Use MediaStream.getTrackById() in some existing tests. r?jib MozReview-Commit-ID: 5Xy0Zmo2Ob2
dom/media/tests/mochitest/head.js
dom/media/tests/mochitest/pc.js
dom/media/tests/mochitest/test_peerConnection_promiseSendOnly.html
--- a/dom/media/tests/mochitest/head.js
+++ b/dom/media/tests/mochitest/head.js
@@ -398,17 +398,17 @@ function checkMediaStreamTracks(constrai
  * Check that a media stream contains exactly a set of media stream tracks.
  *
  * @param {MediaStream} mediaStream the media stream being checked
  * @param {Array} tracks the tracks that should exist in mediaStream
  * @param {String} [message] an optional message to pass to asserts
  */
 function checkMediaStreamContains(mediaStream, tracks, message) {
   message = message ? (message + ": ") : "";
-  tracks.forEach(t => ok(mediaStream.getTracks().includes(t),
+  tracks.forEach(t => ok(mediaStream.getTrackById(t.id),
                          message + "MediaStream " + mediaStream.id +
                          " contains track " + t.id));
   is(mediaStream.getTracks().length, tracks.length,
      message + "MediaStream " + mediaStream.id + " contains no extra tracks");
 }
 
 function checkMediaStreamCloneAgainstOriginal(clone, original) {
   isnot(clone.id.length, 0, "Stream clone should have an id string");
@@ -416,17 +416,17 @@ function checkMediaStreamCloneAgainstOri
         "Stream clone should be different from the original");
   isnot(clone.id, original.id,
         "Stream clone's id should be different from the original's");
   is(clone.getAudioTracks().length, original.getAudioTracks().length,
      "All audio tracks should get cloned");
   is(clone.getVideoTracks().length, original.getVideoTracks().length,
      "All video tracks should get cloned");
   original.getTracks()
-          .forEach(t => ok(!clone.getTracks().includes(t),
+          .forEach(t => ok(!clone.getTrackById(t.id),
                            "The clone's tracks should be originals"));
 }
 
 function checkMediaStreamTrackCloneAgainstOriginal(clone, original) {
   isnot(clone.id.length, 0,
         "Track clone should have an id string");
   isnot(clone, original,
         "Track clone should be different from the original");
--- a/dom/media/tests/mochitest/pc.js
+++ b/dom/media/tests/mochitest/pc.js
@@ -1127,17 +1127,17 @@ PeerConnectionWrapper.prototype = {
     is(observedKind, expectedKind,
         "track id " + track.id + " was of kind " +
         observedKind + ", which matches " + expectedKind);
     observedTrackInfoById[track.id] = expectedTrackInfoById[track.id];
   },
 
   isTrackOnPC: function(track) {
     return this._pc.getRemoteStreams().some(stream => {
-      return stream.getTracks().some(pcTrack => pcTrack.id == track.id);
+      return !!stream.getTrackById(track.id);
     });
   },
 
   allExpectedTracksAreObserved: function(expected, observed) {
     return Object.keys(expected).every(trackId => observed[trackId]);
   },
 
   setupTrackEventHandler: function() {
@@ -1473,17 +1473,17 @@ PeerConnectionWrapper.prototype = {
    *        A promise that resolves when we're receiving the tone from |from|.
    */
   checkReceivingToneFrom : function(audiocontext, from) {
     var inputElem = from.localMediaElements[0];
 
     // As input we use the stream of |from|'s first available audio sender.
     var inputSenderTracks = from._pc.getSenders().map(sn => sn.track);
     var inputAudioStream = from._pc.getLocalStreams()
-      .find(s => s.getAudioTracks().some(t => inputSenderTracks.some(t2 => t == t2)));
+      .find(s => inputSenderTracks.some(t => t.kind == "audio" && !!s.getTrackById(t.id)));
     var inputAnalyser = new AudioStreamAnalyser(audiocontext, inputAudioStream);
 
     // It would have been nice to have a working getReceivers() here, but until
     // we do, let's use what remote streams we have.
     var outputAudioStream = this._pc.getRemoteStreams()
       .find(s => s.getAudioTracks().length > 0);
     var outputAnalyser = new AudioStreamAnalyser(audiocontext, outputAudioStream);
 
--- a/dom/media/tests/mochitest/test_peerConnection_promiseSendOnly.html
+++ b/dom/media/tests/mochitest/test_peerConnection_promiseSendOnly.html
@@ -18,17 +18,17 @@
   var add = (pc, can, failed) => can && pc.addIceCandidate(can).catch(failed);
   pc1.onicecandidate = e => add(pc2, e.candidate, generateErrorCallback());
   pc2.onicecandidate = e => add(pc1, e.candidate, generateErrorCallback());
 
   var v1, v2;
   var delivered = new Promise(resolve => pc2.ontrack = e => {
     // Test RTCTrackEvent here.
     ok(e.streams.length > 0, "has streams");
-    ok(e.streams[0].getTracks().some(track => track == e.track), "has track");
+    ok(e.streams[0].getTrackById(e.track.id), "has track");
     ok(pc2.getReceivers().some(receiver => receiver == e.receiver), "has receiver");
     if (e.streams[0].getTracks().length == 2) {
       // Test RTCTrackEvent required args here.
       mustThrowWith("RTCTrackEvent wo/required args",
                     "TypeError", () => new RTCTrackEvent("track", {}));
       v2.srcObject = e.streams[0];
       resolve();
     }