26 var floatPrecision = 0.1;
27 var scrollDistance = 10;
28 var expectedScrollDistance;
31 function scroll(scaleFactor) {
32 expectedScrollDistance = scrollDistance/scaleFactor;
34 scrollBox.scrollTop = 0;
36 eventSender.gestureScrollBegin(10, 100);
37 for(var i = 0; i < scrollDistance; ++i) {
38 eventSender.gestureScrollUpdate(0, -1);
40 eventSender.gestureScrollEnd(0, 0);
42 shouldBeCloseTo('scrollBox.scrollTop', expectedScrollDistance, floatPrecision);
44 scrollBox.scrollTop = 20;
46 eventSender.gestureScrollBegin(10, 300);
47 for(var i = 0; i < scrollDistance; ++i) {
48 eventSender.gestureScrollUpdate(0, 1);
50 eventSender.gestureScrollEnd(0, 0);
52 expectedScrollDistance = 20 - scrollDistance/scaleFactor;
54 shouldBeCloseTo('scrollBox.scrollTop', expectedScrollDistance, floatPrecision);
57 function scaleWithEventSender(scaleFactor) {
59 if (window.eventSender) {
60 window.eventSender.setPageScaleFactor(scaleFactor, scaleOffset, scaleOffset);
65 if (window.eventSender) {
66 description('This tests that a div scrolled by gesture touch while the page is scaled still scrolls at' +
67 ' the rate of the touch');
69 scrollBox = document.getElementById("scrollbox");
71 testRunner.waitUntilDone();
72 debug('Scrolling unscaled div');
73 scaleWithEventSender(1.0);
75 debug('Scrolling 1.5 scaled div');
76 scaleWithEventSender(1.5);
78 debug('Scrolling 1.63 scaled div');
79 scaleWithEventSender(1.63);
81 debug('Scrolling 2.0 scaled div');
82 scaleWithEventSender(2.0);
85 testRunner.notifyDone();
88 debug('eventSender not detected. Not running test.');
93 <script src="../../resources/js-test.js"></script>
95 <body onload="test();">
96 <div id="scrollbox" style="left:0; top:0; width:500px; height:500px; position:absolute; overflow-y: scroll; overflow-x: scroll;">
97 <div id="bluebox"></div>
98 <div id="redbox"></div>
99 <div id="bluebox"></div>
100 <div id="redbox"></div>
101 <div id="bluebox"></div>
102 <div id="redbox"></div>
103 <div id="bluebox"></div>
104 <div id="redbox"></div>
105 <div id="bluebox"></div>
106 <div id="redbox"></div>
107 <div id="bluebox"></div>
108 <div id="redbox"></div>
111 <div id="console"></div>