tor-browser

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

test_debug_data_helpers.html (2560B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <title>Test the special debug APIs give expected data</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 <script class="testbody" type="text/javascript">
      9 add_task(async function testMozRequestDebugInfo() {
     10  let video = document.createElement("video");
     11  video.src = "gizmo.mp4";
     12  document.body.appendChild(video);
     13  await video.play();
     14  let debugData = await SpecialPowers.wrap(video).mozRequestDebugInfo();
     15  // Verify various members are present and as expected.
     16  ok(debugData, "Should get some debug data");
     17  ok(debugData.decoder.hasAudio, "Should have audio");
     18  ok(debugData.decoder.hasVideo, "Should have video");
     19  is(
     20    debugData.decoder.reader.videoWidth,
     21    560,
     22    "Video should have expected width"
     23  );
     24  is(
     25    debugData.decoder.reader.videoHeight,
     26    320,
     27    "Video should have expected height"
     28  );
     29  ok(
     30    debugData.decoder.stateMachine.mediaTime >= 0,
     31    "Media time should be positive"
     32  );
     33  removeNodeAndSource(video);
     34 });
     35 
     36 add_task(async function testMozDebugReaderData() {
     37  let video = document.createElement("video");
     38  let mediaSource = new MediaSource();
     39  video.src = URL.createObjectURL(mediaSource);
     40  await once(mediaSource, "sourceopen");
     41  const sourceBuffer = mediaSource.addSourceBuffer("video/webm");
     42  let fetchResponse = await fetch("bipbop_short_vp8.webm");
     43  sourceBuffer.appendBuffer(await fetchResponse.arrayBuffer());
     44  await once(sourceBuffer, "updateend");
     45  mediaSource.endOfStream();
     46  await once(mediaSource, "sourceended");
     47  document.body.appendChild(video);
     48  await video.play();
     49  let debugData = await SpecialPowers.wrap(mediaSource).mozDebugReaderData();
     50  // Verify various members are present and as expected.
     51  ok(debugData, "Should get some debug data");
     52  is(debugData.reader.videoWidth, 400, "Video should have expected width");
     53  is(debugData.reader.videoHeight, 300, "Video should have expected height");
     54  ok(
     55    debugData.demuxer.audioTrack.numSamples > 0,
     56    "Audio track should have demuxed some samples"
     57  );
     58  ok(
     59    debugData.demuxer.audioTrack.ranges.length,
     60    "Audio track should have some buffered range"
     61  );
     62  ok(
     63    debugData.demuxer.videoTrack.numSamples > 0,
     64    "Video track should have demuxed some samples"
     65  );
     66  ok(
     67    debugData.demuxer.videoTrack.ranges.length,
     68    "Video track should have some buffered range"
     69  );
     70  removeNodeAndSource(video);
     71 });
     72 </script>
     73 </head>
     74 </html>