4 <title>Test for Bug
895091 - Integrating vtt.js
</title>
5 <script src=
"/tests/SimpleTest/SimpleTest.js"></script>
6 <script type=
"text/javascript" src=
"manifest.js"></script>
7 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css"/>
10 <video id=
"v" src=
"seek.webm" preload=
"metadata">
11 <track src=
"long.vtt" kind=
"subtitles" id=
"track1">
12 <track src=
"long.vtt" kind=
"subtitles" id=
"track2">
14 <script type=
"text/javascript">
16 * This test is used to ensure that we can load two track elements with large
17 * amount of cues at same time. In this test, both tracks are disable by default,
18 * we have to enable them in order to start loading.
20 var trackElement
= document
.getElementById("track1");
21 var trackElementTwo
= document
.getElementById("track2");
23 async
function runTest() {
25 await
waitUntilBothTracksLoaded();
26 checkTrackReadyStateShouldBeLoaded();
31 SimpleTest
.waitForExplicitFinish();
35 * The following are test helper functions.
37 function enableBothTracks() {
38 // All tracks are `disable` on default. As we won't start loading for disabled
39 // tracks, we have to change their mode in order to start loading.
40 trackElement
.track
.mode
= "hidden";
41 trackElementTwo
.track
.mode
= "hidden";
44 async
function waitUntilBothTracksLoaded() {
45 info(`wait until both tracks finish loading`);
46 await Promise
.all([once(trackElement
, "load"), once(trackElementTwo
, "load")]);
49 function checkTrackReadyStateShouldBeLoaded() {
50 is(trackElement
.readyState
, 2, "Track::ReadyState should be set to LOADED.");
51 is(trackElementTwo
.readyState
, 2, "Track::ReadyState should be set to LOADED.");
54 function checkCuesAmount() {
55 is(trackElement
.track
.cues
.length
, 2000, "Cue list length should be 2000.");
56 is(trackElementTwo
.track
.cues
.length
, 2000, "Cue list length should be 2000.");