This is a testharness.js-based test.
PASS beforeBegin content without next sibling
PASS Afterbegin content without next sibling
PASS BeforeEnd content without next sibling
PASS afterend content without next sibling
PASS beforeBegin content again, with next sibling
PASS Afterbegin content again, with next sibling
PASS BeforeEnd content again, with next sibling
PASS afterend content again, with next sibling
PASS Should throw when inserting with invalid position string
PASS When the parent node is null, insertAdjacentHTML should throw for beforebegin and afterend (text)
PASS When the parent node is null, insertAdjacentHTML should throw for beforebegin and afterend (comments)
PASS When the parent node is null, insertAdjacentHTML should throw for beforebegin and afterend (elements)
PASS When the parent node is a document, insertAdjacentHTML should throw for beforebegin and afterend (text)
PASS When the parent node is a document, insertAdjacentHTML should throw for beforebegin and afterend (comments)
PASS When the parent node is a document, insertAdjacentHTML should throw for beforebegin and afterend (elements)
PASS Inserting after being and before end should order things correctly
PASS beforeBegin child node not in tree but has parent
PASS Afterbegin child node not in tree but has parent
PASS BeforeEnd child node not in tree but has parent
PASS afterend child node not in tree but has parent
PASS Should not run script when appending things which have descendant <script> inserted via insertAdjacentHTML
PASS beforeBegin content2 without next sibling
PASS Afterbegin content2 without next sibling
PASS BeforeEnd content2 without next sibling
PASS afterend content2 without next sibling
PASS beforeBegin content2 test again, now that there's a next sibling
PASS Afterbegin content2 test again, now that there's a next sibling
PASS BeforeEnd content2 test again, now that there's a next sibling
PASS afterend content2 test again, now that there's a next sibling
FAIL Inserting kids of the <html> element should not do weird things with implied <body>/<head> tags assert_equals: Should still have one head expected 1 but got 3
Harness: the test ran to completion.

