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 });