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

Unified Diff: third_party/WebKit/LayoutTests/imported/wpt/shadow-dom/Slotable-interface.html

Issue 2360123002: Import wpt@3801ab5834101113e5f53bfb57e3c76b2b87ecbb (Closed)
Patch Set: Mark the failing test to Win only Created 4 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: third_party/WebKit/LayoutTests/imported/wpt/shadow-dom/Slotable-interface.html
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/shadow-dom/Slotable-interface.html b/third_party/WebKit/LayoutTests/imported/wpt/shadow-dom/Slotable-interface.html
new file mode 100644
index 0000000000000000000000000000000000000000..a7b97e8026743028c3132534aeec25a431025190
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/imported/wpt/shadow-dom/Slotable-interface.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Shadow DOM: Slotable interface</title>
+<meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org">
+<meta name="assert" content="Element and Text interfaces must implement Slotable interface">
+<link rel="help" href="https://dom.spec.whatwg.org/#slotable">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+
+test(function () {
+ assert_true('assignedSlot' in Element.prototype, 'assignedSlot must be defined on Element.prototype');
+ assert_true('assignedSlot' in document.createElement('div'), 'assignedSlot must be defined on a div element');
+
+ assert_true('assignedSlot' in Text.prototype, 'assignedSlot must be defined on Text.prototype');
+ assert_true('assignedSlot' in document.createTextNode(''), 'assignedSlot must be defined on a text node');
+ assert_false('assignedSlot' in document.createComment(''), 'assignedSlot must not be defined on a comment node');
+ assert_false('assignedSlot' in document.createProcessingInstruction('target', 'data'), 'assignedSlot must not be defined on a processing instruction node');
+
+}, 'assignedSlot attribute must be defined on Element and Text interfaces');
+
+test(function () {
+ assert_equals(document.createElement('div').assignedSlot, null, 'assignedSlot must be null when the element is not in any tree');
+
+ var shadowHost = document.createElement('div');
+ var shadowRoot = shadowHost.attachShadow({mode: 'open'});
+
+ var childElement = document.createElement('b');
+ shadowHost.appendChild(childElement);
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must be null when a node is not assigned of any slot');
+
+ var childTextNode = document.createTextNode('');
+ shadowHost.appendChild(childTextNode);
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must be null when a node is not assigned of any slot');
+
+ var slot = document.createElement('slot');
+ slot.name = 'foo';
+ shadowRoot.appendChild(slot);
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must be null when a node does not match any slot');
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must be null when a node does not match any slot');
+
+}, 'assignedSlot must return null when the node does not have an assigned node');
+
+test(function () {
+ var shadowHost = document.createElement('div');
+ var childElement = document.createElement('b');
+ shadowHost.appendChild(childElement);
+
+ var childTextNode = document.createTextNode('');
+ shadowHost.appendChild(childTextNode);
+
+ var shadowRoot = shadowHost.attachShadow({mode: 'open'});
+ var slot = document.createElement('slot');
+ shadowRoot.appendChild(slot);
+
+ assert_equals(childElement.assignedSlot, slot, 'assignedSlot on an element must return the assigned default slot element');
+ assert_equals(childTextNode.assignedSlot, slot, 'assignedSlot on a text node must return the assigned default slot element');
+
+ slot.name = 'foo';
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must null when the element is unassigned from a slot element');
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must null when the node is unassigned from a slot element');
+
+ childElement.slot = 'foo';
+ assert_equals(childElement.assignedSlot, slot, 'assignedSlot on an element must return the re-assigned slot element');
+
+ slot.removeAttribute('name');
+ assert_equals(childTextNode.assignedSlot, slot, 'assignedSlot on a text node must return the re-assigned slot element');
+
+}, 'assignedSlot must return the assigned slot');
+
+test(function () {
+ var shadowHost = document.createElement('div');
+ var childElement = document.createElement('b');
+ shadowHost.appendChild(childElement);
+
+ var childTextNode = document.createTextNode('');
+ shadowHost.appendChild(childTextNode);
+
+ var shadowRoot = shadowHost.attachShadow({mode: 'closed'});
+ var slot = document.createElement('slot');
+ shadowRoot.appendChild(slot);
+
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must return null if the slot is inside a closed shadow tree.');
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must return null if the slot is inside a closed shadow tree.');
+
+}, 'assignedSlot must return null when the assigned slot element is inside a closed shadow tree');
+
+</script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698