| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>HTML Templates: The template contents is a DocumentFragment</title> |
| <meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> |
| <meta name="assert" content="The template contents must be a DocumentFragment"> |
| <link rel="help" href="http://www.w3.org/TR/2013/WD-html-templates-20130214/#definitions"> |
| <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(); |
| var template = doc.createElement('template'); |
| |
| doc.body.appendChild(template); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a DocumentFragment'); |
| |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| }, 'The template contents must be a DocumentFragment (empty template)'); |
| |
| |
| test(function() { |
| var doc = newHTMLDocument(); |
| var template = doc.createElement('template'); |
| |
| template.innerHTML = '<div>This is a div</div><span>This is a span</span>'; |
| |
| doc.body.appendChild(template); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a DocumentFragment'); |
| |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| }, 'The template contents must be a DocumentFragment (non empty template)'); |
| |
| |
| |
| test(function() { |
| var doc = newHTMLDocument(); |
| var template = doc.createElement('template'); |
| |
| template.innerHTML = '<div>This is a div</div>'; |
| |
| doc.body.appendChild(template); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a documentFragment'); |
| |
| }, 'The template contents must be a DocumentFragment (non empty template ' |
| + 'containing div which is an Element instance)'); |
| |
| |
| test(function() { |
| var doc = newHTMLDocument(); |
| var template = doc.createElement('template'); |
| |
| template.innerHTML = 'Some text'; |
| |
| doc.body.appendChild(template); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a documentFragment'); |
| |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| }, 'The template contents must be a DocumentFragment (not empty template ' |
| + 'containing text node)'); |
| |
| |
| test(function() { |
| var doc = newHTMLDocument(); |
| var template = doc.createElement('template'); |
| |
| template.innerHTML = '<template id="t2">Some text</template>'; |
| |
| doc.body.appendChild(template); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a documentFragment'); |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| var nestedTemplate = template.content.querySelector("#t2"); |
| assert_equals(nestedTemplate.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Nested template content should be a documentFragment'); |
| |
| assert_class_string(nestedTemplate.content, 'DocumentFragment', |
| 'Nested template content class should be a DocumentFragment'); |
| |
| |
| }, 'The template contents must be a DocumentFragment (nested template ' |
| + 'containing a text node)'); |
| |
| |
| testInIFrame('../resources/template-contents-empty.html', function(context) { |
| var doc = context.iframes[0].contentDocument; |
| |
| var template = doc.querySelector('template'); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a documentFragment'); |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| |
| }, 'The template contents must be a DocumentFragment (the empty template tag ' |
| + 'inside HTML file loaded in iframe)'); |
| |
| |
| testInIFrame('../resources/template-contents.html', function(context) { |
| var doc = context.iframes[0].contentDocument; |
| |
| var template = doc.querySelector('template'); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a documentFragment'); |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| }, 'The template contents must be a DocumentFragment (non empty template ' |
| + 'tag inside HTML file loaded in iframe)'); |
| |
| |
| testInIFrame('../resources/template-contents-text.html', function(context) { |
| var doc = context.iframes[0].contentDocument; |
| |
| var template = doc.querySelector('template'); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a documentFragment'); |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| }, 'The template contents must be a DocumentFragment (the template tag ' |
| + 'with some text inside HTML file loaded in iframe)'); |
| |
| |
| testInIFrame('../resources/template-contents-nested.html', function(context) { |
| var doc = context.iframes[0].contentDocument; |
| |
| var template = doc.querySelector('template'); |
| |
| assert_equals(template.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Template content should be a documentFragment'); |
| assert_class_string(template.content, 'DocumentFragment', |
| 'Template content class should be a DocumentFragment'); |
| |
| var nestedTemplate = template.content.querySelector("template"); |
| |
| assert_equals(nestedTemplate.content.nodeType, Node.DOCUMENT_FRAGMENT_NODE, |
| 'Nested template content should be a documentFragment'); |
| assert_class_string(nestedTemplate.content, 'DocumentFragment', |
| 'Nested template content class should be a DocumentFragment'); |
| |
| }, 'The template contents must be a DocumentFragment (the template tag ' |
| + 'with nested template tag inside HTML file loaded in iframe)'); |
| </script> |
| </body> |
| </html> |