<!doctype html>
<html>
<head>
  <title>getUserMedia() triggers error callback when auth is denied</title>
  <link rel="author" title="Dr. A. Gouaillard" href="mailto:agouaillard@gmail.com"/>
  <link rel="help" href="https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia">
</head>
<body>
  <p class="instructions">When prompted, <strong>please deny</strong> access to
    the video stream.</p>
  <h1 class="instructions">Description</h1>
  <p class="instructions">This test checks that the error callback is triggered
    when user denies access to the video stream.</p>
  <div id='log'></div>
<script src=/resources/testharness.js></script>
  <script src=/resources/testharnessreport.js></script>
  <script src=/resources/testdriver.js></script>
<script src=/resources/testdriver-vendor.js></script>
<script src=permission-helper.js></script>
  <script>
promise_test(async () => {
  try {
    await setMediaPermission('denied', ['camera']);
    await navigator.mediaDevices.getUserMedia({video: true})
  } catch (error) {
    assert_throws_dom("NotAllowedError", () => { throw error });
    assert_false('constraintName' in error,
                 "constraintName attribute not set as expected");
    return;
  };
  assert_unreached("The success callback should not be triggered since access is to be denied");
}, "Tests that the error callback is triggered when permission is denied");
  </script>
</body>
</html>
