blob: 0a5b824881509baee240f385a9eeaa380a579948 [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<title>Media Capture Depth Dictionary Test</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://w3c.github.io/mediacapture-depth/#extensions">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="dictionary-helper.js"></script>
<meta name="flags" content="interact">
<h2>Preconditions</h2>
<ol>
<li>
Use a test device with depth camera(embedded or external).
</li>
<li>
When prompted, accept to share your depth/color(RGB) stream.
</li>
</ol>
<div id="log"></div>
<script>
let advanced_constraints_depth = [{
videoKind: "depth",
}];
let advanced_constraints_color = [{
videoKind: "color",
}];
function validateMediaTrackCapabilities(capabilities, type) {
assert_string_field(capabilities, 'videoKind');
}
function validateMediaTrackConstraintSet(constraints, type) {
assert_constrain_string_field(constraints, 'videoKind');
}
function validateMediaTrackSettings(settings, type) {
assert_string_field(settings, 'videoKind');
assert_enum_field(settings, 'videoKind', ['color', 'depth'])
}
function validateMediaTrackSupportedConstraints(supports) {
assert_boolean_field(supports, 'videoKind', true);
}
function runDictionaryTests(type, constraints) {
promise_test(t => {
return navigator.mediaDevices.getUserMedia({video: {advanced: constraints}})
.then(stream => {
let capabilities = stream.getTracks()[0].getCapabilities();
validateMediaTrackCapabilities(capabilities, type);
});
}, `MediaTrackCapabilities dictionary of ${type} include attributes are correct`);
promise_test(t => {
return navigator.mediaDevices.getUserMedia({video: {advanced: constraints}})
.then(stream => {
let constraints = stream.getTracks()[0].getConstraints()["advanced"][0];
validateMediaTrackConstraintSet(constraints);
});
}, `MediaTrackConstraintSet dictionary of ${type} include attributes are correct`);
promise_test(t => {
return navigator.mediaDevices.getUserMedia({video: {advanced: constraints}})
.then(stream => {
let settings = stream.getTracks()[0].getSettings();
validateMediaTrackSettings(settings, type);
});
}, `MediaTrackSettings dictionary of ${type} include attributes are correct`);
}
test(() => {
let supports = navigator.mediaDevices.getSupportedConstraints();
validateMediaTrackSupportedConstraints(supports);
}, "MediaTrackSupportedConstraints dictionary include attributes are correct");
runDictionaryTests("depth", advanced_constraints_depth);
runDictionaryTests("color", advanced_constraints_color);
</script>