Test that scrolling editor commands while pinch-zoomed scrolls both viewports. To test manually, pinch zoom into the page and use the arrow keys, page up/down, home/end to scroll the page. You should be able to reach the end of the page bounds (i.e. scroll to see the divs at the bounds.)

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


PASS successfullyParsed is true

TEST COMPLETE

Testing Document Scrolling:
PASS window.scrollY is pageHeight - window.innerHeight
PASS window.scrollX is 0
PASS window.scrollY is 0
PASS window.scrollX is 0

Testing Page Scrolling:
PASS internals.visualViewportScrollY() is pageHeight - internals.visualViewportHeight()
PASS internals.visualViewportScrollX() is 0
PASS internals.visualViewportScrollY() is 0
PASS internals.visualViewportScrollX() is 0

Testing Line Scrolling:
PASS internals.visualViewportScrollY() is pageHeight - internals.visualViewportHeight()
PASS internals.visualViewportScrollX() is 0
PASS internals.visualViewportScrollY() is 0
PASS internals.visualViewportScrollX() is 0

Top of pageBottom of pageLeft of pageRight of pageMiddle of page
