summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/dom/nodes/ChildNode-remove.js
blob: c36ba0d117479dc6fc5437733e80050b111895c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function testRemove(node, parent, type) {
  test(function() {
    assert_true("remove" in node);
    assert_equals(typeof node.remove, "function");
    assert_equals(node.remove.length, 0);
  }, type + " should support remove()");
  test(function() {
    assert_equals(node.parentNode, null, "Node should not have a parent");
    assert_equals(node.remove(), undefined);
    assert_equals(node.parentNode, null, "Removed new node should not have a parent");
  }, "remove() should work if " + type + " doesn't have a parent");
  test(function() {
    assert_equals(node.parentNode, null, "Node should not have a parent");
    parent.appendChild(node);
    assert_equals(node.parentNode, parent, "Appended node should have a parent");
    assert_equals(node.remove(), undefined);
    assert_equals(node.parentNode, null, "Removed node should not have a parent");
    assert_array_equals(parent.childNodes, [], "Parent should not have children");
  }, "remove() should work if " + type + " does have a parent");
  test(function() {
    assert_equals(node.parentNode, null, "Node should not have a parent");
    var before = parent.appendChild(document.createComment("before"));
    parent.appendChild(node);
    var after = parent.appendChild(document.createComment("after"));
    assert_equals(node.parentNode, parent, "Appended node should have a parent");
    assert_equals(node.remove(), undefined);
    assert_equals(node.parentNode, null, "Removed node should not have a parent");
    assert_array_equals(parent.childNodes, [before, after], "Parent should have two children left");
  }, "remove() should work if " + type + " does have a parent and siblings");
}