| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <style> | |
| 3 | |
| 4 #container { | |
| 5 width: 200px; | |
| 6 height: 200px; | |
| 7 overflow: scroll; | |
| 8 } | |
| 9 | |
| 10 #content { | |
| 11 width: 7500px; | |
| 12 height: 7500px; | |
| 13 background-color: blue; | |
| 14 } | |
| 15 | |
| 16 </style> | |
| 17 <script src="../../resources/js-test.js"></script> | |
| 18 <div id="container"> | |
| 19 <div id="content"></div> | |
| 20 </div> | |
| 21 <div id="console"></div> | |
| 22 <script> | |
| 23 | |
| 24 jsTestIsAsync = true; | |
| 25 element = document.getElementById("container"); | |
| 26 | |
| 27 var testConfigs = [ | |
| 28 {preciseDeltas: false, expectSmooth: true}, | |
| 29 {preciseDeltas: true, expectSmooth: false}, | |
| 30 ]; | |
| 31 var config; | |
| 32 var waitingForScroll = false; | |
| 33 var scrollStart, scrollDuration; | |
| 34 | |
| 35 function nextConfig() { | |
| 36 config = testConfigs.shift(); | |
| 37 if (!config) | |
| 38 finishJSTest(); | |
| 39 | |
| 40 element.addEventListener("scroll", onElementScroll); | |
| 41 | |
| 42 eventSender.mouseMoveTo(100, 100); | |
| 43 eventSender.mouseScrollBy(0, -2, /* paged */ false, | |
| 44 config.preciseDeltas); | |
| 45 scrollStart = performance.now(); | |
| 46 } | |
| 47 | |
| 48 function reset() { | |
| 49 element.removeEventListener("scroll", onElementScroll); | |
| 50 element.scrollTop = 0; | |
| 51 waitingForScroll = false; | |
| 52 } | |
| 53 | |
| 54 function onElementScroll() { | |
| 55 if (waitingForScroll) { | |
| 56 if (element.scrollTop == 80) { | |
| 57 scrollDuration = performance.now() - scrollStart; | |
| 58 shouldBeTrue("scrollDuration < 500"); | |
| 59 reset(); | |
| 60 nextConfig(); | |
| 61 } | |
| 62 } else if (config.expectSmooth) { | |
| 63 shouldNotBe("element.scrollTop", "80"); | |
| 64 waitingForScroll = true; | |
| 65 } else { | |
| 66 shouldBe("element.scrollTop", "80"); | |
| 67 reset(); | |
| 68 nextConfig(); | |
| 69 } | |
| 70 } | |
| 71 | |
| 72 function runTest() { | |
| 73 internals.settings.setScrollAnimatorEnabled(true); | |
| 74 nextConfig(); | |
| 75 } | |
| 76 | |
| 77 description("Tests that overflow scrolls are animated, unless the wheel " + | |
| 78 "event has precise scrolling deltas."); | |
| 79 | |
| 80 if (window.eventSender) | |
| 81 runTest(); | |
| 82 else | |
| 83 debug("FAIL: This test requires window.eventSender."); | |
| 84 | |
| 85 </script> | |
| OLD | NEW |