<!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">
<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
</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 src="/common/vendor-prefix.js" data-prefixed-objects='[{"ancestors":["navigator"], "name":"getUserMedia"}]'></script>
<script>
var t = async_test("Tests that setting an optional constraint in getUserMedia is handled as optional", {timeout:10000});
t.step(function() {
  navigator.getUserMedia({video: {optional: [{width: {min:1024}}, {width: {max: 800}}]}},
      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>
