tor-browser

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

test_looping_eventsOrder.html (1443B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Looping events order</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      7  <script type="text/javascript" src="manifest.js"></script>
      8 </head>
      9 <script type="text/javascript">
     10 /**
     11 * This test is used to ensure the events order when media is looping back to
     12 * the start position. We should see events in following order.
     13 * 'seeking' -> 'timeupdate' -> 'seeked'.
     14 */
     15 SimpleTest.waitForExplicitFinish();
     16 
     17 var tests = [
     18  { name:"small-shot.ogg", type:"audio/ogg" },
     19  { name:"seek-short.webm", type:"video/webm" }
     20 ];
     21 
     22 async function testTimeupdateChanged({name, type}) {
     23  info(`- start testPlay for name=${name} -`);
     24  const element = document.createElement(getMajorMimeType(type));
     25  element.src = name;
     26  element.loop = true;
     27 
     28  await once(element, "canplay");
     29  ok(await element.play().then(() => true, () => false), `start playing ${name}`);
     30 
     31  let gotTimeUpdated = false;
     32  await once(element, "seeking");
     33  element.addEventListener("timeupdate", function() {
     34    gotTimeUpdated = true;
     35  }, {once: true});
     36  await once(element, "seeked");
     37  ok(gotTimeUpdated, "Got timeupdate between seeking and seeked.");
     38 
     39  removeNodeAndSource(element);
     40 }
     41 
     42 (async function startTest() {
     43  for (let test of tests) {
     44    await testTimeupdateChanged(test);
     45  }
     46  SimpleTest.finish();
     47 })();
     48 
     49 </script>
     50 </pre>
     51 </body>
     52 </html>