Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-createElementNS.html |
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-createElementNS.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-createElementNS.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..38735c8cb0f73a2c42a25b773f863629f8b9fe76 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-createElementNS.html |
@@ -0,0 +1,199 @@ |
+<!DOCTYPE html> |
+<meta charset=utf-8> |
+<title>Document.createElementNS</title> |
+<link rel=help href="https://dom.spec.whatwg.org/#dom-document-createelementns"> |
+<script src="../../../../resources/testharness.js"></script> |
+<script src="../../../../resources/testharnessreport.js"></script> |
+<script src="Document-createElementNS.js"></script> |
+<div id="log"></div> |
+<script> |
+test(function() { |
+ var tests = createElementNS_tests.concat([ |
+ /* Arrays with three elements: |
+ * the namespace argument |
+ * the qualifiedName argument |
+ * the expected exception, or null if none |
+ */ |
+ ["", "", "INVALID_CHARACTER_ERR"], |
+ [null, null, null], |
+ [null, "", "INVALID_CHARACTER_ERR"], |
+ [undefined, null, null], |
+ [undefined, undefined, null], |
+ [undefined, "", "INVALID_CHARACTER_ERR"], |
+ ["http://example.com/", null, null], |
+ ["http://example.com/", "", "INVALID_CHARACTER_ERR"], |
+ ["/", null, null], |
+ ["/", "", "INVALID_CHARACTER_ERR"], |
+ ["http://www.w3.org/XML/1998/namespace", null, null], |
+ ["http://www.w3.org/XML/1998/namespace", "", "INVALID_CHARACTER_ERR"], |
+ ["http://www.w3.org/2000/xmlns/", null, "NAMESPACE_ERR"], |
+ ["http://www.w3.org/2000/xmlns/", "", "INVALID_CHARACTER_ERR"], |
+ ["foo:", null, null], |
+ ["foo:", "", "INVALID_CHARACTER_ERR"], |
+ ]) |
+ |
+ tests.forEach(function(t, i) { |
+ test(function() { |
+ var namespace = t[0], qualifiedName = t[1], expected = t[2] |
+ if (expected != null) { |
+ assert_throws(expected, function() { document.createElementNS(namespace, qualifiedName) }) |
+ } else { |
+ var element = document.createElementNS(namespace, qualifiedName) |
+ assert_not_equals(element, null) |
+ assert_equals(element.nodeType, Node.ELEMENT_NODE) |
+ assert_equals(element.nodeType, element.ELEMENT_NODE) |
+ assert_equals(element.nodeValue, null) |
+ assert_equals(element.ownerDocument, document) |
+ var qualified = String(qualifiedName), names = [] |
+ if (qualified.indexOf(":") >= 0) { |
+ names = qualified.split(":", 2) |
+ } else { |
+ names = [null, qualified] |
+ } |
+ assert_equals(element.prefix, names[0]) |
+ assert_equals(element.localName, names[1]) |
+ assert_equals(element.tagName, qualified) |
+ assert_equals(element.nodeName, qualified) |
+ assert_equals(element.namespaceURI, namespace === undefined ? null : namespace) |
+ } |
+ }, "createElementNS test " + i + ": " + t.map(function(el) { return format_value(el) })) |
+ }) |
+}) |
+ |
+test(function() { |
+ var HTMLNS = "http://www.w3.org/1999/xhtml"; |
+ var element = document.createElementNS(HTMLNS, "span"); |
+ assert_equals(element.namespaceURI, HTMLNS); |
+ assert_equals(element.prefix, null); |
+ assert_equals(element.localName, "span"); |
+ assert_equals(element.tagName, "SPAN"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_true(element instanceof HTMLElement, "Should be an HTMLElement"); |
+ assert_true(element instanceof HTMLSpanElement, "Should be an HTMLSpanElement"); |
+}, "Lower-case HTML element without a prefix"); |
+ |
+test(function() { |
+ var HTMLNS = "http://www.w3.org/1999/xhtml"; |
+ var element = document.createElementNS(HTMLNS, "html:span"); |
+ assert_equals(element.namespaceURI, HTMLNS); |
+ assert_equals(element.prefix, "html"); |
+ assert_equals(element.localName, "span"); |
+ assert_equals(element.tagName, "HTML:SPAN"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_true(element instanceof HTMLElement, "Should be an HTMLElement"); |
+ assert_true(element instanceof HTMLSpanElement, "Should be an HTMLSpanElement"); |
+}, "Lower-case HTML element with a prefix"); |
+ |
+test(function() { |
+ var element = document.createElementNS("test", "span"); |
+ assert_equals(element.namespaceURI, "test"); |
+ assert_equals(element.prefix, null); |
+ assert_equals(element.localName, "span"); |
+ assert_equals(element.tagName, "span"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_false(element instanceof HTMLElement, "Should not be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "Lower-case non-HTML element without a prefix"); |
+ |
+test(function() { |
+ var element = document.createElementNS("test", "html:span"); |
+ assert_equals(element.namespaceURI, "test"); |
+ assert_equals(element.prefix, "html"); |
+ assert_equals(element.localName, "span"); |
+ assert_equals(element.tagName, "html:span"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_false(element instanceof HTMLElement, "Should not be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "Lower-case non-HTML element with a prefix"); |
+ |
+test(function() { |
+ var HTMLNS = "http://www.w3.org/1999/xhtml"; |
+ var element = document.createElementNS(HTMLNS, "SPAN"); |
+ assert_equals(element.namespaceURI, HTMLNS); |
+ assert_equals(element.prefix, null); |
+ assert_equals(element.localName, "SPAN"); |
+ assert_equals(element.tagName, "SPAN"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_true(element instanceof HTMLElement, "Should be an HTMLElement"); |
+ assert_true(element instanceof HTMLUnknownElement, "Should be an HTMLUnknownElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "Upper-case HTML element without a prefix"); |
+ |
+test(function() { |
+ var HTMLNS = "http://www.w3.org/1999/xhtml"; |
+ var element = document.createElementNS(HTMLNS, "html:SPAN"); |
+ assert_equals(element.namespaceURI, HTMLNS); |
+ assert_equals(element.prefix, "html"); |
+ assert_equals(element.localName, "SPAN"); |
+ assert_equals(element.tagName, "HTML:SPAN"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_true(element instanceof HTMLElement, "Should be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "Upper-case HTML element with a prefix"); |
+ |
+test(function() { |
+ var element = document.createElementNS("test", "SPAN"); |
+ assert_equals(element.namespaceURI, "test"); |
+ assert_equals(element.prefix, null); |
+ assert_equals(element.localName, "SPAN"); |
+ assert_equals(element.tagName, "SPAN"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_false(element instanceof HTMLElement, "Should not be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "Upper-case non-HTML element without a prefix"); |
+ |
+test(function() { |
+ var element = document.createElementNS("test", "html:SPAN"); |
+ assert_equals(element.namespaceURI, "test"); |
+ assert_equals(element.prefix, "html"); |
+ assert_equals(element.localName, "SPAN"); |
+ assert_equals(element.tagName, "html:SPAN"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_false(element instanceof HTMLElement, "Should not be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "Upper-case non-HTML element with a prefix"); |
+ |
+test(function() { |
+ var element = document.createElementNS(null, "span"); |
+ assert_equals(element.namespaceURI, null); |
+ assert_equals(element.prefix, null); |
+ assert_equals(element.localName, "span"); |
+ assert_equals(element.tagName, "span"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_false(element instanceof HTMLElement, "Should not be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "null namespace"); |
+ |
+test(function() { |
+ var element = document.createElementNS(undefined, "span"); |
+ assert_equals(element.namespaceURI, null); |
+ assert_equals(element.prefix, null); |
+ assert_equals(element.localName, "span"); |
+ assert_equals(element.tagName, "span"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_false(element instanceof HTMLElement, "Should not be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "undefined namespace"); |
+ |
+test(function() { |
+ var element = document.createElementNS("", "span"); |
+ assert_equals(element.namespaceURI, null); |
+ assert_equals(element.prefix, null); |
+ assert_equals(element.localName, "span"); |
+ assert_equals(element.tagName, "span"); |
+ assert_true(element instanceof Node, "Should be a Node"); |
+ assert_true(element instanceof Element, "Should be an Element"); |
+ assert_false(element instanceof HTMLElement, "Should not be an HTMLElement"); |
+ assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement"); |
+}, "empty string namespace"); |
+</script> |