tor-browser

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

NodeList-live-mutations.window.js (1929B)


      1 function testNodeList(name, hooks) {
      2  test(() => {
      3    const nodes = {
      4      root: document.createElement("div"),
      5      div1: document.createElement("div"),
      6      div2: document.createElement("div"),
      7      p: document.createElement("p")
      8    };
      9 
     10    const list = nodes.root.childNodes;
     11 
     12    hooks.initial(list, nodes);
     13 
     14    nodes.root.appendChild(nodes.div1);
     15    nodes.root.appendChild(nodes.p);
     16    nodes.root.appendChild(nodes.div2);
     17 
     18    hooks.afterInsertion(list, nodes);
     19 
     20    nodes.root.removeChild(nodes.div1);
     21 
     22    hooks.afterRemoval(list, nodes);
     23  }, `NodeList live mutations: ${name}`);
     24 }
     25 
     26 testNodeList("NodeList.length", {
     27  initial(list) {
     28    assert_equals(list.length, 0);
     29  },
     30  afterInsertion(list) {
     31    assert_equals(list.length, 3);
     32  },
     33  afterRemoval(list) {
     34    assert_equals(list.length, 2);
     35  }
     36 });
     37 
     38 testNodeList("NodeList.item(index)", {
     39  initial(list) {
     40    assert_equals(list.item(0), null);
     41  },
     42  afterInsertion(list, nodes) {
     43    assert_equals(list.item(0), nodes.div1);
     44    assert_equals(list.item(1), nodes.p);
     45    assert_equals(list.item(2), nodes.div2);
     46  },
     47  afterRemoval(list, nodes) {
     48    assert_equals(list.item(0), nodes.p);
     49    assert_equals(list.item(1), nodes.div2);
     50  }
     51 });
     52 
     53 testNodeList("NodeList[index]", {
     54  initial(list) {
     55    assert_equals(list[0], undefined);
     56  },
     57  afterInsertion(list, nodes) {
     58    assert_equals(list[0], nodes.div1);
     59    assert_equals(list[1], nodes.p);
     60    assert_equals(list[2], nodes.div2);
     61  },
     62  afterRemoval(list, nodes) {
     63    assert_equals(list[0], nodes.p);
     64    assert_equals(list[1], nodes.div2);
     65  }
     66 });
     67 
     68 testNodeList("NodeList ownPropertyNames", {
     69  initial(list) {
     70    assert_object_equals(Object.getOwnPropertyNames(list), []);
     71  },
     72  afterInsertion(list) {
     73    assert_object_equals(Object.getOwnPropertyNames(list), ["0", "1", "2"]);
     74  },
     75  afterRemoval(list) {
     76    assert_object_equals(Object.getOwnPropertyNames(list), ["0", "1"]);
     77  }
     78 });