<!DOCTYPE html>
<html>
<head>
<title>HTML Templates: Template element as a descendant of the frameset element.</title>
<meta name="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru">
<meta name="assert" content="Template element can not be a descendant of the frameset element">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#parsing-main-inframeset">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src='/html/resources/common.js'></script>
</head>
<body>
<div id="log"></div>
<script type="text/javascript">

testInIFrame('../resources/template-descendant-frameset.html', function(context) {
    var doc = context.iframes[0].contentDocument;

    var frameset = doc.querySelector('frameset');

    assert_equals(frameset.querySelector('template'), null,
        'Template element should not be a descendant of the frameset element');

}, 'Template element as a descendant of the frameset element. Test loading from a file');


testInIFrame('../resources/template-descendant-frameset.html', function(context) {
    var doc = context.iframes[0].contentDocument;

    var frameset = doc.querySelector('frameset');

    frameset.innerHTML = '';
    assert_equals(doc.querySelector('template'), null,
            'Initial conditions are not satisfied');

    frameset.innerHTML = '<template>some text</template>';

    assert_equals(frameset.querySelector('template'), null,
        'Template element should not be a descendant of the frameset element');

}, 'Template element as a descendant of the frameset element. '
    + 'Test template element is assigned to frameset\'s innerHTML)');


testInIFrame('../resources/template-descendant-frameset.html', function(context) {
    var doc = context.iframes[0].contentDocument;

    var frameset = doc.querySelector('frameset');

    var template = doc.createElement('template');
    frameset.appendChild(template);

    assert_equals(frameset.querySelectorAll('template').length, 1,
        'Template element should be a descendant of the frameset element');

}, 'Template element as a descendant of the frameset element. '
    + 'Test template element appended to frameset by appendChild()');


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