Bug 1945643 - Update to mozilla-nimbus-schemas 2025.1.1 r=chumphreys
[gecko.git] / dom / media / webvtt / test / mochitest / test_bug895091.html
blob6fa262928335e0cf7ca7c965b1894963b16b83fb
1 <!DOCTYPE HTML>
2 <html>
3 <head>
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"/>
8 </head>
9 <body>
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">
13 </video>
14 <script type="text/javascript">
15 /**
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() {
24 enableBothTracks();
25 await waitUntilBothTracksLoaded();
26 checkTrackReadyStateShouldBeLoaded();
27 checkCuesAmount();
28 SimpleTest.finish();
31 SimpleTest.waitForExplicitFinish();
32 onload = runTest;
34 /**
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.");
58 </script>
59 </body>
60 </html>