tor-browser

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

test_texttrackevents_video.html (2721B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Tests for TextTrack DOM Events</title>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
      8 </head>
      9 <body>
     10 <p id="display"></p>
     11 <div id="content">
     12 </div>
     13 <pre id="test">
     14 <script class="testbody" type="text/javascript">
     15 SimpleTest.waitForExplicitFinish();
     16 
     17 var video = document.createElement("video");
     18 video.src = "vp9cake.webm";
     19 video.preload = "auto";
     20 video.controls = true;
     21 var trackElement = document.createElement("track");
     22 trackElement.src = "sequential.vtt";
     23 trackElement.kind = "subtitles";
     24 trackElement.default = true;
     25 document.getElementById("content").appendChild(video);
     26 video.appendChild(trackElement);
     27 
     28 var trackElementCueChangeCount = 0;
     29 var trackCueChangeCount = 0;
     30 var cueEnterCount = 0;
     31 var cueExitCount = 0;
     32 
     33 video.addEventListener("loadedmetadata", function run_tests() {
     34  // Re-queue run_tests() at the end of the event loop until the track
     35  // element has loaded its data.
     36  if (trackElement.readyState == 1) {
     37    setTimeout(run_tests, 0);
     38    return;
     39  }
     40  is(trackElement.readyState, 2, "Track::ReadyState should be set to LOADED.");
     41  ok('oncuechange' in trackElement.track, "Track::OnCueChange should exist.");
     42 
     43  var textTrack = trackElement.track;
     44  is(textTrack.cues.length, 3, "textTrack.cues.length should 3.");
     45  textTrack.cues[0].onenter = function() {
     46    ++cueEnterCount;
     47  };
     48  textTrack.cues[0].onexit = function() {
     49    ++cueExitCount;
     50  };
     51  textTrack.cues[1].onenter = function() {
     52    ++cueEnterCount;
     53  };
     54  textTrack.cues[1].onexit = function() {
     55    ++cueExitCount;
     56  };
     57  textTrack.cues[2].onenter = function() {
     58    ++cueEnterCount;
     59  };
     60  textTrack.cues[2].onexit = function() {
     61    ++cueExitCount;
     62  };
     63 
     64  trackElement.track.oncuechange = function() {
     65    ++trackElementCueChangeCount;
     66  };
     67 
     68  trackElement.addEventListener("cuechange", function() {
     69    ++trackCueChangeCount;
     70  });
     71 
     72  video.play();
     73 });
     74 
     75 video.addEventListener('ended', function() {
     76  // Should be fired 1 to 6 times, as there are 3 cues,
     77  // with a change event for when it is activated/deactivated
     78  // (6 events at most).
     79  isnot(trackElementCueChangeCount, 0, "TrackElement should fire cue change at least one time.");
     80  ok(trackElementCueChangeCount <= 6, 'trackElementCueChangeCount should <= 6');
     81  isnot(trackCueChangeCount, 0, "TrackElement.track should fire cue change at least one time.");
     82  ok(trackCueChangeCount <= 6, 'trackCueChangeCount should <= 6');
     83  is(cueEnterCount, 3, "cueEnterCount should fire three times.");
     84  is(cueExitCount, 3, "cueExitCount should fire three times.");
     85  SimpleTest.finish()
     86 });
     87 </script>
     88 </pre>
     89 </body>
     90 </html>