<!doctype html>
<html>
<head>
<title>Optional constraint recognized as optional in getUserMedia</title>
<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-NavigatorUserMedia-getUserMedia-void-MediaStreamConstraints-constraints-NavigatorUserMediaSuccessCallback-successCallback-NavigatorUserMediaErrorCallback-errorCallback">
</head>
<body>
<p class="instructions">When prompted, accept to share your video stream.</p>
<h1 class="instructions">Description</h1>
<p class="instructions">This test checks that setting an optional constraint in
getUserMedia is handled as optional</p>

<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
var t = async_test("Tests that setting an optional constraint in getUserMedia is handled as optional");
t.step(function() {
  navigator.mediaDevices.getUserMedia({video: {advanced: [{width: {min:1024, max: 800}}]}})
    .then(t.step_func(function (stream) {
      assert_equals(stream.getVideoTracks().length, 1, "the media stream has exactly one video track");
      t.done();
    }), t.step_func(function(error) {
      assert_unreached("an optional constraint can't stop us from obtaining a video stream");
    }));
});
</script>
</body>
</html>
