<!DOCTYPE HTML>
<html>
<head>
  <script type="application/javascript" src="mediaStreamPlayback.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript">
  createHTML({
    title: "getUserMedia with Cubeb Disabled Test",
    bug: "1443525"
  });
  /**
   * Run a test to verify we fail gracefully if we cannot fetch a cubeb context
   * during a gUM call.
   */
  runTest(async function () {
    info("Get user media with cubeb disabled starting");
    // Push prefs to ensure no cubeb context and no fake streams.
    await pushPrefs(["media.cubeb.force_null_context", true],
                    ["media.navigator.permission.device", false],
                    ["media.navigator.streams.fake", false]);

    // Request audio only, to avoid cams
    let constraints = {audio: true, video: false};
    let stream;
    try {
      stream = await getUserMedia(constraints);
    } catch (e) {
      // We've got no audio backend, so we expect gUM to fail.
      ok(e.name == "NotFoundError", "Expected NotFoundError due to no audio tracks!");
      return;
    }
    // If we're not on android we should not have gotten a stream without a cubeb context!
    ok(false, "getUserMedia not expected to succeed when cubeb is disabled, but it did!");
  });


</script>
</pre>
</body>
</html>
