<!doctype html> <meta charset=utf-8> <title>Document.adoptNode</title> <link rel=help href="https://dom.spec.whatwg.org/#dom-document-adoptnode"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <div id="log"></div> <!--creates an element with local name "x<": --><x<>x</x<> <script> test(function() { var y = document.getElementsByTagName("x<")[0] var child = y.firstChild assert_equals(y.parentNode, document.body) assert_equals(y.ownerDocument, document) assert_equals(document.adoptNode(y), y) assert_equals(y.parentNode, null) assert_equals(y.firstChild, child) assert_equals(y.ownerDocument, document) assert_equals(child.ownerDocument, document) var doc = document.implementation.createDocument(null, null, null) assert_equals(doc.adoptNode(y), y) assert_equals(y.parentNode, null) assert_equals(y.firstChild, child) assert_equals(y.ownerDocument, doc) assert_equals(child.ownerDocument, doc) }, "Adopting an Element called 'x<' should work.") test(function() { var x = document.createElement(":good:times:") assert_equals(document.adoptNode(x), x); var doc = document.implementation.createDocument(null, null, null) assert_equals(doc.adoptNode(x), x) assert_equals(x.parentNode, null) assert_equals(x.ownerDocument, doc) }, "Adopting an Element called ':good:times:' should work.") test(function() { var doctype = document.doctype; assert_equals(doctype.parentNode, document) assert_equals(doctype.ownerDocument, document) assert_equals(document.adoptNode(doctype), doctype) assert_equals(doctype.parentNode, null) assert_equals(doctype.ownerDocument, document) }, "Explicitly adopting a DocumentType should work.") test(function() { var doc = document.implementation.createDocument(null, null, null) assert_throws("NOT_SUPPORTED_ERR", function() { document.adoptNode(doc) }) }, "Adopting a Document should throw.") </script>