<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>WebShare Test: consume user activation</title>
    <link rel="help" href="https://w3c.github.io/web-share/#share-method">
    <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>
  </head>
  <body>
    <script>
      promise_test(async t => {
        // Not activated by user gesture, so not allowed!
        await promise_rejects_dom(t, "NotAllowedError", navigator.share());

        await test_driver.bless("web share");

        // We have a gesture, but the URL is invalid - so TypeError!
        await promise_rejects_js(
          t,
          TypeError,
          navigator.share({ url: "http://example.com:65536" })
        );

        // The activation has been consumed, so calling share() again would require
        // a new gesture.
        await promise_rejects_dom(t, "NotAllowedError", navigator.share());
      }, "Calling share consumes user activation");
    </script>
  </body>
</html>
