| OLD | NEW |
| 1 <!doctype html> | 1 <!doctype html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>Removing a track from a MediaStream</title> | 4 <title>Removing a track from a MediaStream</title> |
| 5 <link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/> | 5 <link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/> |
| 6 <link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#wi
dl-MediaStreamTrackList-remove-void-MediaStreamTrack-track"> | 6 <link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#wi
dl-MediaStreamTrackList-remove-void-MediaStreamTrack-track"> |
| 7 <link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#ev
ent-mediastream-removetrack"> | 7 <link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#ev
ent-mediastream-removetrack"> |
| 8 <link rel='stylesheet' href='../../../../../resources/testharness.css' media='al
l'/> | |
| 9 </head> | 8 </head> |
| 10 <body> | 9 <body> |
| 11 <p class="instructions" style="display:none">When prompted, accept to share your
audio stream, then your video stream.</p> | 10 <p class="instructions" style="display:none">When prompted, accept to share your
audio stream, then your video stream.</p> |
| 12 <h1 class="instructions" style="display:none">Description</h1> | 11 <h1 class="instructions" style="display:none">Description</h1> |
| 13 <p class="instructions" style="display:none">This test checks that removinging a
track from a MediaStream works as expected.</p> | 12 <p class="instructions" style="display:none">This test checks that removinging a
track from a MediaStream works as expected.</p> |
| 14 | 13 |
| 15 <div id='log'></div> | 14 <div id='log'></div> |
| 16 <script src=../../../../../resources/testharness.js></script> | 15 <script src=../../../resources/testharness.js></script> |
| 17 <script src=../../../../../resources/testharnessreport.js></script> | 16 <script src=../../../resources/testharnessreport.js></script> |
| 18 <script src="../../../../../resources/vendor-prefix.js" data-prefixed-objects='[
{"ancestors":["navigator"], "name":"getUserMedia"}]'></script> | 17 <script src="../../../resources/vendor-prefix.js" data-prefixed-objects='[{"ance
stors":["navigator"], "name":"getUserMedia"}]'></script> |
| 19 <script> | 18 <script> |
| 20 var t = async_test("Tests that a removal from a MediaStream works as expected",
{timeout:10000}); | 19 var t = async_test("Tests that a removal from a MediaStream works as expected",
{timeout:10000}); |
| 21 t.step(function () { | 20 t.step(function () { |
| 22 var audio; | 21 var audio; |
| 23 navigator.getUserMedia({audio:true}, gotAudio, function(error) {}); | 22 navigator.getUserMedia({audio:true}, gotAudio, function(error) {}); |
| 24 function gotAudio(stream) { | 23 function gotAudio(stream) { |
| 25 audio = stream; | 24 audio = stream; |
| 26 navigator.getUserMedia({video:true}, gotVideo, function(error) {}); | 25 navigator.getUserMedia({video:true}, gotVideo, function(error) {}); |
| 27 } | 26 } |
| 28 | 27 |
| 29 function gotVideo(stream) { | 28 function gotVideo(stream) { |
| 30 var video = stream; | 29 var video = stream; |
| 31 video.onremovetrack = function () { | 30 video.onremovetrack = function () { |
| 32 assert_unreached("onremovetrack is not triggered when removal of track is
triggered by the script itself"); | 31 assert_unreached("onremovetrack is not triggered when removal of track is
triggered by the script itself"); |
| 33 }; | 32 }; |
| 34 t.step(function () { | 33 t.step(function () { |
| 35 assert_equals(video.getVideoTracks().length, 1, "video mediastream starts
with one video track"); | 34 assert_equals(video.getVideoTracks().length, 1, "video mediastream starts
with one video track"); |
| 36 video.removeTrack(video.getVideoTracks()[0]); | 35 video.removeTrack(video.getVideoTracks()[0]); |
| 37 assert_equals(video.getVideoTracks().length, 0, "video mediastream has no
video track left"); | 36 assert_equals(video.getVideoTracks().length, 0, "video mediastream has no
video track left"); |
| 38 video.removeTrack(audio.getAudioTracks()[0]); // should not throw | 37 video.removeTrack(audio.getAudioTracks()[0]); // should not throw |
| 39 }); | 38 }); |
| 40 t.step(function() { | 39 t.step(function() { |
| 41 t.done(); | 40 t.done(); |
| 42 }); | 41 }); |
| 43 } | 42 } |
| 44 }); | 43 }); |
| 45 </script> | 44 </script> |
| 46 </body> | 45 </body> |
| 47 </html> | 46 </html> |
| OLD | NEW |