Add various base html elements to parser and test. Fixes #703.

This commit is contained in:
Glenn Watson 2014-05-16 08:08:44 +10:00
parent 3ccc81b9dc
commit f5c2f7e835
2 changed files with 86 additions and 0 deletions

View file

@ -162,29 +162,48 @@ fn js_script_listener(to_parent: Sender<HtmlDiscoveryMessage>,
pub fn build_element_from_tag(tag: DOMString, document: &JSRef<Document>) -> Temporary<Element> { pub fn build_element_from_tag(tag: DOMString, document: &JSRef<Document>) -> Temporary<Element> {
// TODO (Issue #85): use atoms // TODO (Issue #85): use atoms
handle_element!(document, tag, "a", HTMLAnchorElement); handle_element!(document, tag, "a", HTMLAnchorElement);
handle_element!(document, tag, "abbr", HTMLElement);
handle_element!(document, tag, "acronym", HTMLElement);
handle_element!(document, tag, "address", HTMLElement);
handle_element!(document, tag, "applet", HTMLAppletElement); handle_element!(document, tag, "applet", HTMLAppletElement);
handle_element!(document, tag, "area", HTMLAreaElement); handle_element!(document, tag, "area", HTMLAreaElement);
handle_element!(document, tag, "article", HTMLElement);
handle_element!(document, tag, "aside", HTMLElement); handle_element!(document, tag, "aside", HTMLElement);
handle_element!(document, tag, "audio", HTMLAudioElement); handle_element!(document, tag, "audio", HTMLAudioElement);
handle_element!(document, tag, "b", HTMLElement); handle_element!(document, tag, "b", HTMLElement);
handle_element!(document, tag, "base", HTMLBaseElement); handle_element!(document, tag, "base", HTMLBaseElement);
handle_element!(document, tag, "bdi", HTMLElement);
handle_element!(document, tag, "bdo", HTMLElement);
handle_element!(document, tag, "bgsound", HTMLElement);
handle_element!(document, tag, "big", HTMLElement);
handle_element!(document, tag, "blockquote",HTMLElement);
handle_element!(document, tag, "body", HTMLBodyElement); handle_element!(document, tag, "body", HTMLBodyElement);
handle_element!(document, tag, "br", HTMLBRElement); handle_element!(document, tag, "br", HTMLBRElement);
handle_element!(document, tag, "button", HTMLButtonElement); handle_element!(document, tag, "button", HTMLButtonElement);
handle_element!(document, tag, "canvas", HTMLCanvasElement); handle_element!(document, tag, "canvas", HTMLCanvasElement);
handle_element!(document, tag, "caption", HTMLTableCaptionElement); handle_element!(document, tag, "caption", HTMLTableCaptionElement);
handle_element!(document, tag, "center", HTMLElement);
handle_element!(document, tag, "cite", HTMLElement);
handle_element!(document, tag, "code", HTMLElement);
handle_element!(document, tag, "col", HTMLTableColElement); handle_element!(document, tag, "col", HTMLTableColElement);
handle_element!(document, tag, "colgroup", HTMLTableColElement); handle_element!(document, tag, "colgroup", HTMLTableColElement);
handle_element!(document, tag, "data", HTMLDataElement); handle_element!(document, tag, "data", HTMLDataElement);
handle_element!(document, tag, "datalist", HTMLDataListElement); handle_element!(document, tag, "datalist", HTMLDataListElement);
handle_element!(document, tag, "dd", HTMLElement);
handle_element!(document, tag, "del", HTMLModElement); handle_element!(document, tag, "del", HTMLModElement);
handle_element!(document, tag, "details", HTMLElement);
handle_element!(document, tag, "dfn", HTMLElement);
handle_element!(document, tag, "dir", HTMLDirectoryElement); handle_element!(document, tag, "dir", HTMLDirectoryElement);
handle_element!(document, tag, "div", HTMLDivElement); handle_element!(document, tag, "div", HTMLDivElement);
handle_element!(document, tag, "dl", HTMLDListElement); handle_element!(document, tag, "dl", HTMLDListElement);
handle_element!(document, tag, "dt", HTMLElement);
handle_element!(document, tag, "em", HTMLElement); handle_element!(document, tag, "em", HTMLElement);
handle_element!(document, tag, "embed", HTMLEmbedElement); handle_element!(document, tag, "embed", HTMLEmbedElement);
handle_element!(document, tag, "fieldset", HTMLFieldSetElement); handle_element!(document, tag, "fieldset", HTMLFieldSetElement);
handle_element!(document, tag, "figcaption",HTMLElement);
handle_element!(document, tag, "figure", HTMLElement);
handle_element!(document, tag, "font", HTMLFontElement); handle_element!(document, tag, "font", HTMLFontElement);
handle_element!(document, tag, "footer", HTMLElement);
handle_element!(document, tag, "form", HTMLFormElement); handle_element!(document, tag, "form", HTMLFormElement);
handle_element!(document, tag, "frame", HTMLFrameElement); handle_element!(document, tag, "frame", HTMLFrameElement);
handle_element!(document, tag, "frameset", HTMLFrameSetElement); handle_element!(document, tag, "frameset", HTMLFrameSetElement);
@ -195,6 +214,8 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef<Document>) -> Tem
handle_element!(document, tag, "h5", HTMLHeadingElement, Heading5); handle_element!(document, tag, "h5", HTMLHeadingElement, Heading5);
handle_element!(document, tag, "h6", HTMLHeadingElement, Heading6); handle_element!(document, tag, "h6", HTMLHeadingElement, Heading6);
handle_element!(document, tag, "head", HTMLHeadElement); handle_element!(document, tag, "head", HTMLHeadElement);
handle_element!(document, tag, "header", HTMLElement);
handle_element!(document, tag, "hgroup", HTMLElement);
handle_element!(document, tag, "hr", HTMLHRElement); handle_element!(document, tag, "hr", HTMLHRElement);
handle_element!(document, tag, "html", HTMLHtmlElement); handle_element!(document, tag, "html", HTMLHtmlElement);
handle_element!(document, tag, "i", HTMLElement); handle_element!(document, tag, "i", HTMLElement);
@ -202,14 +223,22 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef<Document>) -> Tem
handle_element!(document, tag, "img", HTMLImageElement); handle_element!(document, tag, "img", HTMLImageElement);
handle_element!(document, tag, "input", HTMLInputElement); handle_element!(document, tag, "input", HTMLInputElement);
handle_element!(document, tag, "ins", HTMLModElement); handle_element!(document, tag, "ins", HTMLModElement);
handle_element!(document, tag, "isindex", HTMLElement);
handle_element!(document, tag, "kbd", HTMLElement);
handle_element!(document, tag, "label", HTMLLabelElement); handle_element!(document, tag, "label", HTMLLabelElement);
handle_element!(document, tag, "legend", HTMLLegendElement); handle_element!(document, tag, "legend", HTMLLegendElement);
handle_element!(document, tag, "li", HTMLLIElement); handle_element!(document, tag, "li", HTMLLIElement);
handle_element!(document, tag, "link", HTMLLinkElement); handle_element!(document, tag, "link", HTMLLinkElement);
handle_element!(document, tag, "main", HTMLMainElement); handle_element!(document, tag, "main", HTMLMainElement);
handle_element!(document, tag, "map", HTMLMapElement); handle_element!(document, tag, "map", HTMLMapElement);
handle_element!(document, tag, "mark", HTMLElement);
handle_element!(document, tag, "marquee", HTMLElement);
handle_element!(document, tag, "meta", HTMLMetaElement); handle_element!(document, tag, "meta", HTMLMetaElement);
handle_element!(document, tag, "meter", HTMLMeterElement); handle_element!(document, tag, "meter", HTMLMeterElement);
handle_element!(document, tag, "nav", HTMLElement);
handle_element!(document, tag, "nobr", HTMLElement);
handle_element!(document, tag, "noframes", HTMLElement);
handle_element!(document, tag, "noscript", HTMLElement);
handle_element!(document, tag, "object", HTMLObjectElement); handle_element!(document, tag, "object", HTMLObjectElement);
handle_element!(document, tag, "ol", HTMLOListElement); handle_element!(document, tag, "ol", HTMLOListElement);
handle_element!(document, tag, "optgroup", HTMLOptGroupElement); handle_element!(document, tag, "optgroup", HTMLOptGroupElement);
@ -220,14 +249,24 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef<Document>) -> Tem
handle_element!(document, tag, "pre", HTMLPreElement); handle_element!(document, tag, "pre", HTMLPreElement);
handle_element!(document, tag, "progress", HTMLProgressElement); handle_element!(document, tag, "progress", HTMLProgressElement);
handle_element!(document, tag, "q", HTMLQuoteElement); handle_element!(document, tag, "q", HTMLQuoteElement);
handle_element!(document, tag, "rp", HTMLElement);
handle_element!(document, tag, "rt", HTMLElement);
handle_element!(document, tag, "ruby", HTMLElement);
handle_element!(document, tag, "s", HTMLElement);
handle_element!(document, tag, "samp", HTMLElement);
handle_element!(document, tag, "script", HTMLScriptElement); handle_element!(document, tag, "script", HTMLScriptElement);
handle_element!(document, tag, "section", HTMLElement); handle_element!(document, tag, "section", HTMLElement);
handle_element!(document, tag, "select", HTMLSelectElement); handle_element!(document, tag, "select", HTMLSelectElement);
handle_element!(document, tag, "small", HTMLElement); handle_element!(document, tag, "small", HTMLElement);
handle_element!(document, tag, "source", HTMLSourceElement); handle_element!(document, tag, "source", HTMLSourceElement);
handle_element!(document, tag, "spacer", HTMLElement);
handle_element!(document, tag, "span", HTMLSpanElement); handle_element!(document, tag, "span", HTMLSpanElement);
handle_element!(document, tag, "strike", HTMLElement);
handle_element!(document, tag, "strong", HTMLElement); handle_element!(document, tag, "strong", HTMLElement);
handle_element!(document, tag, "style", HTMLStyleElement); handle_element!(document, tag, "style", HTMLStyleElement);
handle_element!(document, tag, "sub", HTMLElement);
handle_element!(document, tag, "summary", HTMLElement);
handle_element!(document, tag, "sup", HTMLElement);
handle_element!(document, tag, "table", HTMLTableElement); handle_element!(document, tag, "table", HTMLTableElement);
handle_element!(document, tag, "tbody", HTMLTableSectionElement); handle_element!(document, tag, "tbody", HTMLTableSectionElement);
handle_element!(document, tag, "td", HTMLTableDataCellElement); handle_element!(document, tag, "td", HTMLTableDataCellElement);
@ -237,9 +276,13 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef<Document>) -> Tem
handle_element!(document, tag, "time", HTMLTimeElement); handle_element!(document, tag, "time", HTMLTimeElement);
handle_element!(document, tag, "title", HTMLTitleElement); handle_element!(document, tag, "title", HTMLTitleElement);
handle_element!(document, tag, "tr", HTMLTableRowElement); handle_element!(document, tag, "tr", HTMLTableRowElement);
handle_element!(document, tag, "tt", HTMLElement);
handle_element!(document, tag, "track", HTMLTrackElement); handle_element!(document, tag, "track", HTMLTrackElement);
handle_element!(document, tag, "u", HTMLElement);
handle_element!(document, tag, "ul", HTMLUListElement); handle_element!(document, tag, "ul", HTMLUListElement);
handle_element!(document, tag, "var", HTMLElement);
handle_element!(document, tag, "video", HTMLVideoElement); handle_element!(document, tag, "video", HTMLVideoElement);
handle_element!(document, tag, "wbr", HTMLElement);
return ElementCast::from_temporary(HTMLUnknownElement::new(tag, document)); return ElementCast::from_temporary(HTMLUnknownElement::new(tag, document));
} }

View file

@ -18,28 +18,47 @@
// test1: createElement // test1: createElement
{ {
create_element_and_check("a", HTMLAnchorElement); create_element_and_check("a", HTMLAnchorElement);
create_element_and_check("abbr", HTMLElement);
create_element_and_check("acronym", HTMLElement);
create_element_and_check("address", HTMLElement);
create_element_and_check("applet", HTMLAppletElement); create_element_and_check("applet", HTMLAppletElement);
create_element_and_check("area", HTMLAreaElement); create_element_and_check("area", HTMLAreaElement);
create_element_and_check("article", HTMLElement);
create_element_and_check("aside", HTMLElement); create_element_and_check("aside", HTMLElement);
create_element_and_check("audio", HTMLAudioElement); create_element_and_check("audio", HTMLAudioElement);
create_element_and_check("b", HTMLElement); create_element_and_check("b", HTMLElement);
create_element_and_check("base", HTMLBaseElement); create_element_and_check("base", HTMLBaseElement);
create_element_and_check("bdi", HTMLElement);
create_element_and_check("bdo", HTMLElement);
create_element_and_check("bgsound", HTMLElement);
create_element_and_check("big", HTMLElement);
create_element_and_check("blockquote",HTMLElement);
create_element_and_check("body", HTMLBodyElement); create_element_and_check("body", HTMLBodyElement);
create_element_and_check("br", HTMLBRElement); create_element_and_check("br", HTMLBRElement);
create_element_and_check("button", HTMLButtonElement); create_element_and_check("button", HTMLButtonElement);
create_element_and_check("canvas", HTMLCanvasElement); create_element_and_check("canvas", HTMLCanvasElement);
create_element_and_check("caption", HTMLTableCaptionElement); create_element_and_check("caption", HTMLTableCaptionElement);
create_element_and_check("center", HTMLElement);
create_element_and_check("cite", HTMLElement);
create_element_and_check("code", HTMLElement);
create_element_and_check("col", HTMLTableColElement); create_element_and_check("col", HTMLTableColElement);
create_element_and_check("colgroup", HTMLTableColElement); create_element_and_check("colgroup", HTMLTableColElement);
create_element_and_check("data", HTMLDataElement); create_element_and_check("data", HTMLDataElement);
create_element_and_check("datalist", HTMLDataListElement); create_element_and_check("datalist", HTMLDataListElement);
create_element_and_check("dd", HTMLElement);
create_element_and_check("del", HTMLModElement); create_element_and_check("del", HTMLModElement);
create_element_and_check("details", HTMLElement);
create_element_and_check("dfn", HTMLElement);
create_element_and_check("dir", HTMLDirectoryElement); create_element_and_check("dir", HTMLDirectoryElement);
create_element_and_check("div", HTMLDivElement); create_element_and_check("div", HTMLDivElement);
create_element_and_check("dl", HTMLDListElement); create_element_and_check("dl", HTMLDListElement);
create_element_and_check("dt", HTMLElement);
create_element_and_check("embed", HTMLEmbedElement); create_element_and_check("embed", HTMLEmbedElement);
create_element_and_check("fieldset", HTMLFieldSetElement); create_element_and_check("fieldset", HTMLFieldSetElement);
create_element_and_check("figcaption",HTMLElement);
create_element_and_check("figure", HTMLElement);
create_element_and_check("font", HTMLFontElement); create_element_and_check("font", HTMLFontElement);
create_element_and_check("footer", HTMLElement);
create_element_and_check("form", HTMLFormElement); create_element_and_check("form", HTMLFormElement);
create_element_and_check("frame", HTMLFrameElement); create_element_and_check("frame", HTMLFrameElement);
create_element_and_check("frameset", HTMLFrameSetElement); create_element_and_check("frameset", HTMLFrameSetElement);
@ -50,6 +69,8 @@
create_element_and_check("h5", HTMLHeadingElement); create_element_and_check("h5", HTMLHeadingElement);
create_element_and_check("h6", HTMLHeadingElement); create_element_and_check("h6", HTMLHeadingElement);
create_element_and_check("head", HTMLHeadElement); create_element_and_check("head", HTMLHeadElement);
create_element_and_check("header", HTMLElement);
create_element_and_check("hgroup", HTMLElement);
create_element_and_check("hr", HTMLHRElement); create_element_and_check("hr", HTMLHRElement);
create_element_and_check("html", HTMLHtmlElement); create_element_and_check("html", HTMLHtmlElement);
create_element_and_check("i", HTMLElement); create_element_and_check("i", HTMLElement);
@ -57,14 +78,22 @@
create_element_and_check("img", HTMLImageElement); create_element_and_check("img", HTMLImageElement);
create_element_and_check("input", HTMLInputElement); create_element_and_check("input", HTMLInputElement);
create_element_and_check("ins", HTMLModElement); create_element_and_check("ins", HTMLModElement);
create_element_and_check("isindex", HTMLElement);
create_element_and_check("kbd", HTMLElement);
create_element_and_check("label", HTMLLabelElement); create_element_and_check("label", HTMLLabelElement);
create_element_and_check("legend", HTMLLegendElement); create_element_and_check("legend", HTMLLegendElement);
create_element_and_check("li", HTMLLIElement); create_element_and_check("li", HTMLLIElement);
create_element_and_check("link", HTMLLinkElement); create_element_and_check("link", HTMLLinkElement);
create_element_and_check("main", HTMLMainElement); create_element_and_check("main", HTMLMainElement);
create_element_and_check("map", HTMLMapElement); create_element_and_check("map", HTMLMapElement);
create_element_and_check("mark", HTMLElement);
create_element_and_check("marquee", HTMLElement);
create_element_and_check("meta", HTMLMetaElement); create_element_and_check("meta", HTMLMetaElement);
create_element_and_check("meter", HTMLMeterElement); create_element_and_check("meter", HTMLMeterElement);
create_element_and_check("nav", HTMLElement);
create_element_and_check("nobr", HTMLElement);
create_element_and_check("noframes", HTMLElement);
create_element_and_check("noscript", HTMLElement);
create_element_and_check("object", HTMLObjectElement); create_element_and_check("object", HTMLObjectElement);
create_element_and_check("ol", HTMLOListElement); create_element_and_check("ol", HTMLOListElement);
create_element_and_check("optgroup", HTMLOptGroupElement); create_element_and_check("optgroup", HTMLOptGroupElement);
@ -75,13 +104,23 @@
create_element_and_check("pre", HTMLPreElement); create_element_and_check("pre", HTMLPreElement);
create_element_and_check("progress", HTMLProgressElement); create_element_and_check("progress", HTMLProgressElement);
create_element_and_check("q", HTMLQuoteElement); create_element_and_check("q", HTMLQuoteElement);
create_element_and_check("rp", HTMLElement);
create_element_and_check("rt", HTMLElement);
create_element_and_check("ruby", HTMLElement);
create_element_and_check("s", HTMLElement);
create_element_and_check("samp", HTMLElement);
create_element_and_check("script", HTMLScriptElement); create_element_and_check("script", HTMLScriptElement);
create_element_and_check("section", HTMLElement); create_element_and_check("section", HTMLElement);
create_element_and_check("select", HTMLSelectElement); create_element_and_check("select", HTMLSelectElement);
create_element_and_check("small", HTMLElement); create_element_and_check("small", HTMLElement);
create_element_and_check("source", HTMLSourceElement); create_element_and_check("source", HTMLSourceElement);
create_element_and_check("spacer", HTMLElement);
create_element_and_check("span", HTMLSpanElement); create_element_and_check("span", HTMLSpanElement);
create_element_and_check("strike", HTMLElement);
create_element_and_check("style", HTMLStyleElement); create_element_and_check("style", HTMLStyleElement);
create_element_and_check("sub", HTMLElement);
create_element_and_check("summary", HTMLElement);
create_element_and_check("sup", HTMLElement);
create_element_and_check("table", HTMLTableElement); create_element_and_check("table", HTMLTableElement);
create_element_and_check("tbody", HTMLTableSectionElement); create_element_and_check("tbody", HTMLTableSectionElement);
create_element_and_check("td", HTMLTableDataCellElement); create_element_and_check("td", HTMLTableDataCellElement);
@ -91,10 +130,14 @@
create_element_and_check("time", HTMLTimeElement); create_element_and_check("time", HTMLTimeElement);
create_element_and_check("title", HTMLTitleElement); create_element_and_check("title", HTMLTitleElement);
create_element_and_check("tr", HTMLTableRowElement); create_element_and_check("tr", HTMLTableRowElement);
create_element_and_check("tt", HTMLElement);
create_element_and_check("track", HTMLTrackElement); create_element_and_check("track", HTMLTrackElement);
create_element_and_check("u", HTMLElement);
create_element_and_check("ul", HTMLUListElement); create_element_and_check("ul", HTMLUListElement);
create_element_and_check("var", HTMLElement);
create_element_and_check("video", HTMLVideoElement); create_element_and_check("video", HTMLVideoElement);
create_element_and_check("unknown", HTMLUnknownElement); create_element_and_check("unknown", HTMLUnknownElement);
create_element_and_check("wbr", HTMLElement);
} }
// test2: createDocumentFragment // test2: createDocumentFragment