tor-browser

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

test_bug495145.html (2145B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=495145
      5 -->
      6 
      7 <head>
      8  <title>Bug 495145 - pausing while ended shouldn't cause problems</title>
      9  <script src="/tests/SimpleTest/SimpleTest.js"></script>
     10  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     11  <script type="text/javascript" src="manifest.js"></script>
     12 
     13 </head>
     14 <body>
     15 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=495145">Mozilla Bug 495145</a>
     16 <pre id="test">
     17 <script class="testbody" type="text/javascript">
     18 
     19 var manager = new MediaTestManager;
     20 
     21 function start(e) {
     22  e.target.play();
     23 }
     24 
     25 function ended1(e) {
     26  var v = e.target;
     27  if (v._finished)
     28    return;
     29 
     30  ++v._endCount;
     31  if (v._endCount == 2) {
     32    ok(true, "Playing after pause while ended works for " + v._name);
     33    v._finished = true;
     34    v.removeEventListener("loadedmetadata", start);
     35    v.removeEventListener("ended", ended1);
     36    removeNodeAndSource(v);
     37    manager.finished(v.token);
     38    return;
     39  }
     40 
     41  v.pause();
     42  v.play();
     43 }
     44 
     45 function ended2(e) {
     46  var v = e.target;
     47  if (v._finished)
     48    return;
     49 
     50  v.pause();
     51  v.currentTime = 0;
     52 }
     53 
     54 function seeked2(e) {
     55  var v = e.target;
     56  if (v._finished)
     57    return;
     58 
     59  ok(v.paused, "Paused after seek after pause while ended for " + v._name);
     60  v._finished = true;
     61  v.removeEventListener("loadedmetadata", start);
     62  v.removeEventListener("ended", ended2);
     63  v.removeEventListener("seeked", seeked2);
     64  removeNodeAndSource(v);
     65  manager.finished(v.token);
     66 }
     67 
     68 function createVideo(test, x, token) {
     69  var v = document.createElement('video');
     70  v.preload = "metadata";
     71  v.token = token;
     72  manager.started(token);
     73  v.src = test.name;
     74  v._name = test.name + "#" + x;
     75  v._endCount = 0;
     76  v._finished = false;
     77  v.addEventListener("loadedmetadata", start);
     78  v.addEventListener("ended", x == 1 ? ended1 : ended2);
     79  if (x == 2)
     80    v.addEventListener("seeked", seeked2);
     81  document.body.appendChild(v);
     82 }
     83 
     84 function startTest(test, token) {
     85  createVideo(test, 1, token + "a");
     86  createVideo(test, 2, token + "b");
     87 }
     88 
     89 manager.runTests(gSmallTests, startTest);
     90 
     91 
     92 </script>
     93 </pre>
     94 </body>
     95 </html>