| Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/interfaces.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/interfaces.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/interfaces.html
|
| index 37b96d22002e7c48088d9f286d3ab6912d527f65..98cd909ee9a40311491caf332db2fb83f93dbb25 100644
|
| --- a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/interfaces.html
|
| +++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/interfaces.html
|
| @@ -9,9 +9,16 @@
|
| <script src=interfaces.js></script>
|
| <div id="log"></div>
|
| <script>
|
| -function do_test(local_name, iface) {
|
| +function do_test(local_name, iface, variant) {
|
| test(function() {
|
| - var e = document.createElement(local_name), i = "HTML" + iface + "Element";
|
| + var e;
|
| + var i = "HTML" + iface + "Element";
|
| + if (variant === "useNS") {
|
| + // Use createElementNS here to preserve the case of local_name.
|
| + e = document.createElementNS("http://www.w3.org/1999/xhtml", local_name);
|
| + } else {
|
| + e = document.createElement(local_name);
|
| + }
|
| assert_class_string(e, i,
|
| "Element " + local_name + " should have " + i +
|
| " as its primary interface.");
|
| @@ -27,7 +34,13 @@ function do_test(local_name, iface) {
|
| }
|
|
|
| elements.forEach(function(a) {
|
| - do_test(a[0], a[1]);
|
| - do_test(a[0].toUpperCase(), a[1]);
|
| + do_test(a[0], a[1], "useNS");
|
| +
|
| + // Only run the createElement variant if the input is all-lowercase, because createElement
|
| + // case-folds to lowercase. Custom elements are required to use all-lowercase to implement
|
| + // HTMLElement, otherwise they use HTMLUnknownElement per spec. Example: "foo-BAR".
|
| + if (a[0] === a[0].toLowerCase()) {
|
| + do_test(a[0].toUpperCase(), a[1]);
|
| + }
|
| })
|
| </script>
|
|
|