tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>