Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / media / avtrack / addtrack.html
blob18c9097a42aeaffe411185562585840e8ac8ff5c
1 <!doctype html>
2 <html>
3 <head>
4 <title>AudioTrackList &amp; VideoTrackList addtrack event</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 <div id="log"></div>
11 <script>
12 function addtrack_test(tagName, src, label)
14 function onTrackListEvent(actualEventList, e)
16 actualEventList.push(e.type);
18 if (e.type == "addtrack") {
19 assert_equals(e.track, e.target[0], "Track property matches first track in list.");
23 function setupTrackListHandlers(t, trackList, actualEventList)
25 trackList.addEventListener("addtrack", t.step_func(onTrackListEvent.bind(this, actualEventList)));
26 trackList.addEventListener("change", t.step_func(onTrackListEvent.bind(this, actualEventList)));
27 trackList.addEventListener("removetrack", t.step_func(onTrackListEvent.bind(this, actualEventList)));
30 async_test(function(t)
32 var e = document.createElement(tagName);
33 e.src = src;
35 var expectedEvents = ["addtrack"];
36 var actualAudioEvents = [];
37 var actualVideoEvents = [];
38 setupTrackListHandlers(t, e.audioTracks, actualAudioEvents, "audioTracks events");
39 setupTrackListHandlers(t, e.videoTracks, actualVideoEvents, "videoTracks events");
41 e.load();
43 e.addEventListener("loadedmetadata", t.step_func(function()
45 assert_array_equals(actualAudioEvents, expectedEvents);
47 if (e.videoTracks.length > 0) {
48 assert_equals(label, "audio-video");
49 assert_array_equals(actualVideoEvents, expectedEvents);
50 } else {
51 assert_equals(label, "audio-only");
52 assert_equals(actualVideoEvents.length, 0);
55 t.done();
56 }));
57 }, tagName + " : " + label);
60 addtrack_test("audio", findMediaFile("audio", "../content/test"), "audio-only");
61 addtrack_test("audio", findMediaFile("video", "../content/test"), "audio-video");
62 addtrack_test("video", findMediaFile("audio", "../content/test"), "audio-only");
63 addtrack_test("video", findMediaFile("video", "../content/test"), "audio-video");
64 </script>
65 </body>
66 </html>