| <!DOCTYPE html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> |
| <script src="file:///gen/media/capture/mojo/image_capture.mojom.js"></script> |
| <script src="resources/mock-imagecapture.js"></script> |
| <body> |
| <canvas id='canvas' width=10 height=10/> |
| </body> |
| <script> |
| |
| const fillLightModeNames = ['off', 'auto', 'flash']; |
| |
| // This test verifies that ImageCapture can call setOptions()s, with a mock Mojo |
| // interface implementation. |
| promise_test(async function() { |
| 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]); |
| await capturer.setOptions(optionsDict); |
| |
| assert_equals(true, mockImageCapture.options().hasWidth, 'has_width'); |
| assert_equals(optionsDict.imageWidth, mockImageCapture.options().width, |
| 'width'); |
| assert_equals(true, mockImageCapture.options().hasHeight, 'has_height'); |
| assert_equals(optionsDict.imageHeight, 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 == mockImageCapture.options().redEyeReduction, |
| 'redEyeReduction'); |
| |
| assert_equals(true, mockImageCapture.options().hasFillLightMode, |
| 'hasFillLightMode'); |
| assert_equals(optionsDict.fillLightMode, |
| fillLightModeNames[mockImageCapture.options().fillLightMode], |
| 'fillLightMode'); |
| |
| }, 'exercises ImageCapture.setOptions(options)'); |
| |
| </script> |