Index: third_party/WebKit/LayoutTests/media/avtrack/track-switching.html |
diff --git a/third_party/WebKit/LayoutTests/media/avtrack/track-switching.html b/third_party/WebKit/LayoutTests/media/avtrack/track-switching.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..88f6f1a8a48c8ba6d915d5be221c4bfe48f158f1 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/media/avtrack/track-switching.html |
@@ -0,0 +1,55 @@ |
+<!doctype html> |
+<html> |
+ <head> |
+ <title>Media track switching during playback</title> |
+ <script src="../../resources/testharness.js"></script> |
+ <script src="../../resources/testharnessreport.js"></script> |
+ <script src="../media-file.js"></script> |
+ </head> |
+ <body> |
+ <script> |
+ async_test(function(t) |
+ { |
+ var video = document.createElement("video"); |
+ video.src = "../content/multitrack-3video-2audio.webm"; |
+ |
+ video.onloadedmetadata = t.step_func(function() |
+ { |
+ assert_equals(video.videoTracks.length, 3, "videoTracks.length"); |
+ assert_equals(video.audioTracks.length, 2, "audioTracks.length"); |
+ |
+ assert_true(video.videoTracks[0].selected, "videoTrack[0].selected"); |
+ assert_false(video.videoTracks[1].selected, "videoTrack[1].selected"); |
+ assert_false(video.videoTracks[2].selected, "videoTrack[2].selected"); |
+ assert_true(video.audioTracks[0].enabled, "audioTracks[0].enabled"); |
+ assert_false(video.audioTracks[1].enabled, "audioTracks[1].enabled"); |
+ |
+ var videoWatcher = new EventWatcher(t, video, ["playing"]); |
+ var audioTracksWatcher = new EventWatcher(t, video.audioTracks, ["change"]); |
+ var videoTracksWatcher = new EventWatcher(t, video.videoTracks, ["change"]); |
+ |
+ videoWatcher.wait_for("playing").then(t.step_func(function() { |
+ video.videoTracks[1].selected = true; |
+ return videoTracksWatcher.wait_for("change"); |
+ })).then(t.step_func(function() { |
+ assert_false(video.videoTracks[0].selected, "videoTrack[0].selected"); |
+ assert_true(video.videoTracks[1].selected, "videoTrack[1].selected"); |
+ video.audioTracks[0].enabled = false; |
+ return audioTracksWatcher.wait_for("change"); |
+ })).then(t.step_func(function() { |
+ assert_false(video.audioTracks[0].enabled, "audioTracks[0].enabled"); |
+ assert_false(video.audioTracks[1].enabled, "audioTracks[1].enabled"); |
+ video.audioTracks[1].enabled = true; |
+ return audioTracksWatcher.wait_for("change"); |
+ })).then(t.step_func(function() { |
+ assert_false(video.audioTracks[0].enabled, "audioTracks[0].enabled"); |
+ assert_true(video.audioTracks[1].enabled, "audioTracks[1].enabled"); |
+ setTimeout(t.step_func_done(), 500); |
+ })); |
+ video.play(); |
+ }); |
+ }, "VideoTrackList track change"); |
+ </script> |
+ </body> |
+</html> |
+ |