<!DOCTYPE html>
<html>
<head>
<title>HTML Templates: Template is not a foster parent element</title>
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="assert" content="When template element shouldn't be a foster parent then regular rules of foster parenting should be applied">
<link rel="help" href="http://www.w3.org/TR/2013/WD-html-templates-20130214/#foster-parent-addition">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/resources/common.js"></script>
<link rel="stylesheet" href="/resources/testharness.css">
</head>
<body>
<div id="log"></div>
<script type="text/javascript">


test(function () {
    var doc = newHTMLDocument();

    doc.body.innerHTML = '' +
    '<div id="tmplParent">' +
        '<template id="tmpl1">' +
            '<div id="fosterParent">' +
                '<table id="tbl">' +
                    '<tr><td>Cell 1</td></tr>' +
                // Misplaced <div>. It should be foster parented
                '<div id="orphanDiv">Orphan div content</div>' +
                    '<tr><td>Cell 2</td></tr>' +
                '</table>' +
            '</div>' +
        '</template>' +
    '</div>';

    var template = doc.querySelector('#tmpl1');
    var fosterParent = template.content.querySelector('#fosterParent');
    var div = template.content.querySelector('#orphanDiv');

    assert_equals(div.parentNode, fosterParent, 'Wrong foster parent element');

}, 'Template is not a foster parent element. '
    + 'Test the case when <template> is higher in stack of open elements');



test(function () {
    var doc = newHTMLDocument();

    doc.body.innerHTML = '' +
            '<div id="fosterParent">' +
                '<table id="tbl">' +
                    '<tr><td><template id="tmpl1">Template content</template></td></tr>' +
                // Misplaced <div>. It should be foster parented
                '<div id="orphanDiv">Orphan div content</div>' +
                    '<tr><td>Cell 2</td></tr>' +
                '</table>' +
            '</div>' +
    '</div>';

    var t = doc.querySelector('#tmpl1');
    var fosterParent = doc.querySelector('#fosterParent');
    var div = doc.querySelector('#orphanDiv');

    assert_equals(div.parentNode, fosterParent, 'Wrong foster parent element');

}, 'Template is not a foster parent element. '
    + 'Test the case when <template> is lower in stack of open elements');

</script>
</body>
</html>
