tor-browser

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

fragment_play.js (1946B)


      1 function test_fragment_play(v, start, end, is, ok, finish) {
      2  var completed = false;
      3  var loadedMetadataRaised = false;
      4  var seekedRaised = false;
      5  var pausedRaised = false;
      6 
      7  function onLoadedMetadata() {
      8    var s = start == null ? 0 : start;
      9    var e = end == null ? v.duration : end;
     10    ok(
     11      v.currentTime == s,
     12      "loadedmetadata currentTime is " + v.currentTime + " != " + s
     13    );
     14    ok(
     15      v.mozFragmentEnd == e,
     16      "mozFragmentEnd (" + v.mozFragmentEnd + ") == end Time (" + e + ")"
     17    );
     18    loadedMetadataRaised = true;
     19    v.play();
     20  }
     21 
     22  function onSeeked() {
     23    if (completed) {
     24      return;
     25    }
     26 
     27    var s = start == null ? 0 : start;
     28    ok(
     29      v.currentTime - s < 0.1,
     30      "seeked currentTime is " +
     31        v.currentTime +
     32        " != " +
     33        s +
     34        " (fuzzy compare +-0.1)"
     35    );
     36 
     37    seekedRaised = true;
     38  }
     39 
     40  function onTimeUpdate() {
     41    if (completed) {
     42      return;
     43    }
     44 
     45    v._lastTimeUpdate = v.currentTime;
     46  }
     47 
     48  function onPause() {
     49    if (completed) {
     50      return;
     51    }
     52 
     53    var e = end == null ? v.duration : end;
     54    var a = e - 0.05;
     55    var b = e + 0.05;
     56    ok(
     57      v.currentTime >= a && v.currentTime <= b,
     58      "paused currentTime is " +
     59        a +
     60        " < " +
     61        v.currentTime +
     62        " < " +
     63        b +
     64        " ? " +
     65        v._lastTimeUpdate
     66    );
     67    pausedRaised = true;
     68    v.play();
     69  }
     70 
     71  function onEnded() {
     72    if (completed) {
     73      return;
     74    }
     75 
     76    completed = true;
     77    ok(loadedMetadataRaised, "loadedmetadata event");
     78    if (start) {
     79      ok(seekedRaised, "seeked event");
     80    }
     81    if (end) {
     82      ok(pausedRaised, "paused event: " + end + " " + v.duration);
     83    }
     84    finish();
     85  }
     86 
     87  v.addEventListener("ended", onEnded);
     88  v.addEventListener("loadedmetadata", onLoadedMetadata);
     89  v.addEventListener("seeked", onSeeked);
     90  v.addEventListener("pause", onPause);
     91  v.addEventListener("timeupdate", onTimeUpdate);
     92 }