forked from afp-mirror/Core_DOM
55 lines
2.0 KiB
HTML
55 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<title>Node.removeChild</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="creators.js"></script>
|
|
<div id="log"></div>
|
|
<iframe src=about:blank></iframe>
|
|
<script>
|
|
var documents = [
|
|
[function() { return document }, "the main document"],
|
|
[function() { return frames[0].document }, "a frame document"],
|
|
[function() { return document.implementation.createHTMLDocument() },
|
|
"a synthetic document"],
|
|
];
|
|
|
|
documents.forEach(function(d) {
|
|
var get = d[0], description = d[1]
|
|
for (var p in creators) {
|
|
var creator = creators[p];
|
|
test(function() {
|
|
var doc = get();
|
|
var s = doc[creator]("a")
|
|
assert_equals(s.ownerDocument, doc)
|
|
assert_throws("NOT_FOUND_ERR", function() { document.body.removeChild(s) })
|
|
assert_equals(s.ownerDocument, doc)
|
|
}, "Passing a detached " + p + " from " + description +
|
|
" to removeChild should not affect it.")
|
|
|
|
test(function() {
|
|
var doc = get();
|
|
var s = doc[creator]("b")
|
|
doc.documentElement.appendChild(s)
|
|
assert_equals(s.ownerDocument, doc)
|
|
assert_throws("NOT_FOUND_ERR", function() { document.body.removeChild(s) })
|
|
assert_equals(s.ownerDocument, doc)
|
|
}, "Passing a non-detached " + p + " from " + description +
|
|
" to removeChild should not affect it.")
|
|
|
|
test(function() {
|
|
var doc = get();
|
|
var s = doc[creator]("test")
|
|
doc.body.appendChild(s)
|
|
assert_equals(s.ownerDocument, doc)
|
|
assert_throws("NOT_FOUND_ERR", function() { s.removeChild(doc) })
|
|
}, "Calling removeChild on a " + p + " from " + description +
|
|
" with no children should throw NOT_FOUND_ERR.")
|
|
}
|
|
});
|
|
|
|
test(function() {
|
|
assert_throws(new TypeError(), function() { document.body.removeChild(null) })
|
|
assert_throws(new TypeError(), function() { document.body.removeChild({'a':'b'}) })
|
|
}, "Passing a value that is not a Node reference to removeChild should throw TypeError.")
|
|
</script>
|