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 |