mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 08:18:41 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue