summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document.html
blob: 8676319b205905bb1613c795761059c4919eb58c (plain)
1
2
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html>
<html>
<head>
<title>HTML Templates: Parsing XHTML: Node's node document</title>
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru">
<meta name="assert" content="Parsing XHTML: Node's node document must be set to that of the element to which it will be appended">
<link rel="help" href="http://www.w3.org/TR/2013/WD-html-templates-20130214/#parsing-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();
    doc.body = doc.createElement('body');
    doc.body.innerHTML = '<template id="tmpl"></template>';

    var template = doc.querySelector('#tmpl');

    assert_not_equals(template, null, 'Template element should not be null');
    assert_not_equals(template.content, undefined,
            'Content attribute of template element should not be undefined');
    assert_not_equals(template.content, null,
            'Content attribute of template element should not be null');

    assert_equals(template.ownerDocument, doc.body.ownerDocument,
            'Wrong template node owner document');
    var ownerDoc = template.content.ownerDocument;
    assert_not_equals(ownerDoc, doc, 'Wrong template content owner document');
    assert_not_equals(ownerDoc, document, 'Wrong template content owner document');
    assert_equals(ownerDoc.defaultView, null,
            'Template content owner document should not have a browsing context');

}, 'Parsing XHTML: Node\'s node document must be set to that of the element '
    + 'to which it will be appended. Test empty template');



test(function() {
    var doc = newXHTMLDocument();

    doc.body = doc.createElement('body');
    doc.body.innerHTML = '<template id="tmpl"><div>Div content</div></template>';

    var template = doc.querySelector('#tmpl');

    assert_equals(template.ownerDocument, doc.body.ownerDocument,
            'Wrong template node owner document');

    assert_not_equals(template, null, 'Template element should not be null');
    assert_not_equals(template.content, undefined,
            'Content attribute of template element should not be undefined');
    assert_not_equals(template.content, null,
            'Content attribute of template element should not be null');

    var div = template.content.querySelector('div');
    assert_equals(template.content.ownerDocument, div.ownerDocument,
            'Wrong DIV node owner document');

}, 'Parsing XHTML: Node\'s node document must be set to that of the element '
    + 'to which it will be appended. Test not empty template');



test(function() {
    var doc = newXHTMLDocument();
    doc.body = doc.createElement('body');
    doc.body.innerHTML = ''
            + '<template id="tmpl"><div>Div content</div> And some more text'
            + '<template id="tmpl2"><div>Template content</div></template>'
            + '</template>';

    var template = doc.querySelector('#tmpl');
    assert_not_equals(template, null, 'Template element should not be null');
    assert_equals(template.ownerDocument, doc, 'Wrong template node owner document');
    assert_not_equals(template.content, undefined,
            'Content attribute of template element should not be undefined');
    assert_not_equals(template.content, null,
            'Content attribute of template element should not be null');

    var nestedTemplate = template.content.querySelector('#tmpl2');
    assert_not_equals(nestedTemplate, null, 'Nested template element should not be null');
    assert_not_equals(nestedTemplate.content, undefined,
            'Content attribute of nested template element should not be undefined');
    assert_not_equals(nestedTemplate.content, null,
            'Content attribute of nested template element should not be null');

    assert_equals(nestedTemplate.ownerDocument, template.content.ownerDocument,
            'Wrong nested template node owner document');


    var div = nestedTemplate.content.querySelector('div');
    assert_equals(nestedTemplate.content.ownerDocument, div.ownerDocument,
            'Wrong DIV node owner document');

}, 'Parsing XHTML: Node\'s node document must be set to that of the element '
    + 'to which it will be appended. Test nested templates');



testInIFrame('../resources/template-child-nodes-div.xhtml', function(context) {
    var doc = context.iframes[0].contentDocument;

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

    assert_equals(template.ownerDocument, doc, 'Wrong template node owner document');

    assert_not_equals(template.content, undefined,
            'Content attribute of template element should not be undefined');
    assert_not_equals(template.content, null,
            'Content attribute of template element should not be null');

    var div = template.content.querySelector('div');
    assert_equals(template.content.ownerDocument, div.ownerDocument,
            'Wrong DIV node owner document');

}, 'Parsing XHTML: Node\'s node document must be set to that of the element '
    + 'to which it will be appended. Test loading XHTML document from a file');



testInIFrame('../resources/template-child-nodes-nested.xhtml', function(context) {
    var doc = context.iframes[0].contentDocument;

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

    assert_equals(template.ownerDocument, doc, 'Wrong template node owner document');

    var nestedTemplate = template.content.querySelector('template');

    assert_equals(nestedTemplate.ownerDocument, template.content.ownerDocument,
            'Wrong template node owner document');

    var div = nestedTemplate.content.querySelector('div');
    assert_equals(nestedTemplate.content.ownerDocument, div.ownerDocument,
            'Wrong DIV node owner document');

}, 'Parsing XHTML: Node\'s node document must be set to that of the element '
    + 'to which it will be appended. Test loading of XHTML document '
    + 'with nested templates from a file');

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