gecko-dev/testing/web-platform/tests/dom/nodes/ChildNode-remove.js
James Graham dda86cd70e Bug 945222 - Initial import of web-platform-tests testsuite 1/4: test data
--HG--
extra : rebase_source : d635a4f39c587d4d381b486dd63de747865b77a2
2014-09-04 12:48:31 +01:00

30 lines
1.6 KiB
JavaScript

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