<!DOCTYPE html>
<meta charset=utf-8>
<title>Clipboard IDL test</title>
<link rel="help" href="https://w3c.github.io/clipboard-apis/">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/resources/WebIDLParser.js></script>
<script src=/resources/idlharness.js></script>
<script>
'use strict';

function doTest(idl, dom) {
  var idl_array = new IdlArray();
  idl_array.add_untested_idls('interface Navigator {};');
  idl_array.add_untested_idls('interface EventTarget {};');
  idl_array.add_untested_idls('dictionary PermissionDescriptor {};');
  idl_array.add_untested_idls(dom, { only: ['Event', 'EventInit'] });
  idl_array.add_idls(idl);
  idl_array.add_objects({
    Navigator: ['navigator'],
    Clipboard: ['navigator.clipboard'],
    ClipboardEvent: ['new ClipboardEvent("x")'],
  });
  idl_array.test();
};

function fetchText(url) {
  return fetch(url).then((response) => response.text());
}

promise_test(() => {
  return Promise.all(
    [
      "/interfaces/clipboard-apis.idl",
      "/interfaces/dom.idl",
    ].map(fetchText))
    .then(([idl, dom]) => doTest(idl, dom));
}, "Test driver");
</script>
