tor-browser

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

insert-adjacent.html (2488B)


      1 <!doctype html>
      2 <meta charset="utf-8">
      3 <title></title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <style>
      7 #element {
      8  display: none;
      9 }
     10 </style>
     11 
     12 <div id="element"></div>
     13 <div id="log"></div>
     14 
     15 <script>
     16 var possiblePositions = {
     17    'beforebegin': 'previousSibling'
     18  , 'afterbegin': 'firstChild'
     19  , 'beforeend': 'lastChild'
     20  , 'afterend': 'nextSibling'
     21 }
     22 var texts = {
     23   'beforebegin': 'raclette'
     24  , 'afterbegin': 'tartiflette'
     25  , 'beforeend': 'lasagne'
     26  , 'afterend': 'gateau aux pommes'
     27 }
     28 
     29 var el = document.querySelector('#element');
     30 
     31 Object.keys(possiblePositions).forEach(function(position) {
     32  var div = document.createElement('h3');
     33  test(function() {
     34    div.id = texts[position];
     35    el.insertAdjacentElement(position, div);
     36    assert_equals(el[possiblePositions[position]].id, texts[position]);
     37  }, 'insertAdjacentElement(' + position + ', ' + div + ' )');
     38 
     39  test(function() {
     40    el.insertAdjacentText(position, texts[position]);
     41    assert_equals(el[possiblePositions[position]].textContent, texts[position]);
     42  }, 'insertAdjacentText(' + position + ', ' + texts[position] + ' )');
     43 });
     44 
     45 test(function() {
     46  assert_throws_js(TypeError, function() {
     47    el.insertAdjacentElement('afterbegin',
     48    document.implementation.createDocumentType("html"))
     49  })
     50 }, 'invalid object argument insertAdjacentElement')
     51 test(function() {
     52  var el = document.implementation.createHTMLDocument().documentElement;
     53  assert_throws_dom("HIERARCHY_REQUEST_ERR", function() {
     54    el.insertAdjacentElement('beforebegin', document.createElement('banane'))
     55  })
     56 }, 'invalid caller object insertAdjacentElement')
     57 test(function() {
     58  var el = document.implementation.createHTMLDocument().documentElement;
     59  assert_throws_dom("HIERARCHY_REQUEST_ERR", function() {
     60    el.insertAdjacentText('beforebegin', 'tomate farcie')
     61  })
     62 }, 'invalid caller object insertAdjacentText')
     63 test(function() {
     64  var div = document.createElement('h3');
     65  assert_throws_dom("SYNTAX_ERR", function() {
     66    el.insertAdjacentElement('heeeee', div)
     67  })
     68 }, "invalid syntax for insertAdjacentElement")
     69 test(function() {
     70  assert_throws_dom("SYNTAX_ERR", function() {
     71    el.insertAdjacentText('hoooo', 'magret de canard')
     72  })
     73 }, "invalid syntax for insertAdjacentText")
     74 test(function() {
     75  var div = document.createElement('div');
     76  assert_equals(div.insertAdjacentElement("beforebegin", el), null);
     77 }, 'insertAdjacentText should return null');
     78 
     79 </script>