<!DOCTYPE html> <html> <head> <title>Document.createElement() sets custom element namespace to HTML Namespace</title> <meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> <meta name="assert" content="Namespace for createElement is HTML Namespace"> <link rel="help" href="http://www.w3.org/TR/custom-elements/#extensions-to-document-interface-to-instantiate"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="../../testcommon.js"></script> </head> <body> <div id="log"></div> <script> test(function() { var doc = newHTMLDocument(); var name = 'x-a'; doc.registerElement(name); var customElement = doc.createElement(name); assert_equals(customElement.namespaceURI, HTML_NAMESPACE, 'Custom element namespace should be HTML Namespace'); }, 'Test Document.createElement() sets custom element namespace to HTML Namespace'); test(function() { var doc = newHTMLDocument(); var name = 'x-b'; var customElement = doc.createElement(name); assert_equals(customElement.namespaceURI, HTML_NAMESPACE, 'Custom element namespace should be HTML Namespace'); }, 'Test Document.createElement() sets custom element namespace to HTML Namespace ' + 'and an element definition with matching localName, namespace, and type is not registered'); test(function() { var doc = newHTMLDocument(); HTML5_ELEMENTS.forEach(function(tagName) { var obj = doc.createElement(tagName); var name = 'x-c-' + tagName; var proto = Object.create(obj.constructor.prototype); doc.registerElement(name, { prototype: Object.create(proto), extends: tagName }); var customElement = doc.createElement(tagName, name); assert_equals(customElement.namespaceURI, HTML_NAMESPACE, 'Custom element namespace for the element extending ' + tagName + ' should be HTML Namespace'); }); }, 'Document.createElement() sets custom element namespace to HTML Namespace. ' + 'Custom element is extending standard HTML tag'); test(function() { var doc = newHTMLDocument(); HTML5_ELEMENTS.forEach(function(tagName) { var name = 'x-d-' + tagName; var customElement = doc.createElement(tagName, name); assert_equals(customElement.namespaceURI, HTML_NAMESPACE, 'Custom element namespace for the element with tag name ' + tagName + ' and type name ' + name + ' should be HTML Namespace'); }); }, 'Document.createElement() sets custom element namespace to HTML Namespace. ' + 'Document.createElement() is called with standard HTML tag name and ' + 'type without registered custom element of such type'); </script> </body> </html>