Element.html (3325B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Custom Elements: CEReactions on Element interface</title> 5 <meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"> 6 <meta name="assert" content="id, className, slot, setAttribute, setAttributeNS, removeAttribute, removeAttributeNS, setAttributeNode, setAttributeNodeNS, removeAttributeNode, insertAdjacentElement, innerHTML, outerHTML, and insertAdjacentHTML of Element interface must have CEReactions"> 7 <meta name="help" content="https://dom.spec.whatwg.org/#element"> 8 <meta name="help" content="https://w3c.github.io/DOM-Parsing/"> 9 <script src="/resources/testharness.js"></script> 10 <script src="/resources/testharnessreport.js"></script> 11 <script src="../resources/custom-elements-helpers.js"></script> 12 <script src="./resources/reactions.js"></script> 13 </head> 14 <body> 15 <div id="log"></div> 16 <script> 17 18 testReflectAttribute('id', 'id', 'foo', 'bar', 'id on Element'); 19 testReflectAttribute('className', 'class', 'foo', 'bar', 'className on Element'); 20 testReflectAttribute('slot', 'slot', 'foo', 'bar', 'slot on Element'); 21 22 testAttributeAdder(function (element, name, value) { 23 element.setAttribute(name, value); 24 }, 'setAttribute on Element'); 25 26 testAttributeAdder(function (element, name, value) { 27 element.setAttributeNS(null, name, value); 28 }, 'setAttributeNS on Element'); 29 30 testAttributeRemover(function (element, name) { 31 element.removeAttribute(name); 32 }, 'removeAttribute on Element'); 33 34 testAttributeRemover(function (element, name) { 35 element.removeAttributeNS(null, name); 36 }, 'removeAttributeNS on Element'); 37 38 testAttributeRemover(function (element, name, value) { 39 if (element.hasAttribute(name)) 40 element.toggleAttribute(name); 41 }, 'toggleAttribute (only removes) on Element'); 42 43 testAttributeRemover(function (element, name, value) { 44 element.toggleAttribute(name, false); 45 }, 'toggleAttribute (force false) on Element'); 46 47 testAttributeAdder(function (element, name, value) { 48 var attr = document.createAttribute(name); 49 attr.value = value; 50 element.setAttributeNode(attr); 51 }, 'setAttributeNode on Element'); 52 53 testAttributeAdder(function (element, name, value) { 54 var attr = document.createAttribute(name); 55 attr.value = value; 56 element.setAttributeNodeNS(attr); 57 }, 'setAttributeNodeNS on Element'); 58 59 testAttributeRemover(function (element, name) { 60 var attr = element.getAttributeNode(name); 61 if (attr) 62 element.removeAttributeNode(element.getAttributeNode(name)); 63 }, 'removeAttributeNode on Element'); 64 65 testNodeConnector(function (newContainer, element) { 66 newContainer.insertAdjacentElement('afterBegin', element); 67 }, 'insertAdjacentElement on Element'); 68 69 testInsertingMarkup(function (newContainer, markup) { 70 newContainer.innerHTML = markup; 71 }, 'innerHTML on Element'); 72 73 testNodeDisconnector(function (customElement) { 74 customElement.parentNode.innerHTML = ''; 75 }, 'innerHTML on Element'); 76 77 testInsertingMarkup(function (newContainer, markup) { 78 newContainer.firstChild.outerHTML = markup; 79 }, 'outerHTML on Element'); 80 81 testNodeDisconnector(function (customElement) { 82 customElement.outerHTML = ''; 83 }, 'outerHTML on Element'); 84 85 testInsertingMarkup(function (newContainer, markup) { 86 newContainer.insertAdjacentHTML('afterBegin', markup); 87 }, 'insertAdjacentHTML on Element'); 88 89 </script> 90 </body> 91 </html>