This confirms that settin the caret before an empty non-editable inline-block element with height.

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


PASS getSelection().rangeCount is 1
PASS getSelection().anchorNode is p
PASS getSelection().anchorOffset is 0
PASS getSelection().anchorNode is getSelection().focusNode
PASS getSelection().anchorOffset is getSelection().focusOffset
PASS internals.absoluteCaretBounds().left is span.getBoundingClientRect().left
PASS getSelection().rangeCount is 1
PASS getSelection().anchorNode is p
PASS getSelection().anchorOffset is 1
PASS getSelection().anchorNode is getSelection().focusNode
PASS getSelection().anchorOffset is getSelection().focusOffset
PASS internals.absoluteCaretBounds().left is span.getBoundingClientRect().right
PASS successfullyParsed is true

TEST COMPLETE

