<!doctype html>
<meta charset=utf-8>
<title>HTML IDL tests</title>
<meta name=timeout content=long>
<meta name="variant" content="?include=(Document|Window)">
<meta name="variant" content="?include=HTML.*">
<meta name="variant" content="?exclude=(Document|Window|HTML.*)">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/common/subset-tests-by-key.js></script>
<script src=/common/get-host-info.sub.js></script>
<script src=/resources/WebIDLParser.js></script>
<script src=/resources/idlharness.js></script>

<h1>HTML IDL tests</h1>
<div id=log></div>

<script>
"use strict";
var errorVideo; // used to get a MediaError object
var iframe; // used to get a Document object (can't use `document` because some test clears the page)
setup(function() {
  errorVideo = document.createElement('video');
  errorVideo.src = 'data:,';
  errorVideo.preload = 'auto';
  iframe = document.createElement('iframe');
  iframe.hidden = true;
  document.body.appendChild(iframe);
});

function createInput(type) {
  var input = document.createElement('input');
  input.type = type;
  return input;
}

const waitForLoad = new Promise(resolve => { addEventListener('load', resolve); })

idl_test(
  ['html'],
  ['SVG', 'cssom', 'touch-events', 'uievents', 'dom', 'xhr', 'FileAPI'],
  async idlArray => {
    self.documentWithHandlers = new Document();
    const handler = function(e) {};
    for (const callback of idlArray.members['GlobalEventHandlers'].members) {
      if (callback.idlType && callback.idlType.idlType === 'EventHandler') {
        documentWithHandlers[callback.name] = handler;
      }
    }

    idlArray.add_objects({
      NodeList: ['document.getElementsByName("name")'],
      HTMLAllCollection: ['document.all'],
      HTMLFormControlsCollection: ['document.createElement("form").elements'],
      RadioNodeList: [],
      HTMLOptionsCollection: ['document.createElement("select").options'],
      DOMStringMap: ['document.head.dataset'],
      Transferable: [],
      Document: ['iframe.contentDocument', 'new Document()', 'documentWithHandlers'],
      XMLDocument: ['document.implementation.createDocument(null, "", null)'],
      HTMLElement: ['document.createElement("noscript")'], // more tests in html/semantics/interfaces.js
      HTMLUnknownElement: ['document.createElement("bgsound")'], // more tests in html/semantics/interfaces.js
      HTMLHtmlElement: ['document.createElement("html")'],
      HTMLHeadElement: ['document.createElement("head")'],
      HTMLTitleElement: ['document.createElement("title")'],
      HTMLBaseElement: ['document.createElement("base")'],
      HTMLLinkElement: ['document.createElement("link")'],
      HTMLMetaElement: ['document.createElement("meta")'],
      HTMLStyleElement: ['document.createElement("style")'],
      HTMLScriptElement: ['document.createElement("script")'],
      HTMLBodyElement: ['document.createElement("body")'],
      HTMLHeadingElement: ['document.createElement("h1")'],
      HTMLParagraphElement: ['document.createElement("p")'],
      HTMLHRElement: ['document.createElement("hr")'],
      HTMLPreElement: [
        'document.createElement("pre")',
        'document.createElement("listing")',
        'document.createElement("xmp")',
      ],
      HTMLQuoteElement: [
        'document.createElement("blockquote")',
        'document.createElement("q")',
      ],
      HTMLOlistElement: ['document.createElement("ol")'],
      HTMLUlistElement: ['document.createElement("ul")'],
      HTMLLIElement: ['document.createElement("li")'],
      HTMLDlistElement: ['document.createElement("dl")'],
      HTMLDivElement: ['document.createElement("div")'],
      HTMLAnchorElement: ['document.createElement("a")'],
      HTMLDataElement: ['document.createElement("data")'],
      HTMLTimeElement: ['document.createElement("time")'],
      HTMLSpanElement: ['document.createElement("span")'],
      HTMLBRElement: ['document.createElement("br")'],
      HTMLModElement: [
        'document.createElement("ins")',
        'document.createElement("del")',
      ],
      HTMLPictureElement: ['document.createElement("picture")'],
      HTMLImageElement: ['document.createElement("img")', 'new Image()'],
      HTMLIframeElement: ['document.createElement("iframe")'],
      HTMLEmbedElement: ['document.createElement("embed")'],
      HTMLObjectElement: ['document.createElement("object")'],
      HTMLParamElement: ['document.createElement("param")'],
      HTMLVideoElement: ['document.createElement("video")'],
      HTMLAudioElement: ['document.createElement("audio")', 'new Audio()'],
      HTMLSourceElement: ['document.createElement("source")'],
      HTMLTrackElement: ['document.createElement("track")'],
      HTMLMediaElement: [],
      MediaError: ['errorVideo.error'],
      AudioTrackList: [],
      AudioTrack: [],
      VideoTrackList: [],
      VideoTrack: [],
      TextTrackList: ['document.createElement("video").textTracks'],
      TextTrack: ['document.createElement("track").track'],
      TextTrackCueList: ['document.createElement("video").addTextTrack("subtitles").cues'],
      TextTrackCue: [],
      DataCue: [],
      TimeRanges: ['document.createElement("video").buffered'],
      TrackEvent: ['new TrackEvent("addtrack", {track:document.createElement("track").track})'],
      HTMLTemplateElement: ['document.createElement("template")'],
      HTMLSlotElement: ['document.createElement("slot")'],
      HTMLCanvasElement: ['document.createElement("canvas")'],
      CanvasRenderingContext2D: ['document.createElement("canvas").getContext("2d")'],
      CanvasGradient: [],
      CanvasPattern: [],
      TextMetrics: [],
      ImageData: ['new ImageData(10, 10)'],
      HTMLMapElement: ['document.createElement("map")'],
      HTMLAreaElement: ['document.createElement("area")'],
      HTMLTableElement: ['document.createElement("table")'],
      HTMLTableCaptionElement: ['document.createElement("caption")'],
      HTMLTableColElement: [
        'document.createElement("colgroup")',
        'document.createElement("col")',
      ],
      HTMLTableSectionElement: [
        'document.createElement("tbody")',
        'document.createElement("thead")',
        'document.createElement("tfoot")',
      ],
      HTMLTableRowElement: ['document.createElement("tr")'],
      HTMLTableCellElement: [
        'document.createElement("td")',
        'document.createElement("th")',
      ],
      HTMLFormElement: ['document.createElement("form")'],
      HTMLFieldsetElement: ['document.createElement("fieldset")'],
      HTMLLegendElement: ['document.createElement("legend")'],
      HTMLLabelElement: ['document.createElement("label")'],
      HTMLInputElement: [
        'document.createElement("input")',
        'createInput("text")',
        'createInput("hidden")',
        'createInput("search")',
        'createInput("tel")',
        'createInput("url")',
        'createInput("email")',
        'createInput("password")',
        'createInput("date")',
        'createInput("month")',
        'createInput("week")',
        'createInput("time")',
        'createInput("datetime-local")',
        'createInput("number")',
        'createInput("range")',
        'createInput("color")',
        'createInput("checkbox")',
        'createInput("radio")',
        'createInput("file")',
        'createInput("submit")',
        'createInput("image")',
        'createInput("reset")',
        'createInput("button")'
      ],
      HTMLButtonElement: ['document.createElement("button")'],
      HTMLSelectElement: ['document.createElement("select")'],
      HTMLDataListElement: ['document.createElement("datalist")'],
      HTMLOptGroupElement: ['document.createElement("optgroup")'],
      HTMLOptionElement: ['document.createElement("option")', 'new Option()'],
      HTMLTextAreaElement: ['document.createElement("textarea")'],
      HTMLOutputElement: ['document.createElement("output")'],
      HTMLProgressElement: ['document.createElement("progress")'],
      HTMLMeterElement: ['document.createElement("meter")'],
      ValidityState: ['document.createElement("input").validity'],
      FormDataEvent: ['new FormDataEvent("formdata", { formData: new FormData() })'],
      HTMLDetailsElement: ['document.createElement("details")'],
      HTMLMenuElement: ['document.createElement("menu")'],
      Window: ['window'],
      BarProp: [],
      History: ['window.history'],
      Location: ['window.location'],
      PopStateEvent: ['new PopStateEvent("popstate", { data: {} })'],
      HashChangeEvent: [],
      PageTransitionEvent: [],
      BeforeUnloadEvent: [],
      ApplicationCache: ['window.applicationCache'],
      WindowModal: [],
      Navigator: ['window.navigator'],
      External: ['window.external'],
      DataTransfer: [],
      DataTransferItemList: [],
      DataTransferItem: [],
      DragEvent: [],
      NavigatorUserMediaError: [],
      MediaStream: [],
      MediaStreamTrack: [],
      MediaStreamRecorder: [],
      PeerConnection: [],
      MediaStreamEvent: [],
      ErrorEvent: [],
      // https://web-platform-tests.org/writing-tests/server-features.html?tests-involving-multiple-origins
      WebSocket: ['new WebSocket("wss://nonexistent.' + get_host_info().ORIGINAL_HOST + '")'],
      CloseEvent: ['new CloseEvent("close")'],
      AbstractWorker: [],
      Worker: [],
      SharedWorker: [],
      MessageEvent: ['new MessageEvent("message", { data: 5 })'],
      MessageChannel: [],
      MessagePort: [],
      HTMLMarqueeElement: ['document.createElement("marquee")'],
      HTMLFrameSetElement: ['document.createElement("frameset")'],
      HTMLFrameElement: ['document.createElement("frame")'],
      HTMLDirectoryElement: ['document.createElement("dir")'],
      HTMLFontElement: ['document.createElement("font")'],
      DOMStringList: ['location.ancestorOrigins'],
    });
    idlArray.prevent_multiple_testing('HTMLElement');
    await waitForLoad;
  }
);

</script>
