| Test the "scrollTop" properties on the body element in quirks mode. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| Initial values |
| PASS document.body.scrollLeft is 0 |
| PASS document.body.scrollTop is 0 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 0 |
| PASS window.scrollY is 0 |
| |
| Let set the scrollTop value on the main body element (document.body), in quirks mode, this should change the main frame's scroll position. |
| PASS document.body.scrollTop = 42 is 42 |
| PASS document.body.scrollLeft is 0 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 0 |
| PASS window.scrollY is 42 |
| |
| Change scrollX, this should have no effect on the vertical scrolling |
| PASS window.scrollBy(21, 0) is undefined |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| Now we create a body element, completely detached from the DOM tree. This should not change the scroll position in any way. |
| PASS floatingBody.scrollLeft is 0 |
| PASS floatingBody.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| Setting the scroll position on that detached body element should not affect the main frame since it is not the first body element of the document. |
| PASS floatingBody.scrollTop = 500 is 500 |
| PASS floatingBody.scrollLeft is 0 |
| PASS floatingBody.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| We add a new body element after the first body element, this should have no impact on the state. |
| PASS secondSiblingBody.scrollLeft is 0 |
| PASS secondSiblingBody.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| Setting a "scrollTop" on secondSiblingBody should not affect the main frame. |
| PASS secondSiblingBody.scrollTop = 321 is 321 |
| PASS secondSiblingBody.scrollLeft is 0 |
| PASS secondSiblingBody.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| We add a new body element inside the first body element, this should have no impact on the state. |
| PASS bodyChildOfMainBody.scrollLeft is 0 |
| PASS bodyChildOfMainBody.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| Setting a "scrollTop" on bodyChildOfMainBody should not affect the main frame. |
| PASS bodyChildOfMainBody.scrollTop = 57 is 57 |
| PASS bodyChildOfMainBody.scrollLeft is 0 |
| PASS bodyChildOfMainBody.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| Now we insert a new body element *before* the existing one. It will replace the existing element as the first body element of the document. |
| PASS document.body === newMainBody is true |
| PASS document.body !== oldBodyElement is true |
| Since we are in quirks mode, the new body element gets the scroll position from the frame, and the old one lose its scroll position. |
| PASS oldBodyElement.scrollLeft is 0 |
| PASS oldBodyElement.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 42 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 42 |
| |
| Scrolling that new body should work as expected. |
| PASS document.body.scrollTop = 68 is 68 |
| PASS oldBodyElement.scrollTop = 894 is 894 |
| PASS oldBodyElement.scrollLeft is 0 |
| PASS oldBodyElement.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 68 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 68 |
| |
| Scrolling the main frame should not require a renderer. |
| PASS document.body.style.display = 'none' is 'none' |
| PASS document.body.scrollTop = 54 is 54 |
| PASS oldBodyElement.scrollLeft is 0 |
| PASS oldBodyElement.scrollTop is 0 |
| PASS document.body.scrollLeft is 21 |
| PASS document.body.scrollTop is 54 |
| PASS document.documentElement.scrollLeft is 0 |
| PASS document.documentElement.scrollTop is 0 |
| PASS window.scrollX is 21 |
| PASS window.scrollY is 54 |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |