diff options
Diffstat (limited to 'testing/web-platform/tests/mediacapture-image/takePhoto-with-PhotoSettings.html')
-rw-r--r-- | testing/web-platform/tests/mediacapture-image/takePhoto-with-PhotoSettings.html | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/testing/web-platform/tests/mediacapture-image/takePhoto-with-PhotoSettings.html b/testing/web-platform/tests/mediacapture-image/takePhoto-with-PhotoSettings.html new file mode 100644 index 0000000000..5870861245 --- /dev/null +++ b/testing/web-platform/tests/mediacapture-image/takePhoto-with-PhotoSettings.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/mediacapture-image/resources/imagecapture-helpers.js"></script> +<body> +<canvas id='canvas' width=10 height=10/> +</body> +<script> + +const fillLightModeNames = ['off', 'auto', 'flash']; + +// This test verifies that ImageCapture can call takePhoto with a PhotoSettings +// argument, with a mock Mojo interface implementation. + +image_capture_test(async (t, imageCaptureTest) => { + let canvas = document.getElementById('canvas'); + let context = canvas.getContext('2d'); + context.fillStyle = 'red'; + context.fillRect(0, 0, 10, 10); + let stream = canvas.captureStream(); + + const optionsDict = { imageWidth : 1080, + imageHeight : 100, + redEyeReduction : true, + fillLightMode : 'flash' + }; + + let capturer = new ImageCapture(stream.getVideoTracks()[0]); + let blob = await capturer.takePhoto(optionsDict); + + // JS Blob is almost-opaque, can only check |type| and |size|. + assert_equals(blob.type, 'image/cat'); + assert_equals(blob.size, 2); + + + assert_equals(true, imageCaptureTest.mockImageCapture().options().hasWidth, + 'hasWidth'); + assert_equals(optionsDict.imageWidth, + imageCaptureTest.mockImageCapture().options().width,'width'); + assert_equals(true, imageCaptureTest.mockImageCapture().options().hasHeight, + 'hasHeight'); + assert_equals(optionsDict.imageHeight, + imageCaptureTest.mockImageCapture().options().height, + 'height'); + + // Depending on how mojo boolean packing in integers is arranged, this can + // be a number instead of a boolean, compare directly. + // TODO(mcasas): Revert to assert_equals() when yzshen@ has sorted it out. + assert_true( + optionsDict.redEyeReduction == imageCaptureTest.mockImageCapture(). + options().redEyeReduction, 'redEyeReduction'); + + assert_equals(true, + imageCaptureTest.mockImageCapture().options().hasFillLightMode, + 'hasFillLightMode'); + assert_equals(optionsDict.fillLightMode, + fillLightModeNames[ + imageCaptureTest.mockImageCapture().options().fillLightMode], + 'fillLightMode'); + +}, 'exercises ImageCapture.takePhoto(PhotoSettings dictionary)'); + +</script> |