Range set* functions should not throw WRONG_DOCUMENT_ERR.

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


PASS range.setStart(iframe.contentDocument.body, 0) did not throw exception.
PASS range.startContainer is iframe.contentDocument.body
PASS range.collapsed is true
PASS range.setEnd(iframe.contentDocument.body, 0) did not throw exception.
PASS range.startContainer is iframe.contentDocument.body
PASS range.collapsed is true
PASS range.setStartAfter(iframe.contentDocument.body.firstChild) did not throw exception.
PASS range.startContainer is iframe.contentDocument.body
PASS range.collapsed is true
PASS range.setStartBefore(iframe.contentDocument.body.firstChild) did not throw exception.
PASS range.startContainer is iframe.contentDocument.body
PASS range.collapsed is true
PASS range.setEndAfter(iframe.contentDocument.body.firstChild) did not throw exception.
PASS range.startContainer is iframe.contentDocument.body
PASS range.collapsed is true
PASS range.setEndBefore(iframe.contentDocument.body.firstChild) did not throw exception.
PASS range.startContainer is iframe.contentDocument.body
PASS range.collapsed is true
PASS successfullyParsed is true

TEST COMPLETE

