This tests inserting the parent of a template element into its content document fragment
after adopting the document fragment to another document. WebKit should throw HierarchyRequestError

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS template.content.appendChild(templateParent) threw exception HierarchyRequestError: The operation would yield an incorrect node tree..
PASS template.content.insertBefore(templateParent, template.content.firstChild) threw exception HierarchyRequestError: The operation would yield an incorrect node tree..
PASS template.content.replaceChild(templateParent, template.content.firstChild) threw exception HierarchyRequestError: The operation would yield an incorrect node tree..
PASS successfullyParsed is true

TEST COMPLETE

