OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <html> |
| 3 <head> |
| 4 <title>Media track switching during playback</title> |
| 5 <script src="../../resources/testharness.js"></script> |
| 6 <script src="../../resources/testharnessreport.js"></script> |
| 7 <script src="../media-file.js"></script> |
| 8 </head> |
| 9 <body> |
| 10 <script> |
| 11 async_test(function(t) |
| 12 { |
| 13 var video = document.createElement("video"); |
| 14 video.src = "../content/multitrack-3video-2audio.webm"; |
| 15 |
| 16 video.onloadedmetadata = t.step_func(function() |
| 17 { |
| 18 assert_equals(video.videoTracks.length, 3, "videoTracks.leng
th"); |
| 19 assert_equals(video.audioTracks.length, 2, "audioTracks.leng
th"); |
| 20 |
| 21 assert_true(video.videoTracks[0].selected, "videoTrack[0].se
lected"); |
| 22 assert_false(video.videoTracks[1].selected, "videoTrack[1].s
elected"); |
| 23 assert_false(video.videoTracks[2].selected, "videoTrack[2].s
elected"); |
| 24 assert_true(video.audioTracks[0].enabled, "audioTracks[0].en
abled"); |
| 25 assert_false(video.audioTracks[1].enabled, "audioTracks[1].e
nabled"); |
| 26 |
| 27 var videoWatcher = new EventWatcher(t, video, ["playing"]); |
| 28 var audioTracksWatcher = new EventWatcher(t, video.audioTrac
ks, ["change"]); |
| 29 var videoTracksWatcher = new EventWatcher(t, video.videoTrac
ks, ["change"]); |
| 30 |
| 31 videoWatcher.wait_for("playing").then(t.step_func(function()
{ |
| 32 video.videoTracks[1].selected = true; |
| 33 return videoTracksWatcher.wait_for("change"); |
| 34 })).then(t.step_func(function() { |
| 35 assert_false(video.videoTracks[0].selected, "videoTrack[
0].selected"); |
| 36 assert_true(video.videoTracks[1].selected, "videoTrack[1
].selected"); |
| 37 video.audioTracks[0].enabled = false; |
| 38 return audioTracksWatcher.wait_for("change"); |
| 39 })).then(t.step_func(function() { |
| 40 assert_false(video.audioTracks[0].enabled, "audioTracks[
0].enabled"); |
| 41 assert_false(video.audioTracks[1].enabled, "audioTracks[
1].enabled"); |
| 42 video.audioTracks[1].enabled = true; |
| 43 return audioTracksWatcher.wait_for("change"); |
| 44 })).then(t.step_func(function() { |
| 45 assert_false(video.audioTracks[0].enabled, "audioTracks[
0].enabled"); |
| 46 assert_true(video.audioTracks[1].enabled, "audioTracks[1
].enabled"); |
| 47 setTimeout(t.step_func_done(), 500); |
| 48 })); |
| 49 video.play(); |
| 50 }); |
| 51 }, "VideoTrackList track change"); |
| 52 </script> |
| 53 </body> |
| 54 </html> |
| 55 |
OLD | NEW |