tor-browser

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

ChildNode-replaceWith.html (4254B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>ChildNode.replaceWith</title>
      4 <link rel=help href="https://dom.spec.whatwg.org/#dom-childnode-replaceWith">
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script>
      8 
      9 function test_replaceWith(child, nodeName, innerHTML) {
     10 
     11    test(function() {
     12        var parent = document.createElement('div');
     13        parent.appendChild(child);
     14        child.replaceWith();
     15        assert_equals(parent.innerHTML, '');
     16    }, nodeName + '.replaceWith() without any argument.');
     17 
     18    test(function() {
     19        var parent = document.createElement('div');
     20        parent.appendChild(child);
     21        child.replaceWith(null);
     22        assert_equals(parent.innerHTML, 'null');
     23    }, nodeName + '.replaceWith() with null as an argument.');
     24 
     25    test(function() {
     26        var parent = document.createElement('div');
     27        parent.appendChild(child);
     28        child.replaceWith(undefined);
     29        assert_equals(parent.innerHTML, 'undefined');
     30    }, nodeName + '.replaceWith() with undefined as an argument.');
     31 
     32    test(function() {
     33        var parent = document.createElement('div');
     34        parent.appendChild(child);
     35        child.replaceWith('');
     36        assert_equals(parent.innerHTML, '');
     37    }, nodeName + '.replaceWith() with empty string as an argument.');
     38 
     39    test(function() {
     40        var parent = document.createElement('div');
     41        parent.appendChild(child);
     42        child.replaceWith('text');
     43        assert_equals(parent.innerHTML, 'text');
     44    }, nodeName + '.replaceWith() with only text as an argument.');
     45 
     46    test(function() {
     47        var parent = document.createElement('div');
     48        var x = document.createElement('x');
     49        parent.appendChild(child);
     50        child.replaceWith(x);
     51        assert_equals(parent.innerHTML, '<x></x>');
     52    }, nodeName + '.replaceWith() with only one element as an argument.');
     53 
     54    test(function() {
     55        var parent = document.createElement('div');
     56        var x = document.createElement('x');
     57        var y = document.createElement('y');
     58        var z = document.createElement('z');
     59        parent.appendChild(y);
     60        parent.appendChild(child);
     61        parent.appendChild(x);
     62        child.replaceWith(x, y, z);
     63        assert_equals(parent.innerHTML, '<x></x><y></y><z></z>');
     64    }, nodeName + '.replaceWith() with sibling of child as arguments.');
     65 
     66    test(function() {
     67        var parent = document.createElement('div');
     68        var x = document.createElement('x');
     69        parent.appendChild(child);
     70        parent.appendChild(x);
     71        parent.appendChild(document.createTextNode('1'));
     72        child.replaceWith(x, '2');
     73        assert_equals(parent.innerHTML, '<x></x>21');
     74    }, nodeName + '.replaceWith() with one sibling of child and text as arguments.');
     75 
     76    test(function() {
     77        var parent = document.createElement('div');
     78        var x = document.createElement('x');
     79        parent.appendChild(child);
     80        parent.appendChild(x);
     81        parent.appendChild(document.createTextNode('text'));
     82        child.replaceWith(x, child);
     83        assert_equals(parent.innerHTML, '<x></x>' + innerHTML + 'text');
     84    }, nodeName + '.replaceWith() with one sibling of child and child itself as arguments.');
     85 
     86    test(function() {
     87        var parent = document.createElement('div');
     88        var x = document.createElement('x');
     89        parent.appendChild(child);
     90        child.replaceWith(x, 'text');
     91        assert_equals(parent.innerHTML, '<x></x>text');
     92    }, nodeName + '.replaceWith() with one element and text as arguments.');
     93 
     94    test(function() {
     95        var parent = document.createElement('div');
     96        var x = document.createElement('x');
     97        var y = document.createElement('y');
     98        parent.appendChild(x);
     99        parent.appendChild(y);
    100        child.replaceWith(x, y);
    101        assert_equals(parent.innerHTML, '<x></x><y></y>');
    102    }, nodeName + '.replaceWith() on a parentless child with two elements as arguments.');
    103 }
    104 
    105 test_replaceWith(document.createComment('test'), 'Comment', '<!--test-->');
    106 test_replaceWith(document.createElement('test'), 'Element', '<test></test>');
    107 test_replaceWith(document.createTextNode('test'), 'Text', 'test');
    108 
    109 </script>
    110 </html>