<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>WebShare Test: Simple share</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="resources/manual-helper.js"></script>
  </head>
  <body>
    <script>
        setup({explicit_timeout: true});

        const url = 'https://www.example.com/some/path?some_query#some_fragment';
        const data = {title: 'the title', text: 'the message', url, files: []};
        setupManualShareTest(data);
        callWhenButtonClicked(() => navigator.share(data)).then(
              result => {
                // Check that promise resolved with undefined. This is guarded
                // by an if statement because we do not want it to register as a
                // test if it passes (since this is a manual test).
                if (result !== undefined) {
                  assert_equals(result, undefined);
                }
              });
    </script>
  </body>
</html>
