| <!DOCTYPE html> | |
| <meta charset=utf-8> | |
| <title>Node.appendChild</title> | |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-node-appendchild"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <div id="log"></div> | |
| <iframe src=about:blank></iframe> | |
| <script> | |
| // TODO: Exhaustive tests | |
| function testLeaf(node, desc) { | |
| // WebIDL. | |
| test(function() { | |
| assert_throws(new TypeError(), function() { node.appendChild(null) }) | |
| }, "Appending null to a " + desc) | |
| // Pre-insert step 1. | |
| test(function() { | |
| assert_throws("HIERARCHY_REQUEST_ERR", function() { node.appendChild(document.createTextNode("fail")) }) | |
| }, "Appending to a " + desc) | |
| } | |
| // WebIDL. | |
| test(function() { | |
| assert_throws(new TypeError(), function() { document.body.appendChild(null) }) | |
| assert_throws(new TypeError(), function() { document.body.appendChild({'a':'b'}) }) | |
| }, "WebIDL tests") | |
| // WebIDL and pre-insert step 1. | |
| test(function() { | |
| testLeaf(document.createTextNode("Foo"), "text node") | |
| testLeaf(document.createComment("Foo"), "comment") | |
| testLeaf(document.doctype, "doctype") | |
| }, "Appending to a leaf node.") | |
| // Pre-insert step 5. | |
| test(function() { | |
| var frameDoc = frames[0].document | |
| assert_throws("HIERARCHY_REQUEST_ERR", function() { document.body.appendChild(frameDoc) }) | |
| }, "Appending a document") | |
| // Pre-insert step 8. | |
| test(function() { | |
| var frameDoc = frames[0].document | |
| var s = frameDoc.createElement("a") | |
| assert_equals(s.ownerDocument, frameDoc) | |
| document.body.appendChild(s) | |
| assert_equals(s.ownerDocument, document) | |
| }, "Adopting an orphan") | |
| test(function() { | |
| var frameDoc = frames[0].document | |
| var s = frameDoc.createElement("b") | |
| assert_equals(s.ownerDocument, frameDoc) | |
| frameDoc.body.appendChild(s) | |
| assert_equals(s.ownerDocument, frameDoc) | |
| document.body.appendChild(s) | |
| assert_equals(s.ownerDocument, document) | |
| }, "Adopting a non-orphan") | |
| </script> |