Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Side by Side Diff: LayoutTests/imported/web-platform-tests/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/non-element-nodes-001.html

Issue 560893005: First checked-in import of the W3C's test suites. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: add new expectations for newly failing w3c tests Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <!--
3 Distributed under both the W3C Test Suite License [1] and the W3C
4 3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
5 policies and contribution forms [3].
6
7 [1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
8 [2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
9 [3] http://www.w3.org/2004/10/27-testcases
10 -->
11 <html>
12 <head>
13 <title>Shadow DOM Test: Non-element node cannot be a shadow host</title>
14 <link rel="author" title="Aleksei Yu. Semenov" href="mailto:sgrekhov@unipro.ru">
15 <link rel="author" title="Mikhail Fursov" href="mailto:mfursov@unipro.ru">
16 <link rel="author" title="Yuta Kitamura" href="mailto:yutak@google.com">
17 <link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#partial -element-methods">
18 <meta name="assert" content="Nodes, that are not elements, are not allowed to be come shadow hosts.">
19 <script src="../../../../../../resources/testharness.js"></script>
20 <script src="../../../../../../resources/testharnessreport.js"></script>
21 <script src="../../../testcommon.js"></script>
22 <link rel="stylesheet" href="../../../../../../resources/testharness.css">
23 </head>
24 <body>
25 <div id="log"></div>
26 <script>
27 var XHTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
28
29 function createTextNode() {
30 var doc = document.implementation.createHTMLDocument('Test Document');
31 var node = doc.createTextNode('Text Node');
32 doc.body.appendChild(node);
33 return node;
34 }
35
36 function createCommentNode() {
37 var doc = document.implementation.createHTMLDocument('Test Document');
38 var node = doc.createComment('Comment Node');
39 doc.body.appendChild(node);
40 return node;
41 }
42
43 function createCDATASectionNode() {
44 var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
45 var node = doc.createCDATASection('CDATA Section Node');
46 doc.documentElement.appendChild(node);
47 return node;
48 }
49
50 function createAttributeNode() {
51 var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
52 var node = doc.createAttribute('attribute-node');
53 doc.documentElement.setAttributeNode(node);
54 return node;
55 }
56
57 function createDocumentFragmentNode() {
58 var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
59 var node = doc.createDocumentFragment();
60 doc.documentElement.appendChild(node);
61 return node;
62 }
63
64 function createEntityReferenceNode() {
65 var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
66 var node = doc.createEntityReference('entity-reference-node');
67 doc.documentElement.appendChild(node);
68 return node;
69 }
70
71 function createProcessingInstructionNode() {
72 var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
73 var node = doc.createProcessingInstruction('processing-instruction-node');
74 doc.documentElement.appendChild(node);
75 return node;
76 }
77
78 function createDocumentNode() {
79 return document.implementation.createDocument(XHTML_NAMESPACE, 'html');
80 }
81
82 var factories = [
83 ['a text node', createTextNode],
84 ['a comment node', createCommentNode],
85 ['a CDATA section node', createCDATASectionNode],
86 ['an attribute node', createAttributeNode],
87 ['a document fragment node', createDocumentFragmentNode],
88 ['an entity reference node', createEntityReferenceNode],
89 ['a processing instruction node', createProcessingInstructionNode],
90 ['a document node', createDocumentNode]
91 ];
92
93 // Non-element nodes should not have createShadowRoot() method.
94 var noCreateShadowRootTestParameters = factories.map(
95 function (nameAndFactory) {
96 var name = nameAndFactory[0];
97 var factory = nameAndFactory[1];
98 return [
99 'Checks whether ' + name + ' does not have createShadowRoot() ' +
100 'method.',
101 factory
102 ];
103 });
104
105 function testNoCreateShadowRoot(factory) {
106 var node = factory();
107 assert_equals(node.createShadowRoot, undefined);
108 }
109
110 generate_tests(testNoCreateShadowRoot, noCreateShadowRootTestParameters);
111
112 // When createShadowRoot() is called on non-element nodes, it should throw
113 // InvalidNodeTypeError (step 1 of section 10.2.2).
114 function testThrowInvalidNodeTypeError(factory) {
115 var node = factory();
116 node.createShadowRoot = Element.prototype.createShadowRoot;
117 assert_throws('InvalidNodeTypeError',
118 function () { node.createShadowRoot(); });
119 }
120
121 var throwInvalidNodeTypeErrorTestParameters = factories.map(
122 function (nameAndFactory) {
123 var name = nameAndFactory[0];
124 var factory = nameAndFactory[1];
125 return [
126 'When createShadowRoot() is called on ' + name + ', ' +
127 'InvalidNodeTypeError should be thrown.',
128 factory
129 ];
130 });
131
132 generate_tests(testThrowInvalidNodeTypeError,
133 throwInvalidNodeTypeErrorTestParameters);
134 </script>
135 </body>
136 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698