diff options
-rw-r--r-- | tests/wpt/mozilla/meta/MANIFEST.json | 6 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/mozilla/node_cloneNode.html | 230 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/dom/nodes/Node-cloneNode.html | 243 |
3 files changed, 232 insertions, 247 deletions
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index ef9c5992923..5a1537df1f6 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -647,12 +647,6 @@ "url": "/_mozilla/mozilla/navigator.html" } ], - "mozilla/node_cloneNode.html": [ - { - "path": "mozilla/node_cloneNode.html", - "url": "/_mozilla/mozilla/node_cloneNode.html" - } - ], "mozilla/node_compareDocumentPosition.html": [ { "path": "mozilla/node_compareDocumentPosition.html", diff --git a/tests/wpt/mozilla/tests/mozilla/node_cloneNode.html b/tests/wpt/mozilla/tests/mozilla/node_cloneNode.html deleted file mode 100644 index 69956cc1075..00000000000 --- a/tests/wpt/mozilla/tests/mozilla/node_cloneNode.html +++ /dev/null @@ -1,230 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> - <script> - function check_copy(orig, copy, type) { - assert_not_equals(orig, copy); - assert_true(orig instanceof type, "Should be type"); - assert_true(copy instanceof type, "Should be type"); - } - - function create_element_and_check(localName, type) { - test(function() { - var element = document.createElement(localName); - var copy = element.cloneNode(); - check_copy(element, copy, type); - }, "createElement(" + localName + ")"); - } - - // test1: createElement - test(function() { - 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("dialog", HTMLDialogElement); - 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); - create_element_and_check("h1", HTMLHeadingElement); - create_element_and_check("h2", HTMLHeadingElement); - create_element_and_check("h3", HTMLHeadingElement); - create_element_and_check("h4", HTMLHeadingElement); - 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); - create_element_and_check("iframe", HTMLIFrameElement); - 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", HTMLElement); - 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); - create_element_and_check("option", HTMLOptionElement); - create_element_and_check("output", HTMLOutputElement); - create_element_and_check("p", HTMLParagraphElement); - create_element_and_check("param", HTMLParamElement); - 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); - create_element_and_check("template", HTMLTemplateElement); - create_element_and_check("textarea", HTMLTextAreaElement); - create_element_and_check("th", HTMLTableHeaderCellElement); - 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); - }, ""); - - test(function() { - var fragment = document.createDocumentFragment(); - var copy = fragment.cloneNode(); - check_copy(fragment, copy, DocumentFragment); - }, "createDocumentFragment"); - - test(function() { - var text = document.createTextNode("hello world"); - var copy = text.cloneNode(); - check_copy(text, copy, Text); - assert_equals(text.data, copy.data); - assert_equals(text.wholeText, copy.wholeText); - }, "createTextNode"); - - test(function() { - var comment = document.createComment("a comment"); - var copy = comment.cloneNode(); - check_copy(comment, copy, Comment); - assert_equals(comment.data, copy.data); - }, "createComment"); - - test(function() { - var pi = document.createProcessingInstruction("target", "data"); - var copy = pi.cloneNode(); - check_copy(pi, copy, ProcessingInstruction); - assert_equals(pi.data, copy.data); - assert_equals(pi.target, pi.target); - }, "createProcessingInstruction"); - - test(function() { - var doctype = document.implementation.createDocumentType("html", "public", "system"); - var copy = doctype.cloneNode(); - check_copy(doctype, copy, DocumentType); - assert_equals(doctype.name, copy.name); - assert_equals(doctype.publicId, copy.publicId); - assert_equals(doctype.systemId, copy.systemId); - }, "implementation.createDocumentType"); - - test(function() { - var doc = document.implementation.createDocument(null, null); - var copy = doc.cloneNode(); - check_copy(doc, copy, Document); - assert_equals(doc.contentType, copy.contentType); - }, "implementation.createDocument"); - - test(function() { - var html = document.implementation.createHTMLDocument("title"); - var copy = html.cloneNode(); - check_copy(html, copy, Document); - assert_equals(html.title, copy.title); - }, "implementation.createHTMLDocument"); - - test(function() { - var parent = document.createElement("div"); - var child1 = document.createElement("div"); - var child2 = document.createElement("div"); - var grandChild = document.createElement("div"); - - child2.appendChild(grandChild); - parent.appendChild(child1); - parent.appendChild(child2); - - var deep = true; - var copy = parent.cloneNode(deep); - - check_copy(parent, copy, HTMLDivElement); - assert_equals(copy.childNodes.length, 2); - - check_copy(child1, copy.childNodes[0], HTMLDivElement); - assert_equals(copy.childNodes[0].childNodes.length, 0); - - check_copy(child2, copy.childNodes[1], HTMLDivElement); - assert_equals(copy.childNodes[1].childNodes.length, 1); - check_copy(grandChild, copy.childNodes[1].childNodes[0], HTMLDivElement); - - deep = false; - copy = parent.cloneNode(deep); - - check_copy(parent, copy, HTMLDivElement); - assert_equals(copy.childNodes.length, 0); - }, "node with children"); - </script> - </head> -</html> diff --git a/tests/wpt/web-platform-tests/dom/nodes/Node-cloneNode.html b/tests/wpt/web-platform-tests/dom/nodes/Node-cloneNode.html index 9b98bc97b6f..fec456bb51f 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/Node-cloneNode.html +++ b/tests/wpt/web-platform-tests/dom/nodes/Node-cloneNode.html @@ -27,25 +27,246 @@ function assert_equal_node(nodeA, nodeB) { } } +function check_copy(orig, copy, type) { + assert_not_equals(orig, copy); + assert_equal_node(orig, copy); + assert_true(orig instanceof type, "Should be type"); + assert_true(copy instanceof type, "Should be type"); +} + +function create_element_and_check(localName, type) { + test(function() { + var element = document.createElement(localName); + var copy = element.cloneNode(); + check_copy(element, copy, type); + }, "createElement(" + localName + ")"); +} + +// test1: createElement +test(function() { + 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("dialog", HTMLDialogElement); + 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); + create_element_and_check("h1", HTMLHeadingElement); + create_element_and_check("h2", HTMLHeadingElement); + create_element_and_check("h3", HTMLHeadingElement); + create_element_and_check("h4", HTMLHeadingElement); + 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); + create_element_and_check("iframe", HTMLIFrameElement); + 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", HTMLElement); + 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); + create_element_and_check("option", HTMLOptionElement); + create_element_and_check("output", HTMLOutputElement); + create_element_and_check("p", HTMLParagraphElement); + create_element_and_check("param", HTMLParamElement); + 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); + create_element_and_check("template", HTMLTemplateElement); + create_element_and_check("textarea", HTMLTextAreaElement); + create_element_and_check("th", HTMLTableHeaderCellElement); + 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); +}, ""); + +test(function() { + var fragment = document.createDocumentFragment(); + var copy = fragment.cloneNode(); + check_copy(fragment, copy, DocumentFragment); +}, "createDocumentFragment"); + +test(function() { + var text = document.createTextNode("hello world"); + var copy = text.cloneNode(); + check_copy(text, copy, Text); + assert_equals(text.data, copy.data); + assert_equals(text.wholeText, copy.wholeText); +}, "createTextNode"); + +test(function() { + var comment = document.createComment("a comment"); + var copy = comment.cloneNode(); + check_copy(comment, copy, Comment); + assert_equals(comment.data, copy.data); +}, "createComment"); + test(function() { var el = document.createElement("foo"); - el.appendChild(document.createElement("bar")); el.setAttribute("a", "b"); el.setAttribute("c", "d"); - var c = el.cloneNode(false); - assert_equal_node(el, c); - assert_equals(c.childNodes.length, 0); -}, "Unprefixed HTML element") + var c = el.cloneNode(); + check_copy(el, c, Element); +}, "createElement with attributes") test(function() { var el = document.createElementNS("http://www.w3.org/1999/xhtml", "foo:div"); - var c = el.cloneNode(false); - assert_equal_node(el, c); -}, "Prefixed HTML element") + var c = el.cloneNode(); + check_copy(el, c, HTMLDivElement); +}, "createElementNS HTML") test(function() { var el = document.createElementNS("http://www.example.com/", "foo:div"); - var c = el.cloneNode(false); - assert_equal_node(el, c); -}, "Prefixed non-HTML element") + var c = el.cloneNode(); + check_copy(el, c, Element); +}, "createElementNS non-HTML") + +test(function() { + var pi = document.createProcessingInstruction("target", "data"); + var copy = pi.cloneNode(); + check_copy(pi, copy, ProcessingInstruction); + assert_equals(pi.data, copy.data); + assert_equals(pi.target, pi.target); +}, "createProcessingInstruction"); + +test(function() { + var doctype = document.implementation.createDocumentType("html", "public", "system"); + var copy = doctype.cloneNode(); + check_copy(doctype, copy, DocumentType); + assert_equals(doctype.name, copy.name); + assert_equals(doctype.publicId, copy.publicId); + assert_equals(doctype.systemId, copy.systemId); +}, "implementation.createDocumentType"); + +test(function() { + var doc = document.implementation.createDocument(null, null); + var copy = doc.cloneNode(); + check_copy(doc, copy, Document); + assert_equals(doc.contentType, copy.contentType); +}, "implementation.createDocument"); + +test(function() { + var html = document.implementation.createHTMLDocument("title"); + var copy = html.cloneNode(); + check_copy(html, copy, Document); + assert_equals(html.title, copy.title); +}, "implementation.createHTMLDocument"); + +test(function() { + var parent = document.createElement("div"); + var child1 = document.createElement("div"); + var child2 = document.createElement("div"); + var grandChild = document.createElement("div"); + + child2.appendChild(grandChild); + parent.appendChild(child1); + parent.appendChild(child2); + + var deep = true; + var copy = parent.cloneNode(deep); + + check_copy(parent, copy, HTMLDivElement); + assert_equals(copy.childNodes.length, 2); + + check_copy(child1, copy.childNodes[0], HTMLDivElement); + assert_equals(copy.childNodes[0].childNodes.length, 0); + + check_copy(child2, copy.childNodes[1], HTMLDivElement); + assert_equals(copy.childNodes[1].childNodes.length, 1); + check_copy(grandChild, copy.childNodes[1].childNodes[0], HTMLDivElement); + + deep = false; + copy = parent.cloneNode(deep); + + check_copy(parent, copy, HTMLDivElement); + assert_equals(copy.childNodes.length, 0); +}, "node with children"); </script> |