template-is-a-foster-parent-element.html (2175B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>HTML Templates: Template is a foster parent element</title> 5 <meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> 6 <meta name="assert" content="The last template element with either no table element is below it, or a table element immediately below it, in the stack of open elements is the foster parent element (NOT the template's parent!)"> 7 <link rel="help" href="http://www.w3.org/TR/2013/WD-html-templates-20130214/#foster-parent-addition"> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="/html/resources/common.js"></script> 11 </head> 12 <body> 13 <div id="log"></div> 14 <script type="text/javascript"> 15 16 17 test(function () { 18 var doc = newHTMLDocument(); 19 20 doc.body.innerHTML = '' + 21 '<div id="tmplParent">' + 22 '<template id="tmpl1">' + 23 '<table id="tbl">' + 24 '<tr><td>Cell 1</td></tr>' + 25 // Misplaced <div>. It should be foster parented 26 '<div id="orphanDiv">Orphan div content</div>' + 27 '<tr><td>Cell 2</td></tr>' + 28 '</table>' + 29 '</template>' + 30 '</div>'; 31 32 var template = doc.querySelector('#tmpl1'); 33 var div = template.content.querySelector('#orphanDiv'); 34 35 assert_equals(div.parentNode, template.content, 'Wrong foster parent element'); 36 37 }, 'Template is a foster parent element. Test <table> immediately below <template>'); 38 39 40 41 test(function () { 42 var doc = newHTMLDocument(); 43 44 doc.body.innerHTML = '' + 45 '<div id="tmplParent">' + 46 '<template id="tmpl1">' + 47 '<tr><td>Cell 1</td></tr>' + 48 // Misplaced <div>. It should be foster parented 49 '<div id="orphanDiv">Orphan div content</div>' + 50 '<tr><td>Cell 2</td></tr>' + 51 '</template>' + 52 '</div>'; 53 54 var template = doc.querySelector('#tmpl1'); 55 var div = template.content.querySelector('#orphanDiv'); 56 57 assert_equals(div.parentNode, template.content, 'Wrong foster parent element'); 58 59 }, 'Template is a foster parent element. Test <template> element without <table>'); 60 61 </script> 62 </body> 63 </html>