<!doctype html>
<html>
<head>
<title>Invalid facingMode in getUserMedia</title>
<link rel="help" href="https://w3c.github.io/mediacapture-main/#def-constraint-facingMode">
</head>
<body>
<h1 class="instructions">Description</h1>
<p class="instructions">This test checks that trying to set an empty facingMode
  value in getUserMedia results in an OverconstrainedError.
</p>

<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 () => {
  await setMediaPermission("granted", ["camera"]);
  try {
    await navigator.mediaDevices.getUserMedia({video: {facingMode: {exact: ''}}});
    assert_unreached("The empty string is not a valid facingMode");
  } catch (error) {
    assert_equals(error.name, "OverconstrainedError");
    assert_equals(error.constraint, "facingMode");
  };
}, "Tests that setting an invalid facingMode constraint in getUserMedia fails");
</script>
</body>
</html>
