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