<!DOCTYPE html>
<html>
<head>
<title>Unresolved element interface must be SVGElement, if the namespace is SVG Namespace</title>
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="author" title="Vasiliy Degtyarev" href="mailto:vasya@unipro.ru">
<meta name="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru">
<meta name="assert" content="When an unresolved element is created, it's element interface must be SVGElement if the namespace is SVG Namespace">
<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();
    var xsvg = doc.createElementNS(SVG_NAMESPACE, 'x-svg');

    assert_class_string(xsvg, 'SVGElement', 'Unresolved custom element must be a SVG element');
}, 'Test interface of unresolved element with valid name, created by Document.createElementNS()');


test(function() {
    var doc = newHTMLDocument();
    doc.body.innerHTML =
        '<svg xmlns=' + SVG_NAMESPACE + ' version="1.1">' +
            '<x-svg-a id="x-svg"></x-svg-a>' +
        '</svg>';
    var xsvg = doc.querySelector('#x-svg');

    assert_class_string(xsvg, 'SVGElement', 'Unresolved custom element must be a SVG element');
}, 'Test interface of unresolved element with valid name, created via innerHTML property');


testInIFrame('../resources/x-svg-element.html', function(doc) {
    var xsvg = doc.getElementById('x-svg-element');

    assert_not_equals(xsvg, null, 'Unresolved custom element should not be null');

    assert_class_string(xsvg, 'SVGElement',
        'Unresolved custom element must be a SVG element');
}, 'Test interface of unresolved element in loaded HTML document with embedded SVG elements');
</script>
</body>
</html>
