From f5c2f7e83573165a5edd18b917ded3226eafd4b5 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Fri, 16 May 2014 08:08:44 +1000 Subject: [PATCH] Add various base html elements to parser and test. Fixes #703. --- .../script/html/hubbub_html_parser.rs | 43 +++++++++++++++++++ src/test/content/test_node_cloneNode.html | 43 +++++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 46f047053f5..1bcdbddb8a0 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -162,29 +162,48 @@ fn js_script_listener(to_parent: Sender, pub fn build_element_from_tag(tag: DOMString, document: &JSRef) -> Temporary { // TODO (Issue #85): use atoms 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, "area", HTMLAreaElement); + handle_element!(document, tag, "article", HTMLElement); handle_element!(document, tag, "aside", HTMLElement); handle_element!(document, tag, "audio", HTMLAudioElement); handle_element!(document, tag, "b", HTMLElement); 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, "br", HTMLBRElement); handle_element!(document, tag, "button", HTMLButtonElement); handle_element!(document, tag, "canvas", HTMLCanvasElement); 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, "colgroup", HTMLTableColElement); handle_element!(document, tag, "data", HTMLDataElement); handle_element!(document, tag, "datalist", HTMLDataListElement); + handle_element!(document, tag, "dd", HTMLElement); 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, "div", HTMLDivElement); handle_element!(document, tag, "dl", HTMLDListElement); + handle_element!(document, tag, "dt", HTMLElement); handle_element!(document, tag, "em", HTMLElement); handle_element!(document, tag, "embed", HTMLEmbedElement); 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, "footer", HTMLElement); handle_element!(document, tag, "form", HTMLFormElement); handle_element!(document, tag, "frame", HTMLFrameElement); handle_element!(document, tag, "frameset", HTMLFrameSetElement); @@ -195,6 +214,8 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef) -> Tem handle_element!(document, tag, "h5", HTMLHeadingElement, Heading5); handle_element!(document, tag, "h6", HTMLHeadingElement, Heading6); 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, "html", HTMLHtmlElement); handle_element!(document, tag, "i", HTMLElement); @@ -202,14 +223,22 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef) -> Tem handle_element!(document, tag, "img", HTMLImageElement); handle_element!(document, tag, "input", HTMLInputElement); 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, "legend", HTMLLegendElement); handle_element!(document, tag, "li", HTMLLIElement); handle_element!(document, tag, "link", HTMLLinkElement); handle_element!(document, tag, "main", HTMLMainElement); 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, "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, "ol", HTMLOListElement); handle_element!(document, tag, "optgroup", HTMLOptGroupElement); @@ -220,14 +249,24 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef) -> Tem handle_element!(document, tag, "pre", HTMLPreElement); handle_element!(document, tag, "progress", HTMLProgressElement); 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, "section", HTMLElement); handle_element!(document, tag, "select", HTMLSelectElement); handle_element!(document, tag, "small", HTMLElement); handle_element!(document, tag, "source", HTMLSourceElement); + handle_element!(document, tag, "spacer", HTMLElement); handle_element!(document, tag, "span", HTMLSpanElement); + handle_element!(document, tag, "strike", HTMLElement); handle_element!(document, tag, "strong", HTMLElement); 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, "tbody", HTMLTableSectionElement); handle_element!(document, tag, "td", HTMLTableDataCellElement); @@ -237,9 +276,13 @@ pub fn build_element_from_tag(tag: DOMString, document: &JSRef) -> Tem handle_element!(document, tag, "time", HTMLTimeElement); handle_element!(document, tag, "title", HTMLTitleElement); handle_element!(document, tag, "tr", HTMLTableRowElement); + handle_element!(document, tag, "tt", HTMLElement); handle_element!(document, tag, "track", HTMLTrackElement); + handle_element!(document, tag, "u", HTMLElement); handle_element!(document, tag, "ul", HTMLUListElement); + handle_element!(document, tag, "var", HTMLElement); handle_element!(document, tag, "video", HTMLVideoElement); + handle_element!(document, tag, "wbr", HTMLElement); return ElementCast::from_temporary(HTMLUnknownElement::new(tag, document)); } diff --git a/src/test/content/test_node_cloneNode.html b/src/test/content/test_node_cloneNode.html index 3b07eafe835..4101a7a29fe 100644 --- a/src/test/content/test_node_cloneNode.html +++ b/src/test/content/test_node_cloneNode.html @@ -18,28 +18,47 @@ // test1: createElement { 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("area", HTMLAreaElement); + create_element_and_check("article", HTMLElement); create_element_and_check("aside", HTMLElement); create_element_and_check("audio", HTMLAudioElement); create_element_and_check("b", HTMLElement); 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("br", HTMLBRElement); create_element_and_check("button", HTMLButtonElement); create_element_and_check("canvas", HTMLCanvasElement); 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("colgroup", HTMLTableColElement); create_element_and_check("data", HTMLDataElement); create_element_and_check("datalist", HTMLDataListElement); + create_element_and_check("dd", HTMLElement); 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("div", HTMLDivElement); create_element_and_check("dl", HTMLDListElement); + create_element_and_check("dt", HTMLElement); create_element_and_check("embed", HTMLEmbedElement); 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("footer", HTMLElement); create_element_and_check("form", HTMLFormElement); create_element_and_check("frame", HTMLFrameElement); create_element_and_check("frameset", HTMLFrameSetElement); @@ -50,6 +69,8 @@ create_element_and_check("h5", HTMLHeadingElement); create_element_and_check("h6", HTMLHeadingElement); 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("html", HTMLHtmlElement); create_element_and_check("i", HTMLElement); @@ -57,14 +78,22 @@ create_element_and_check("img", HTMLImageElement); create_element_and_check("input", HTMLInputElement); 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("legend", HTMLLegendElement); create_element_and_check("li", HTMLLIElement); create_element_and_check("link", HTMLLinkElement); create_element_and_check("main", HTMLMainElement); 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("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("ol", HTMLOListElement); create_element_and_check("optgroup", HTMLOptGroupElement); @@ -75,13 +104,23 @@ create_element_and_check("pre", HTMLPreElement); create_element_and_check("progress", HTMLProgressElement); 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("section", HTMLElement); create_element_and_check("select", HTMLSelectElement); create_element_and_check("small", HTMLElement); create_element_and_check("source", HTMLSourceElement); + create_element_and_check("spacer", HTMLElement); create_element_and_check("span", HTMLSpanElement); + create_element_and_check("strike", HTMLElement); 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("tbody", HTMLTableSectionElement); create_element_and_check("td", HTMLTableDataCellElement); @@ -91,10 +130,14 @@ create_element_and_check("time", HTMLTimeElement); create_element_and_check("title", HTMLTitleElement); create_element_and_check("tr", HTMLTableRowElement); + create_element_and_check("tt", HTMLElement); create_element_and_check("track", HTMLTrackElement); + create_element_and_check("u", HTMLElement); create_element_and_check("ul", HTMLUListElement); + create_element_and_check("var", HTMLElement); create_element_and_check("video", HTMLVideoElement); create_element_and_check("unknown", HTMLUnknownElement); + create_element_and_check("wbr", HTMLElement); } // test2: createDocumentFragment