<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>WebShare Test: Share no known fields</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 => {
        await test_driver.bless("web share", () => {
          return promise_rejects_js(t, TypeError, navigator.share());
        });
      }, "share with no arguments (same as empty dictionary)");

      promise_test(async t => {
        await test_driver.bless("web share", () => {
          return promise_rejects_js(t, TypeError, navigator.share({}));
        });
      }, "share with an empty dictionary");

      promise_test(async t => {
        await test_driver.bless("web share", () => {
          return promise_rejects_js(t, TypeError, navigator.share(undefined));
        });
      }, "share with a undefined argument (same as empty dictionary)");

      promise_test(async t => {
        await test_driver.bless("web share", () => {
          return promise_rejects_js(t, TypeError, navigator.share(null));
        });
      }, "share with a null argument (same as empty dictionary)");

      promise_test(async t => {
        await test_driver.bless("web share", () => {
          return promise_rejects_js(
            t,
            TypeError,
            navigator.share({ unused: "unexpected field" })
          );
        });
      }, "share with a dictionary containing only surplus fields");

      promise_test(async t => {
        await test_driver.bless("web share");
        await promise_rejects_js(t, TypeError, navigator.share({ files: [] }));
      }, "share with an empty files member")
    </script>
  </body>
</html>
