| <!doctype html> |
| <html> |
| <head> |
| <title>Load event on the track element</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script type="text/javascript"> |
| |
| var video; |
| |
| // Setup |
| |
| setup(function(){ |
| video = document.createElement('video'); |
| document.body.appendChild(video); |
| }, {timeout: 5000}); |
| |
| // Tests |
| testCommands(["src", "mode", "append"]); |
| testCommands(["src", "append", "mode"]); |
| testCommands(["mode", "append", "src"]); |
| testCommands(["mode", "src", "append"]); |
| testCommands(["append", "src", "mode"]); |
| testCommands(["append", "mode", "src"]); |
| |
| // Utilities |
| |
| function testCommands(commands) |
| { |
| var t = async_test(document.title + ", " + commands.join(" / ")); |
| t.step(function() |
| { |
| var count = 0; |
| // Create the default <track> element. |
| var track = document.createElement('track'); |
| track.kind = "subtitles"; |
| // Add the "load" event listener. |
| track.addEventListener("load", t.step_func(function(event) |
| { |
| // Clean up for next test. |
| video.removeChild(track); |
| |
| // Ensure we only got the event after all commands ran. |
| if (count === commands.length) |
| t.done(); |
| })); |
| // Run each command. |
| commands.forEach(function(command) |
| { |
| count++; |
| runCommand(track, command); |
| }); |
| }); |
| }; |
| |
| function runCommand(track, command) |
| { |
| if (command === "src") |
| track.src = "data:text/vtt," + encodeURIComponent("WEBVTT\n\n00:00:00.000 --> 00:00:01.000\ntest\n"); |
| |
| if (command === "mode") |
| track.track.mode = 'hidden'; |
| |
| if (command === "append") |
| video.appendChild(track); |
| }; |
| |
| </script> |
| </body> |
| </html> |