This test makes sure that calling the window scrolling methods with less than 2 arguments treats the missing arguments as 0.

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



window.scrollTo Tests

Testing - scrollTo with 0 arguments
PASS window.scrollX is resetX
PASS window.scrollY is resetY
Testing - scrollTo with 1 argument
PASS window.scrollX is resetX + x
PASS window.scrollY is resetY
Testing - scrollTo with more than 2 arguments
PASS window.scrollX is x
PASS window.scrollY is y

window.scroll Tests

Testing - scroll with 0 arguments
PASS window.scrollX is resetX
PASS window.scrollY is resetY
Testing - scroll with 1 argument
PASS window.scrollX is resetX + x
PASS window.scrollY is resetY
Testing - scroll with more than 2 arguments
PASS window.scrollX is x
PASS window.scrollY is y

window.scrollBy Tests

Testing - scrollBy with 0 arguments
PASS window.scrollX is resetX
PASS window.scrollY is resetY
Testing - scrollBy with 1 argument
PASS window.scrollX is resetX + x
PASS window.scrollY is resetY
Testing - scrollBy with more than 2 arguments
PASS window.scrollX is resetX + x
PASS window.scrollY is resetY + y
PASS successfullyParsed is true

TEST COMPLETE
This box should force the window to have a scrollable area to test.
