This test ensures that getBoundingClientRect remains relative to the layout viewport under page scale.

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

PASS successfullyParsed is true

TEST COMPLETE

PASS rect.left is xPos
PASS rect.top is yPos
 
===getBoundingClientRect===
 
PASS rectAfterScaleAndScroll.left is expectedX
PASS rectAfterScaleAndScroll.top is expectedY
PASS rectAfterScaleAndScroll.width is rect.width
PASS rectAfterScaleAndScroll.height is rect.height
 
===getClientRects===
 
PASS rectAfterScaleAndScroll.left is expectedX
PASS rectAfterScaleAndScroll.top is expectedY
PASS rectAfterScaleAndScroll.width is rect.width
PASS rectAfterScaleAndScroll.height is rect.height
