| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta name="viewport" content="width=device-width"> |
| <script src="../../../resources/js-test.js"></script> |
| <script src="../../../resources/ui-helper.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <div id="test" style="height: 4096px; width: 256px; background-color: blue"></div> |
| <script> |
| window.jsTestIsAsync = true; |
| |
| // This is used to detect if scrolling is completely broken. |
| const INITIAL_Y_OFFSET = 256; |
| |
| function done() |
| { |
| document.body.removeChild(document.getElementById("test")); |
| finishJSTest(); |
| } |
| |
| async function runTest() |
| { |
| await UIHelper.callFunctionAndWaitForScrollToFinish(() => window.scrollTo(0, INITIAL_Y_OFFSET)); |
| shouldBe("window.scrollY", "INITIAL_Y_OFFSET"); |
| |
| // Scroll to the end of the document. |
| await UIHelper.callFunctionAndWaitForScrollToFinish(() => { |
| if (window.testRunner) |
| UIHelper.keyDown("downArrow", ["metaKey"]); |
| }); |
| shouldBeGreaterThanOrEqual("window.scrollY", "INITIAL_Y_OFFSET + 1"); |
| |
| |
| // Scroll to the beginning of the document. |
| await UIHelper.callFunctionAndWaitForScrollToFinish(() => { |
| if (window.testRunner) |
| UIHelper.keyDown("upArrow", ["metaKey"]); |
| }); |
| shouldBeZero("window.scrollY"); |
| |
| done(); |
| } |
| |
| description("Test key commands to scroll to the end of the document and then to the beginning of the document. To run this test by hand, reload the page then press <kbd>Command</kbd> + <kbd>Down Arrow</kbd> and then press <kbd>Command</kbd> + <kbd>Up Arrow</kbd>."); |
| runTest(); |
| </script> |
| </body> |
| </html> |