blob: c4ed102befb11bbf84a574d49efdcbcfa0af18af [file] [log] [blame]
<!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>