tor-browser

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

getPhotoSettings.https.html (2302B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="/mediacapture-image/resources/imagecapture-helpers.js"></script>
      5 <body>
      6 <canvas id='canvas' width=10 height=10></canvas>
      7 </body>
      8 <script>
      9 
     10 const fillLightModeNames = ['off', 'auto', 'flash'];
     11 
     12 // This test verifies that ImageCapture can call getPhotoSettings(), with a
     13 // mock Mojo interface implementation.
     14 image_capture_test(async (t, imageCaptureTest) => {
     15  let canvas = document.getElementById('canvas');
     16  let context = canvas.getContext('2d');
     17  context.fillStyle = 'red';
     18  context.fillRect(0, 0, 10, 10);
     19  let stream = canvas.captureStream();
     20 
     21  let mockState = imageCaptureTest.mockImageCapture().state();
     22  let capturer = new ImageCapture(stream.getVideoTracks()[0]);
     23  let settings = await capturer.getPhotoSettings();
     24  assert_equals(settings.imageWidth, mockState.width.current, 'width');
     25  assert_equals(settings.imageHeight, mockState.height.current, 'height');
     26  // TODO(mcasas): check the remaining two entries https://crbug.com/732521.
     27 
     28 }, 'exercises ImageCapture.getPhotoSettings()');
     29 
     30 promise_test(t => {
     31  let canvas = document.getElementById('canvas');
     32  let context = canvas.getContext('2d');
     33  context.fillStyle = 'red';
     34  context.fillRect(0, 0, 10, 10);
     35  let stream = canvas.captureStream();
     36  let videoTrack = stream.getVideoTracks()[0];
     37  videoTrack.stop();
     38 
     39  let capturer = new ImageCapture(videoTrack);
     40  assert_equals(videoTrack.readyState, 'ended');
     41 
     42  return promise_rejects_dom(t, 'InvalidStateError', capturer.getPhotoSettings())
     43 
     44 }, 'getPhotoSettings() of an ended Track should throw "InvalidStateError"');
     45 
     46 async_test(t => {
     47  let canvas = document.getElementById('canvas');
     48  let context = canvas.getContext('2d');
     49  context.fillStyle = 'red';
     50  context.fillRect(0, 0, 10, 10);
     51  let stream = canvas.captureStream();
     52  let videoTrack = stream.getVideoTracks()[0];
     53 
     54  let capturer = new ImageCapture(videoTrack);
     55  capturer.getPhotoSettings()
     56  .then(t.step_func_done(() => assert_unreached('should throw "OperationError"')))
     57  .catch(t.step_func_done(e => assert_equals(e.name, 'OperationError')))
     58  videoTrack.stop();
     59 }, 'throw "OperationError" when the MediaStreamTrack is stopped while getting photo settings');
     60 
     61 </script>