getBoundingClientRect() called on a <br> returns a zero-width and -height rect positioned at the end of the preceding line of text, on the baseline of the text.

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

PASS successfullyParsed is true

TEST COMPLETE

PASS brRect.width is 0
PASS brRect.height is 0
PASS brRect.left is precedingSpanRect.right
PASS brRect.top is > precedingSpanRect.top
PASS precedingSpanRect.bottom is > brRect.top
PASS brRects.length is 1
PASS brRects[0].left is brRect.left
PASS brRects[0].top is brRect.top
PASS brRects[0].width is brRect.width
PASS brRects[0].height is brRect.height

Filler text.

There's a line break element at the end of this sentence.
Here is the second line.
