<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=883173 --> <head> <meta charset='utf-8'> <title>Test for Bug 883173 - TextTrackCue(List) Sorting</title> <script type="text/javascript" src="/MochiKit/MochiKit.js"></script> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <p id="display"></p> <div id="content"> </div> <pre id="test"> <script class="testbody" type="text/javascript"> SimpleTest.waitForExplicitFinish(); var video = document.createElement("video"); video.src = "seek.webm"; video.preload = "metadata"; var trackElement = document.createElement("track"); trackElement.src = "bug883173.vtt"; trackElement.kind = "subtitles"; document.getElementById("content").appendChild(video); video.appendChild(trackElement); video.addEventListener("loadedmetadata", function run_tests() { // Re-queue run_tests() at the end of the event loop until the track // element has loaded its data. if (trackElement.readyState == 1) { setTimeout(run_tests, 0); return; } is(trackElement.readyState, 2, "Track::ReadyState should be set to LOADED."); // Set mode to hidden so that the active cue lists are being updated. trackElement.track.mode = "hidden"; var expected = [[1, 3], [1, 2], [2, 4], [2, 3], [3, 4]]; var cueList = trackElement.track.cues; is(cueList.length, expected.length, "Cue list length should be 5."); for (var i = 0; i < expected.length; i++) { is(cueList[i].startTime, expected[i][0], "Cue's start time should be " + expected[i][0]); is(cueList[i].endTime, expected[i][1], "Cue's end time should be " + expected[i][1]); } SimpleTest.finish(); } ); </script> </pre> </body> </html>