mirror of
https://github.com/servo/servo.git
synced 2025-06-30 12:03:38 +01:00
57 lines
2.2 KiB
HTML
57 lines
2.2 KiB
HTML
<!doctype html>
|
|
<title>MediaStreamTrack applyConstraints</title>
|
|
<p class="instructions">When prompted, accept to share your video stream.</p>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script>
|
|
'use strict'
|
|
|
|
// https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack-applyconstraints
|
|
|
|
promise_test(t => {
|
|
return navigator.mediaDevices.getUserMedia({ video: true })
|
|
.then(t.step_func(stream => {
|
|
return stream.getVideoTracks()[0].applyConstraints(
|
|
{ groupId: { exact: "INVALID" } }).then(
|
|
t.unreached_func('Accepted invalid groupID'),
|
|
t.step_func(e => {
|
|
assert_equals(e.name, 'OverconstrainedError');
|
|
assert_equals(e.constraint, 'groupId');
|
|
}));
|
|
}));
|
|
}, 'applyConstraints rejects invalid groupID');
|
|
|
|
promise_test(t => {
|
|
return navigator.mediaDevices.getUserMedia({ video: true })
|
|
.then(t.step_func(stream => {
|
|
var track = stream.getVideoTracks()[0];
|
|
var groupId = track.getSettings().groupId;
|
|
return track.applyConstraints({ groupId: "INVALID" }).then(
|
|
t.step_func(() => {
|
|
assert_equals(track.getSettings().groupId, groupId);
|
|
}));
|
|
}));
|
|
}, 'applyConstraints accepts invalid ideal groupID, does not change setting');
|
|
|
|
promise_test(t => {
|
|
return navigator.mediaDevices.getUserMedia({ video: true })
|
|
.then(t.step_func(stream => {
|
|
var track = stream.getVideoTracks()[0];
|
|
var groupId = track.getSettings().groupId;
|
|
return navigator.mediaDevices.enumerateDevices().then(devices => {
|
|
var anotherDevice = devices.find(device => {
|
|
return device.kind == "videoinput" && device.groupId != groupId;
|
|
});
|
|
if (anotherDevice !== undefined) {
|
|
return track.applyConstraints(
|
|
{ groupId: { exact: anotherDevice.groupId } }).then(
|
|
t.unreached_func(),
|
|
t.step_func(e => {
|
|
assert_equals(e.name, 'OverconstrainedError');
|
|
assert_equals(e.constraint, 'groupId');
|
|
}));
|
|
}
|
|
});
|
|
}));
|
|
}, 'applyConstraints rejects attempt to switch device using groupId');
|
|
</script>
|