<!DOCTYPE html>
<html>
<body>
<template id="outerTemplate"><template id="innerTemplate"><span>Contents</span></template></template>
<iframe></iframe>
<script src="../../../resources/js-test-pre.js"></script>
<script>

description('Test that template contents are cloned when the template element is imported via importNode');

if (!window.HTMLTemplateElement)
    testFailed('This test requires ENABLE(TEMPLATE_ELEMENT)');

var anotherDocument = document.querySelector('iframe').contentDocument;

var outerTemplate = document.getElementById('outerTemplate');
evalAndLog('importedOuterTemplate = anotherDocument.importNode(outerTemplate, true)');
shouldBe('outerTemplate.ownerDocument', 'document');
shouldBe('importedOuterTemplate.ownerDocument', 'anotherDocument');
shouldNotBe('importedOuterTemplate.content', 'outerTemplate.content');
shouldBe('importedOuterTemplate.content.childNodes.length', '1');
evalAndLog('innerTemplate = outerTemplate.content.firstChild');
evalAndLog('importedInnerTemplate = importedOuterTemplate.content.firstChild');
shouldBe('importedInnerTemplate.outerHTML', 'innerTemplate.outerHTML');
shouldNotBe('innerTemplate.ownerDocument', 'importedInnerTemplate.ownerDocument');
shouldNotBe('importedInnerTemplate.content', 'innerTemplate.content');
shouldBe('innerTemplate.content.childNodes.length', '1');
shouldBe('importedInnerTemplate.content.childNodes.length', '1');
shouldBe('innerTemplate.content.firstChild.outerHTML', 'importedInnerTemplate.content.firstChild.outerHTML');

var successfullyParsed = true;

</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
