Chromium Code Reviews| Index: LayoutTests/fast/scroll-behavior/scroll-customization/scrollstate-distribute-to-scroll-chain-descendant.html |
| diff --git a/LayoutTests/fast/scroll-behavior/scroll-customization/scrollstate-distribute-to-scroll-chain-descendant.html b/LayoutTests/fast/scroll-behavior/scroll-customization/scrollstate-distribute-to-scroll-chain-descendant.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e2cbe609338750c6b3926bfbb8eddca7e05163ee |
| --- /dev/null |
| +++ b/LayoutTests/fast/scroll-behavior/scroll-customization/scrollstate-distribute-to-scroll-chain-descendant.html |
| @@ -0,0 +1,54 @@ |
| +<!DOCTYPE html> |
| +<html> |
| +<head> |
| +<meta charset="utf-8"> |
| +<title>ScrollState constructor behaves correctly</title> |
| +<script src="../../../resources/testharness.js"></script> |
| +<script src="../../../resources/testharnessreport.js"></script> |
| +</head> |
| +<body> |
| +<script> |
| + |
| +if (!window.internals || !window.internals.runtimeFlags.scrollCustomizationEnabled) { |
| + console.log("These tests only work with window.internals exposed, " + |
| + "and require scroll customization."); |
| + done(); |
| +} |
| + |
| +var elementCount = 10; |
| +var remainingNumberOfTimesToBeCalled = elementCount; |
| + |
| +var distributeScroll = function(scrollState) { |
| + this.calledOrder = elementCount - remainingNumberOfTimesToBeCalled; |
| + remainingNumberOfTimesToBeCalled--; |
| + scrollState.distributeToScrollChainDescendant(); |
| +} |
| + |
| +var elements = []; |
| +for (var i = 0; i < elementCount; ++i) { |
| + var element = document.createElement("div"); |
| + element.creationOrder = i; |
| + element.distributeScroll = distributeScroll; |
| + elements.push(element); |
| +} |
| + |
| +test(function() { |
| + var scrollState = new ScrollState(100, 0, 0, 0, 0, false, false); |
| + window.internals.setScrollChain(scrollState, elements); |
|
Rick Byers
2015/04/10 14:51:44
To what extent do you think you could test this AP
tdresser
2015/05/08 18:23:01
I've filed a bug to enable setting the scroll chai
|
| + scrollState.distributeToScrollChainDescendant(); |
| + assert_equals(0, remainingNumberOfTimesToBeCalled); |
| + for (var i = 0; i < elementCount; ++i) |
| + assert_equals(elements[i].creationOrder, elements[i].calledOrder); |
| +}, "distributeToScrollChainDescendant propagates correctly."); |
| + |
| +test(function() { |
| + var scrollState = new ScrollState(100, 0, 0, 0, 0, false, false); |
| + window.internals.setScrollChain(scrollState, []); |
| + assert_equals(0, remainingNumberOfTimesToBeCalled); |
| + scrollState.distributeToScrollChainDescendant(); |
| + assert_equals(0, remainingNumberOfTimesToBeCalled); |
| +}, "distributeToScrollChainDescendant with empty scroll chain does nothing."); |
| + |
| +</script> |
| +</body> |
| +</html> |