This test checks the implementation of the element traversal APIs on DocumentFragment as part of the ParentNode interface.

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


Test with no children
PASS noChildren.firstElementChild is null
PASS noChildren.lastElementChild is null
PASS noChildren.childElementCount is 0
Test with no element children
PASS noElementChildren.firstElementChild is null
PASS noElementChildren.lastElementChild is null
PASS noElementChildren.childElementCount is 0
Test with elements
PASS children.firstElementChild is first
PASS children.lastElementChild is last
PASS children.childElementCount is 2
PASS successfullyParsed is true

TEST COMPLETE

