This tests that scrolling to make an element visible works properly when there's an iframe off screen.

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


5000-pixel box
 

Test scrolling an offscreen iframe.
PASS window.pageYOffset is 0

Scroll lower target to visible.
The iframe should be scrolled into view
PASS scrolledYOffset > 0 is true
Test the lower target should be scrolled into view.
PASS scrolledIntoView is true

Scroll upper target to visible.
The main window shouldn't scroll.
PASS window.pageYOffset == scrolledYOffset is true
Test the upper target should be scrolled into view.
PASS scrolledIntoView is true

Reset scrolling. Test scrolling in nested iframes.
PASS window.pageYOffset is 0

Scroll inner button to visible.
Test the button inside the inner frame should be scrolled into view
PASS scrolledIntoView is true
The inner iframe should be scrolled into view
PASS outterFrameWindow.pageYOffset > 0 is true

Scroll outter text element to visible.
The Y offset of the outter iframe should be reset.
PASS outterFrameWindow.pageYOffset is 0
PASS successfullyParsed is true

TEST COMPLETE

