Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<meta charset="utf-8">
<title>Camera Element Test: common use cases for single video capture</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="../usermedia/resources/pepc-helper.js"></script>
<body>
<script>
promise_test(async (t) => {
const camera = document.createElement('camera');
camera.setConstraints({});
document.body.appendChild(camera);
t.add_cleanup(() => {
if (camera.parentNode) {
document.body.removeChild(camera);
}
});
const track_promise = new Promise((resolve) => {
camera.ontrack = resolve;
});
await test_driver.set_permission({name: 'camera'}, 'granted');
// Wait until element is clickable
await new Promise(resolve => t.step_timeout(resolve, PEPC_CLICK_DELAY));
await test_driver.click(camera);
const e = await track_promise;
const track = e.target.track;
t.add_cleanup(() => {
if (track) {
track.stop();
}
});
assert_true(track instanceof MediaStreamTrack, "track should be an instance of MediaStreamTrack");
assert_equals(track.kind, "video", "camera element should produce a video track");
assert_equals(camera.track, track, "camera.track should match the event target track");
}, "A camera element with video constraints requests camera permission and yields single video capture stream on user click");
</script>
</body>