tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_bug895091.html (1984B)


      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.
     19 */
     20 var trackElement = document.getElementById("track1");
     21 var trackElementTwo = document.getElementById("track2");
     22 
     23 async function runTest() {
     24  enableBothTracks();
     25  await waitUntilBothTracksLoaded();
     26  checkTrackReadyStateShouldBeLoaded();
     27  checkCuesAmount();
     28  SimpleTest.finish();
     29 }
     30 
     31 SimpleTest.waitForExplicitFinish();
     32 onload = runTest;
     33 
     34 /**
     35 * The following are test helper functions.
     36 */
     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";
     42 }
     43 
     44 async function waitUntilBothTracksLoaded() {
     45  info(`wait until both tracks finish loading`);
     46  await Promise.all([once(trackElement, "load"), once(trackElementTwo, "load")]);
     47 }
     48 
     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.");
     52 }
     53 
     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.");
     57 }
     58 </script>
     59 </body>
     60 </html>