| Index: LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html
|
| diff --git a/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html b/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7e2dbc7b30e69415781b6ddc4e00a4b35d18fd37
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html
|
| @@ -0,0 +1,95 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| + <style>
|
| + #container {
|
| + width: 200px;
|
| + height: 200px;
|
| + overflow: scroll;
|
| + }
|
| +
|
| + #content {
|
| + width: 7500px;
|
| + height: 7500px;
|
| + background-color: blue;
|
| + }
|
| + </style>
|
| + <script src="../../resources/testharness.js"></script>
|
| + <script src="../../resources/testharnessreport.js"></script>
|
| + <script src="resources/scroll-behavior-test.js"></script>
|
| + <script type="text/javascript">
|
| + function getEndPosition(testCase, startPosition) {
|
| + var endPosition = {};
|
| + if (testCase.x)
|
| + endPosition.x = testCase.x;
|
| + else
|
| + endPosition.x = startPosition.x;
|
| +
|
| + if (testCase.y)
|
| + endPosition.y = testCase.y;
|
| + else
|
| + endPosition.y = startPosition.y;
|
| +
|
| + return endPosition;
|
| + }
|
| +
|
| + function jsScroll(testCase) {
|
| + if (testCase.js) {
|
| + var scrollToOptions = {behavior: testCase.js};
|
| + if (testCase.x)
|
| + scrollToOptions.left = testCase.x;
|
| + if (testCase.y)
|
| + scrollToOptions.top = testCase.y;
|
| + document.getElementById("container").scrollTo(scrollToOptions);
|
| + } else {
|
| + document.getElementById("container").scrollTo(testCase.x, testCase.y);
|
| + }
|
| + }
|
| +
|
| + const testScrolls = [
|
| + {js: "instant", css: "auto", x: 1, y: 2},
|
| + {js: "instant", css: "smooth", x: 2, y: 3},
|
| + {js: "auto", css: "auto", x: 3, y: 4},
|
| + {js: "", css: "auto", x: 4, y: 5},
|
| + {js: "auto", css: "auto", x: 3},
|
| + {js: "auto", css: "auto", y: 4},
|
| + {js: "auto", css: "auto"},
|
| + {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
|
| + {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
|
| + {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
|
| + {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
|
| + {js: "auto", css: "smooth", waitForEnd: true, x: 45},
|
| + {js: "auto", css: "smooth", waitForEnd: true, y: 40},
|
| + {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
|
| + {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
|
| + {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
|
| + {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
|
| + ];
|
| +
|
| + function doTest()
|
| + {
|
| + var testCases = [];
|
| + for (var i = 0; i < testScrolls.length; i++) {
|
| + testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
|
| + }
|
| +
|
| + var element = document.getElementById("container");
|
| + var scrollBehaviorTest = new ScrollBehaviorTest(element,
|
| + element,
|
| + testCases,
|
| + getEndPosition,
|
| + jsScroll);
|
| + scrollBehaviorTest.run();
|
| + }
|
| +
|
| + window.addEventListener('load', doTest, false);
|
| + </script>
|
| +</head>
|
| +
|
| +<body>
|
| + <p>Test that calling scrollTo on an overflow:scroll element works with both scroll behaviors</p>
|
| + <div id="container">
|
| + <div id="content"></div>
|
| + </div>
|
| +</body>
|
| +</html>
|
|
|