<!DOCTYPE html>
<html>
<head>
<title>Custom element local name should be converted to lower case if document is an HTML document</title>
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="assert" content="If DOCUMENT is an HTML document, convert NAME to lowercase">
<link rel="help" href="http://www.w3.org/TR/custom-elements/#registering-custom-elements">
<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();
    HTML5_ELEMENTS.forEach(function(tagName) {
        var obj = doc.createElement(tagName);
        var name = 'x-a-' + tagName;
        var proto = Object.create(obj.constructor.prototype);
        var GeneratedConstructor = doc.registerElement(name, {
            prototype: proto,
            extends: tagName.toUpperCase()
        });
        var customElement = new GeneratedConstructor();

        assert_equals(customElement.localName, tagName, 'Local name should be lowercased');
    });
}, 'Custom element local name should be lowercased if document is an HTML document');
</script>
</body>
</html>
