<!DOCTYPE html>
<html>
<head>
<title>Document.createElement() and Document.createElementNS() create custom element of type, specified by localName argument</title>
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="assert" content="If an element definition with matching localName, namespace, and TYPE is not registered with token's document, set TYPE to localName">
<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>
<link rel="stylesheet" href="/resources/testharness.css">
</head>
<body>
<div id="log"></div>
<script>
test(function() {
    var doc = newHTMLDocument();
    var name1 = 'x-a';
    var name2 = 'x-b';
    var GeneratedConstructor = doc.registerElement(name1);
    var customElement = doc.createElement(name1, name2);

    assert_equals(Object.getPrototypeOf(customElement), GeneratedConstructor.prototype,
        'Custom element type should be the local name of the custom element');
}, 'Test Document.createElement() creates custom element of type, ' +
    'specified by localName argument, if an element definition with matching localName, ' +
    'namespace, and type is not registered');


test(function() {
    var doc = newHTMLDocument();
    var name1 = 'x-c';
    var name2 = 'x-d';
    var GeneratedConstructor = doc.registerElement(name1);
    var customElement = doc.createElementNS(HTML_NAMESPACE, name1, name2);

    assert_equals(Object.getPrototypeOf(customElement), GeneratedConstructor.prototype,
        'Custom element type should be the local name of the custom element');
}, 'Test Document.createElementNS() creates custom element of type, ' +
    'specified by localName argument, if an element definition with matching ' +
    'localName, namespace, and type is not registered');
</script>
</body>
</html>
