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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: LayoutTests/imported/web-platform-tests/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/non-element-nodes-001.html
diff --git a/LayoutTests/imported/web-platform-tests/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/non-element-nodes-001.html b/LayoutTests/imported/web-platform-tests/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/non-element-nodes-001.html
new file mode 100644
index 0000000000000000000000000000000000000000..c58072fa7e2170eefb5f50520595ad551376d5c7
--- /dev/null
+++ b/LayoutTests/imported/web-platform-tests/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/non-element-nodes-001.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<!--
+Distributed under both the W3C Test Suite License [1] and the W3C
+3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
+policies and contribution forms [3].
+
+[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
+[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
+[3] http://www.w3.org/2004/10/27-testcases
+ -->
+<html>
+<head>
+<title>Shadow DOM Test: Non-element node cannot be a shadow host</title>
+<link rel="author" title="Aleksei Yu. Semenov" href="mailto:sgrekhov@unipro.ru">
+<link rel="author" title="Mikhail Fursov" href="mailto:mfursov@unipro.ru">
+<link rel="author" title="Yuta Kitamura" href="mailto:yutak@google.com">
+<link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#partial-element-methods">
+<meta name="assert" content="Nodes, that are not elements, are not allowed to become shadow hosts.">
+<script src="../../../../../../resources/testharness.js"></script>
+<script src="../../../../../../resources/testharnessreport.js"></script>
+<script src="../../../testcommon.js"></script>
+<link rel="stylesheet" href="../../../../../../resources/testharness.css">
+</head>
+<body>
+<div id="log"></div>
+<script>
+var XHTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
+
+function createTextNode() {
+ var doc = document.implementation.createHTMLDocument('Test Document');
+ var node = doc.createTextNode('Text Node');
+ doc.body.appendChild(node);
+ return node;
+}
+
+function createCommentNode() {
+ var doc = document.implementation.createHTMLDocument('Test Document');
+ var node = doc.createComment('Comment Node');
+ doc.body.appendChild(node);
+ return node;
+}
+
+function createCDATASectionNode() {
+ var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
+ var node = doc.createCDATASection('CDATA Section Node');
+ doc.documentElement.appendChild(node);
+ return node;
+}
+
+function createAttributeNode() {
+ var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
+ var node = doc.createAttribute('attribute-node');
+ doc.documentElement.setAttributeNode(node);
+ return node;
+}
+
+function createDocumentFragmentNode() {
+ var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
+ var node = doc.createDocumentFragment();
+ doc.documentElement.appendChild(node);
+ return node;
+}
+
+function createEntityReferenceNode() {
+ var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
+ var node = doc.createEntityReference('entity-reference-node');
+ doc.documentElement.appendChild(node);
+ return node;
+}
+
+function createProcessingInstructionNode() {
+ var doc = document.implementation.createDocument(XHTML_NAMESPACE, 'html');
+ var node = doc.createProcessingInstruction('processing-instruction-node');
+ doc.documentElement.appendChild(node);
+ return node;
+}
+
+function createDocumentNode() {
+ return document.implementation.createDocument(XHTML_NAMESPACE, 'html');
+}
+
+var factories = [
+ ['a text node', createTextNode],
+ ['a comment node', createCommentNode],
+ ['a CDATA section node', createCDATASectionNode],
+ ['an attribute node', createAttributeNode],
+ ['a document fragment node', createDocumentFragmentNode],
+ ['an entity reference node', createEntityReferenceNode],
+ ['a processing instruction node', createProcessingInstructionNode],
+ ['a document node', createDocumentNode]
+];
+
+// Non-element nodes should not have createShadowRoot() method.
+var noCreateShadowRootTestParameters = factories.map(
+ function (nameAndFactory) {
+ var name = nameAndFactory[0];
+ var factory = nameAndFactory[1];
+ return [
+ 'Checks whether ' + name + ' does not have createShadowRoot() ' +
+ 'method.',
+ factory
+ ];
+ });
+
+function testNoCreateShadowRoot(factory) {
+ var node = factory();
+ assert_equals(node.createShadowRoot, undefined);
+}
+
+generate_tests(testNoCreateShadowRoot, noCreateShadowRootTestParameters);
+
+// When createShadowRoot() is called on non-element nodes, it should throw
+// InvalidNodeTypeError (step 1 of section 10.2.2).
+function testThrowInvalidNodeTypeError(factory) {
+ var node = factory();
+ node.createShadowRoot = Element.prototype.createShadowRoot;
+ assert_throws('InvalidNodeTypeError',
+ function () { node.createShadowRoot(); });
+}
+
+var throwInvalidNodeTypeErrorTestParameters = factories.map(
+ function (nameAndFactory) {
+ var name = nameAndFactory[0];
+ var factory = nameAndFactory[1];
+ return [
+ 'When createShadowRoot() is called on ' + name + ', ' +
+ 'InvalidNodeTypeError should be thrown.',
+ factory
+ ];
+ });
+
+generate_tests(testThrowInvalidNodeTypeError,
+ throwInvalidNodeTypeErrorTestParameters);
+</script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698