mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 15:13:28 +00:00
wpt: add all dom/nodes tests
This commit is contained in:
58
tests/wpt/dom/nodes/Node-removeChild.html
Normal file
58
tests/wpt/dom/nodes/Node-removeChild.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<!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_dom("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_dom("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_dom(
|
||||
"NOT_FOUND_ERR",
|
||||
(doc.defaultView || self).DOMException,
|
||||
function() { s.removeChild(doc) }
|
||||
);
|
||||
}, "Calling removeChild on a " + p + " from " + description +
|
||||
" with no children should throw NOT_FOUND_ERR.")
|
||||
}
|
||||
});
|
||||
|
||||
test(function() {
|
||||
assert_throws_js(TypeError, function() { document.body.removeChild(null) })
|
||||
assert_throws_js(TypeError, function() { document.body.removeChild({'a':'b'}) })
|
||||
}, "Passing a value that is not a Node reference to removeChild should throw TypeError.")
|
||||
</script>
|
||||
Reference in New Issue
Block a user