blob: b35fbd3e9821bab05f491fa401217789ed0b52b4 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script src="./resources/getUserMedia-helper.js"></script>
<script>
var mediaStream;
var track;
function limitPrecision(value, precision)
{
if (typeof value === "number" && value % 1 != 0)
return value.toFixed(precision);
return value;
}
function listTrackSettings(track)
{
debug(`${track.kind} track settings:`);
settings = track.getSettings();
for (var property in settings) {
if (settings.hasOwnProperty(property) || settings.__proto__.hasOwnProperty(property)) {
if (property == "deviceId")
value = "&lt;UUID>";
else
value = limitPrecision(settings[property], 3);
debug(` settings.${property} = ${value}`);
}
}
debug("");
}
function checkTrackSettings(t)
{
track = t;
capabilities = track.getCapabilities();
settings = track.getSettings();
for (var property in settings) {
if (settings.hasOwnProperty(property) || settings.__proto__.hasOwnProperty(property)) {
shouldBeTrue(`"${property}" in track.getCapabilities()`);
}
}
}
function gotStream(stream)
{
mediaStream = stream;
listTrackSettings(mediaStream.getVideoTracks()[0]);
listTrackSettings(mediaStream.getAudioTracks()[0]);
debug('According to the spec: "[every setting] MUST be a member of the set defined for that property by getCapabilities()"<br>');
checkTrackSettings(mediaStream.getVideoTracks()[0]);
checkTrackSettings(mediaStream.getAudioTracks()[0]);
finishJSTest();
}
function start()
{
description("Tests MediaStreamTrack.getSettings.");
getUserMedia("allow", {audio:true, video:true}, gotStream);
}
window.jsTestIsAsync = true;
window.successfullyParsed = true;
</script>
</head>
<body onload="start()">
<p id="description"></p>
<div id="console"></div>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>