<!doctype html>
<html>
<head>
<title>getUserMedia({doesnotexist:true}) rejects with TypeError</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>
<h1 class="instructions">Description</h1>
<p class="instructions">This test checks that getUserMedia with an unknown value
in the constraints parameter rejects with a TypeError.</p>

<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
var t = async_test("Tests that getUserMedia is rejected with a TypeError when used with an unknown constraint");
t.step(function () {
  navigator.mediaDevices.getUserMedia({})
    .then(t.step_func(function () {
      assert_unreached("This should never be triggered since the constraints parameter only contains an unrecognized constraint");
    }), t.step_func(function (error) {
      assert_equals(error.name, "TypeError", "TypeError returned as expected");
      assert_equals(error.constraintName, undefined, "constraintName attribute not set as expected");
      t.done();
    }));
  t.done();
});
</script>
</body>
</html>
