Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml |
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bdafb076d823999036de382face71da8803d8887 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml |
@@ -0,0 +1,102 @@ |
+<!DOCTYPE html> |
+<html xmlns="http://www.w3.org/1999/xhtml"> |
+<head> |
+<title>Document.getElementsByTagName</title> |
+<script src="../../../../resources/testharness.js"></script> |
+<script src="../../../../resources/testharnessreport.js"></script> |
+</head> |
+<body> |
+<div id="log"></div> |
+<pre id="x"></pre> |
+<script> |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "I")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_equals(t.localName, "I") |
+ assert_equals(t.tagName, "I") |
+ assert_array_equals(document.getElementsByTagName("I"), [t]) |
+ assert_array_equals(document.getElementsByTagName("i"), []) |
+ assert_array_equals(document.body.getElementsByTagName("I"), [t]) |
+ assert_array_equals(document.body.getElementsByTagName("i"), []) |
+}, "HTML element with uppercase tag name matches in XHTML documents") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("test", "st")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("st"), [t]) |
+ assert_array_equals(document.getElementsByTagName("ST"), []) |
+}, "Element in non-HTML namespace, no prefix, lowercase name") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("test", "ST")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("ST"), [t]) |
+ assert_array_equals(document.getElementsByTagName("st"), []) |
+}, "Element in non-HTML namespace, no prefix, uppercase name") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("test", "te:st")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("st"), [t]) |
+ assert_array_equals(document.getElementsByTagName("ST"), []) |
+}, "Element in non-HTML namespace, prefix, lowercase name") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("test", "te:ST")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("ST"), [t]) |
+ assert_array_equals(document.getElementsByTagName("st"), []) |
+ assert_array_equals(document.getElementsByTagName("te:st"), []) |
+ assert_array_equals(document.getElementsByTagName("te:ST"), []) |
+}, "Element in non-HTML namespace, prefix, uppercase name") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElement("AÇ")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("AÇ"), [t], "All uppercase input") |
+ assert_array_equals(document.getElementsByTagName("aÇ"), [], "Ascii lowercase input") |
+ assert_array_equals(document.getElementsByTagName("aç"), [], "All lowercase input") |
+}, "Element in HTML namespace, no prefix, non-ascii characters in name") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("test", "AÇ")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("AÇ"), [t], "All uppercase input") |
+ assert_array_equals(document.getElementsByTagName("aÇ"), [], "Ascii lowercase input") |
+ assert_array_equals(document.getElementsByTagName("aç"), [], "All lowercase input") |
+}, "Element in non-HTML namespace, non-ascii characters in name") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "test:aÇ")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("AÇ"), [], "All uppercase input") |
+ assert_array_equals(document.getElementsByTagName("aÇ"), [t], "Ascii lowercase input") |
+ assert_array_equals(document.getElementsByTagName("aç"), [], "All lowercase input") |
+}, "Element in HTML namespace, prefix, non-ascii characters in name") |
+ |
+test(function() { |
+ var t = document.body.appendChild(document.createElementNS("test", "test:AÇ")) |
+ this.add_cleanup(function() {document.body.removeChild(t)}) |
+ assert_array_equals(document.getElementsByTagName("AÇ"), [t], "All uppercase input") |
+ assert_array_equals(document.getElementsByTagName("aÇ"), [], "Ascii lowercase input") |
+ assert_array_equals(document.getElementsByTagName("aç"), [], "All lowercase input") |
+}, "Element in non-HTML namespace, prefix, non-ascii characters in name") |
+ |
+test(function() { |
+ var actual = document.getElementsByTagName("*"); |
+ var expected = []; |
+ var get_elements = function(node) { |
+ for (var i = 0; i < node.childNodes.length; i++) { |
+ var child = node.childNodes[i]; |
+ if (child.nodeType === child.ELEMENT_NODE) { |
+ expected.push(child); |
+ get_elements(child); |
+ } |
+ } |
+ } |
+ get_elements(document); |
+ assert_array_equals(actual, expected); |
+}, "getElementsByTagName('*')") |
+</script> |
+</body> |
+</html> |