This checks for proper behavior of caretRangeFromPoint before and after scrolling.

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


PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 0, expected 0)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 12, expected 12)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 2, expected 2)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 14, expected 14)

PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 0, expected 0)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 12, expected 12)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 2, expected 2)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 14, expected 14)

PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 0, expected 0)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 6, expected 6)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 4, expected 4)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 10, expected 10)

PASS successfullyParsed is true

TEST COMPLETE

