1
0
Fork 0
firefox/testing/web-platform/tests/mediacapture-image/takePhoto-reject.https.html
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

49 lines
1.7 KiB
HTML

<!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></canvas>
</body>
<script>
let canvas = document.getElementById('canvas');
let context = canvas.getContext('2d');
context.fillStyle = 'red';
context.fillRect(0, 0, 10, 10);
// This test verifies that ImageCapture.takePhoto() rejects if any passed
// option is unsupported or outside its allowed range.
function makePromiseTest(getOption, name) {
image_capture_test(async (t, imageCaptureTest) => {
imageCaptureTest.mockImageCapture().state().redEyeReduction = 0;
let stream = canvas.captureStream();
let capturer = new ImageCapture(stream.getVideoTracks()[0]);
await capturer.getPhotoCapabilities();
const options = getOption(imageCaptureTest.mockImageCapture().state());
try {
await capturer.takePhoto(options);
assert_unreached('expected takePhoto to reject');
} catch (error) {
assert_equals(error.name, 'NotSupportedError');
}
}, name);
}
const optionsGenerators = [
capabilities => ({ redEyeReduction: true }),
capabilities => ({ imageHeight: capabilities.height.max + 1 }),
capabilities => ({ imageHeight: capabilities.height.min - 1 }),
capabilities => ({ imageWidth: capabilities.width.max + 1 }),
capabilities => ({ imageWidth: capabilities.width.min - 1 }),
capabilities => ({ fillLightMode: 'off' }),
];
optionsGenerators.forEach((optionsGenerator, key) => {
makePromiseTest(
optionsGenerator,
`ImageCapture.takePhoto(options) rejects with bad options, #${key}`);
});
</script>