Chromium Code Reviews| Index: LayoutTests/fast/scroll-behavior/main-frame-scrollBy.html |
| diff --git a/LayoutTests/fast/scroll-behavior/main-frame-scrollBy.html b/LayoutTests/fast/scroll-behavior/main-frame-scrollBy.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e524084b7967cd3512b19207f26a995a3ad5048c |
| --- /dev/null |
| +++ b/LayoutTests/fast/scroll-behavior/main-frame-scrollBy.html |
| @@ -0,0 +1,71 @@ |
| +<!DOCTYPE html> |
| +<html> |
| +<head> |
| + <style> |
| + #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 MainFrameScrollByTestCase(testData) { |
| + ScrollBehaviorTestCase.call(this, testData); |
| + } |
| + MainFrameScrollByTestCase.prototype = Object.create(ScrollBehaviorTestCase.prototype); |
| + MainFrameScrollByTestCase.constructor = MainFrameScrollByTestCase; |
| + MainFrameScrollByTestCase.prototype.run = function() { |
| + document.documentElement.style.scrollBehavior = this.css; |
| + if (this.js) { |
| + window.scrollBy(this.x, this.y, {behavior: this.js}); |
| + } else { |
| + window.scrollBy(this.x, this.y); |
| + } |
| + } |
|
Ian Vollick
2014/07/09 14:55:43
nit: I think the OO here is OK, but I wonder if it
ajuma
2014/07/09 20:27:55
Added jsScroll and getEndPosition callbacks. (We d
Ian Vollick
2014/07/10 03:32:42
Thanks for doing that. I think it's a little prett
|
| + |
| + MainFrameScrollByTestCase.prototype.setStartPosition = function(currentX, currentY) { |
| + ScrollBehaviorTestCase.prototype.setStartPosition.call(this, currentX, currentY); |
| + this.endX = this.startX + this.x; |
| + this.endY = this.startY + this.y; |
| + } |
| + |
| + const testScrolls = [ |
| + {js: "instant", css: "instant", x: 1, y: 2}, |
| + {js: "instant", css: "smooth", x: 2, y: 3}, |
| + {js: "auto", css: "instant", x: 3, y: 4}, |
| + {js: "", css: "instant", x: 4, y: 5}, |
| + {js: "smooth", css: "instant", 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: "smooth", css: "instant", waitForEnd: false, x: 4000, y: 4100}, |
| + {js: "smooth", css: "smooth", waitForEnd: false, x: -3900, y: -3850}, |
| + {js: "auto", css: "smooth", waitForEnd: false, x: 4050, y: 4000}, |
| + {js: "", css: "smooth", waitForEnd: false, x: -4000, y: -4100}, |
| + ]; |
| + |
| + function doTest() |
| + { |
| + var testCases = []; |
| + for (var i = 0; i < testScrolls.length; i++) { |
| + testCases.push(new MainFrameScrollByTestCase(testScrolls[i])); |
| + } |
| + |
| + var scrollBehaviorTest = new ScrollBehaviorTest(document.documentElement, |
| + document, |
| + testCases); |
| + scrollBehaviorTest.run(); |
| + } |
| + |
| + window.addEventListener('load', doTest, false); |
| + </script> |
| +</head> |
| + |
| +<body> |
| + <p>Test that calling scrollBy on the main frame works with both scroll behaviors</p> |
| + <div id="content"></div> |
| +</body> |
| +</html> |