Test the contains function that checks if a range contains a node.

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


PASS internals.rangeContainsNode(contentsRange(document), documentElement, 'ComposedTree') is true
PASS internals.rangeContainsNode(contentsRange(document), body, 'ComposedTree') is true
PASS internals.rangeContainsNode(contentsRange(documentElement), body, 'ComposedTree') is true
PASS internals.rangeContainsNode(contentsRange(document), document, 'ComposedTree') is false
PASS internals.rangeContainsNode(range(document, 0, document, 2), document, 'ComposedTree') is false
PASS internals.rangeContainsNode(range(document, 0, documentElement, 0), body, 'ComposedTree') is false
PASS internals.rangeContainsNode(range(document, 0, documentElement, 1), body, 'ComposedTree') is false
PASS internals.rangeContainsNode(range(document, 0, body, 0), body, 'ComposedTree') is false
PASS internals.rangeContainsNode(range(document, 0, body, 1), body, 'ComposedTree') is false
PASS internals.rangeContainsNode(range(document, 0, documentElement, 2), body, 'ComposedTree') is true
PASS internals.rangeContainsNode(contentsRange(document), a, 'ComposedTree') is false
PASS internals.rangeContainsNode(contentsRange(body), f, 'ComposedTree') is false
PASS internals.rangeContainsNode(contentsRange(body), h, 'ComposedTree') is true
PASS successfullyParsed is true

TEST COMPLETE

