tor-browser

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

test_DifferentStreamStartTimes.html (1597B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>MSE: Mismatched stream start time playback test</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script type="text/javascript" src="mediasource.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8 </head>
      9 <body>
     10 <pre id="test">
     11 <script class="testbody" type="text/javascript">
     12 
     13 SimpleTest.waitForExplicitFinish();
     14 runWithMSE(async (ms, el) => {
     15  el.controls = true;
     16  el.autoplay = true;
     17  for (let i = 0; i <= 0.5; i += 0.1) {
     18    const offset = i.toFixed(1);
     19 
     20    info("----------------------");
     21    info("Running test for mismatched stream start times with offset of: " + offset);
     22    info("----------------------");
     23 
     24    ms = new MediaSource();
     25    el.removeAttribute("src");
     26    el.src = URL.createObjectURL(ms);
     27 
     28    await once(ms, "sourceopen");
     29    logEvents(el);
     30    const videosb = ms.addSourceBuffer("video/mp4");
     31    ok(true, "Receive a sourceopen event");
     32 
     33    el.addEventListener("error", e => {
     34      ok(false, `should not fire ${e.type} event`);
     35      SimpleTest.finish();
     36    });
     37 
     38    let p = once(el, "loadedmetadata");
     39    await fetchAndLoad(videosb, "bipbop/bipbop_offset_" + offset + "-", ["init"], ".mp4");
     40    await p;
     41    ok(true, "got loadedmetadata event");
     42 
     43    p = Promise.all(["loadeddata", "canplay", "play", "playing"].map(e => once(el, e)));
     44    await fetchAndLoad(videosb, "bipbop/bipbop_offset_" + offset + "-", range(1, 2), ".m4s");
     45    el.play();
     46    await p;
     47  }
     48  ok(true, "got all required event");
     49  SimpleTest.finish();
     50 });
     51 </script>
     52 </pre>
     53 </body>
     54 </html>