| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 
 | <!DOCTYPE html>
<html>
<head>
<title>HTML Templates: serialize template contents instead of template element</title>
<meta name="author" title="Aleksei Yu. Semenov" href="a.semenov@unipro.ru">
<meta name="assert" content="Template contents should be serialized instead of template element if serializing template element in XHTML document">
<link rel="help" href="http://www.w3.org/TR/2013/WD-html-templates-20130214/#serializing-xhtml-documents">
<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">
test(function () {
    var doc = newXHTMLDocument();
    var template = doc.createElement('template');
    var div = doc.createElement('div');
    div.setAttribute('id', 'div1');
    div.innerHTML = 'some text';
    template.content.appendChild(div);
    assert_equals(template.outerHTML, '<template xmlns="http://www.w3.org/1999/xhtml"><div id="div1">some text</div></template>',
       'template element is serialized incorrectly');
}, 'Template contents should be serialized instead of template element if serializing template element');
test(function () {
    var doc = newXHTMLDocument();
    var template = doc.createElement('template');
    var nestedTemplate = doc.createElement('template');
    template.content.appendChild(nestedTemplate);
    var div = doc.createElement('div');
    div.setAttribute('id', 'div1');
    div.innerHTML = 'some text';
    nestedTemplate.content.appendChild(div);
    assert_equals(template.outerHTML, '<template xmlns="http://www.w3.org/1999/xhtml"><template><div id="div1">some text</div></template></template>',
       'template element is serialized incorrectly');
}, 'Template contents should be serialized instead of template element if serializing template element. '
    + 'Test nested template');
test(function () {
    var doc = newXHTMLDocument();
    var template = doc.createElement('template');
    var div = doc.createElement('div');
    div.setAttribute('id', 'div1');
    div.innerHTML = 'some text';
    template.content.appendChild(div);
    doc.body = doc.createElement('body');
    doc.body.appendChild(template);
    assert_equals(doc.documentElement.outerHTML, '<html xmlns="http://www.w3.org/1999/xhtml"><body><template><div id="div1">some text</div></template></body></html>',
       'template element is serialized incorrectly');
}, 'Template contents should be serialized instead of template element if serializing template element. '
    + 'Test serializing whole document');
</script>
</body>
</html>
 |