| Index: third_party/WebKit/LayoutTests/fast/scroll-behavior/smooth-scroll/keyboard-scroll.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/smooth-scroll/keyboard-scroll.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/smooth-scroll/keyboard-scroll.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..310b4e22d327b02c9d33c914901e071919a222ee
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/smooth-scroll/keyboard-scroll.html
|
| @@ -0,0 +1,114 @@
|
| +<!DOCTYPE html>
|
| +<script src="../../../resources/js-test.js"></script>
|
| +<script>
|
| + window.jsTestIsAsync = true;
|
| + var pageHeight = 1200;
|
| + var pageWidth = 1000;
|
| +
|
| + var testScrolls = [
|
| + {key: 'downArrow', expectedX: 0, expectedY: pageHeight - window.innerHeight},
|
| + {key: 'upArrow', expectedX: 0, expectedY: 0},
|
| + {key: 'rightArrow', expectedX: pageWidth - window.innerWidth, expectedY: 0},
|
| + {key: 'leftArrow', expectedX: 0, expectedY: 0},
|
| + {key: 'end', expectedX: 0, expectedY: pageHeight - window.innerHeight},
|
| + {key: 'home', expectedX: 0, expectedY: 0},
|
| + {key: 'pageDown', expectedX: 0, expectedY: pageHeight - window.innerHeight},
|
| + {key: 'pageUp', expectedX: 0, expectedY: 0},
|
| + {key: ' ', expectedX: 0, expectedY: pageHeight - window.innerHeight},
|
| + ];
|
| + var currentTest = -1;
|
| +
|
| + description("Test keyboard smooth scroll. The main purpose of this\
|
| + test is to ensure that smooth scrolling on the compositor\
|
| + works as intended (tested via virtual suite virtual/threaded/).");
|
| +
|
| + function runTestCase(testCase) {
|
| + window.eventSender.keyDown(testCase.key);
|
| + if (window.scrollX == testCase.expectedX && window.scrollY == testCase.expectedY) {
|
| + testPassed(testCase.key + ' reached target');
|
| + startNextTestCase();
|
| + } else {
|
| + requestAnimationFrame(function() {
|
| + runTestCase(testCase);
|
| + });
|
| + }
|
| + }
|
| +
|
| + function startNextTestCase() {
|
| + currentTest++;
|
| + if (currentTest >= testScrolls.length) {
|
| + finishJSTest();
|
| + return;
|
| + }
|
| + runTestCase(testScrolls[currentTest]);
|
| + }
|
| +
|
| + function runTest() {
|
| + if (!window.eventSender || !window.internals) {
|
| + finishJSTest();
|
| + return;
|
| + }
|
| + // Turn on smooth scrolling.
|
| + internals.settings.setScrollAnimatorEnabled(true);
|
| +
|
| + startNextTestCase();
|
| + }
|
| + addEventListener('load', runTest);
|
| +</script>
|
| +
|
| +<style>
|
| + ::-webkit-scrollbar {
|
| + width: 0px;
|
| + height: 0px;
|
| + }
|
| +
|
| + div {
|
| + width: 200px;
|
| + height: 20px;
|
| + background-color: red;
|
| + }
|
| +
|
| + html{
|
| + padding: 0px;
|
| + margin: 0px;
|
| + width: 1000px;
|
| + height: 1200px;
|
| + }
|
| +
|
| + .top {
|
| + position: absolute;
|
| + top: 0px;
|
| + left: 300px;
|
| + }
|
| +
|
| + .middle{
|
| + position: absolute;
|
| + top: 575px;
|
| + left: 300px;
|
| + }
|
| +
|
| + .bottom {
|
| + position: absolute;
|
| + top: 1180px;
|
| + left: 300px;
|
| + }
|
| +
|
| + .left {
|
| + position: absolute;
|
| + top: 275px;
|
| + left: 0px;
|
| + }
|
| +
|
| + .right {
|
| + position: absolute;
|
| + top: 275px;
|
| + left: 800px;
|
| + }
|
| +</style>
|
| +<p id="description" style="width: 800px"></p>
|
| +<p id="console" style="width: 800px"></p>
|
| +<div class="top">Top of page</div>
|
| +<div class="bottom">Bottom of page</div>
|
| +<div class="left">Left of page</div>
|
| +<div class="right">Right of page</div>
|
| +<div class="middle">Middle of page</div>
|
|
|