Bug 1208390 - Add test for MediaStream.getTrackById(). r?jib draft
authorAndreas Pehrson <pehrsons@gmail.com>
Fri, 20 May 2016 13:01:04 +0200
changeset 369127 908e6a69f3d93fffa4dd1d52d1abc310615c0cff
parent 369022 c67dc1f9fab86d4f2cf3224307809c44fe3ce820
child 369128 10bc7cfb94b6a210decc91c596bd4c7a4bfb0a64
push id18750
push userpehrsons@gmail.com
push dateFri, 20 May 2016 11:34:31 +0000
reviewersjib
bugs1208390
milestone49.0a1
Bug 1208390 - Add test for MediaStream.getTrackById(). r?jib MozReview-Commit-ID: 5OMc1QYagCc
dom/media/tests/mochitest/mochitest.ini
dom/media/tests/mochitest/test_getUserMedia_getTrackById.html
--- a/dom/media/tests/mochitest/mochitest.ini
+++ b/dom/media/tests/mochitest/mochitest.ini
@@ -57,16 +57,17 @@ skip-if = buildapp == 'b2g' || toolkit =
 [test_getUserMedia_basicWindowshare.html]
 skip-if = buildapp == 'b2g' || toolkit == 'android' # no windowshare on b2g/android # Bug 1141029 Mulet parity with B2G Desktop for TC
 [test_getUserMedia_basicVideoAudio.html]
 skip-if = (toolkit == 'gonk' || buildapp == 'mulet' && debug) # debug-only failure, turned an intermittent (bug 962579) into a permanant orange
 [test_getUserMedia_bug1223696.html]
 [test_getUserMedia_constraints.html]
 [test_getUserMedia_callbacks.html]
 skip-if = toolkit == 'gonk' || buildapp == 'mulet' # Bug 1063290, intermittent timeout # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
+[test_getUserMedia_getTrackById.html]
 [test_getUserMedia_gumWithinGum.html]
 [test_getUserMedia_loadedmetadata.html]
 [test_getUserMedia_mediaStreamClone.html]
 [test_getUserMedia_mediaStreamConstructors.html]
 [test_getUserMedia_mediaStreamTrackClone.html]
 [test_getUserMedia_playAudioTwice.html]
 [test_getUserMedia_playVideoAudioTwice.html]
 [test_getUserMedia_playVideoTwice.html]
new file mode 100644
--- /dev/null
+++ b/dom/media/tests/mochitest/test_getUserMedia_getTrackById.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <script type="application/javascript" src="mediaStreamPlayback.js"></script>
+</head>
+<body>
+<pre id="test">
+<script type="application/javascript">
+  createHTML({
+    title: "Basic getTrackById test of gUM stream",
+    bug: "1208390",
+  });
+
+  runTest(() => {
+    var constraints = {audio: true, video: true};
+    return getUserMedia(constraints).then(stream => {
+      is(stream.getTrackById(""), null,
+         "getTrackById of non-matching string should return null");
+
+      let audioTrack = stream.getAudioTracks()[0];
+      is(stream.getTrackById(audioTrack.id), audioTrack,
+         "getTrackById with matching id should return the track");
+
+      let videoTrack = stream.getVideoTracks()[0];
+      is(stream.getTrackById(videoTrack.id), videoTrack,
+         "getTrackById with matching id should return the track");
+
+      stream.removeTrack(audioTrack);
+      is(stream.getTrackById(audioTrack.id), null,
+         "getTrackById with id of removed track should return null");
+
+      let newStream = new MediaStream();
+      is(newStream.getTrackById(videoTrack.id), null,
+         "getTrackById with id of track in other stream should return null");
+
+      newStream.addTrack(audioTrack);
+      is(newStream.getTrackById(audioTrack.id), audioTrack,
+         "getTrackByid with matching id should return the track");
+
+      newStream.addTrack(videoTrack);
+      is(newStream.getTrackById(videoTrack.id), videoTrack,
+         "getTrackByid with matching id should return the track");
+    });
+  });
+
+</script>
+</pre>
+</body>
+</html>