file_bug422132.html (3583B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=422132 5 --> 6 <head> 7 <title>Test for Bug 422132</title> 8 <meta name="viewport" content="width=device-width,initial-scale=1"> 9 <script src="/tests/SimpleTest/EventUtils.js"></script> 10 <script src="/tests/SimpleTest/paint_listener.js"></script> 11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 12 </head> 13 <body> 14 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=422132">Mozilla Bug 422132</a> 15 <p id="display"></p> 16 <div id="target" style="font-size: 0; width: 200px; height: 200px; overflow: auto;"> 17 <div style="width: 1000px; height: 1000px;"></div> 18 </div> 19 <div id="content" style="display: none"> 20 21 </div> 22 <pre id="test"> 23 <script class="testbody" type="text/javascript"> 24 const is = window.opener.is; 25 const info = window.opener.info; 26 const SimpleTest = window.opener.SimpleTest; 27 const original_finish = window.opener.SimpleTest.finish; 28 29 /** Test for Bug 422132 */ 30 31 SimpleTest.finish = function finish() { 32 self.close(); 33 original_finish(); 34 } 35 36 SimpleTest.waitForFocus(runTests, window); 37 38 function runTests() 39 { 40 var target = document.getElementById("target"); 41 42 var scrollLeft = target.scrollLeft; 43 var scrollTop = target.scrollTop; 44 45 var tests = [ 46 { 47 prepare() { 48 scrollLeft = target.scrollLeft; 49 scrollTop = target.scrollTop; 50 }, 51 event: { 52 deltaMode: WheelEvent.DOM_DELTA_PIXEL, 53 deltaX: 0.5, 54 deltaY: 0.5, 55 lineOrPageDeltaX: 0, 56 lineOrPageDeltaY: 0 57 }, 58 }, { 59 event: { 60 deltaMode: WheelEvent.DOM_DELTA_PIXEL, 61 deltaX: 0.5, 62 deltaY: 0.5, 63 lineOrPageDeltaX: 0, 64 lineOrPageDeltaY: 0 65 }, 66 check() { 67 is(target.scrollLeft - scrollLeft, 1, 68 "not scrolled to right by 0.5px delta value with pending 0.5px delta"); 69 is(target.scrollTop - scrollTop, 1, 70 "not scrolled to bottom by 0.5px delta value with pending 0.5px delta"); 71 }, 72 }, { 73 prepare() { 74 scrollLeft = target.scrollLeft; 75 scrollTop = target.scrollTop; 76 }, 77 event: { 78 deltaMode: WheelEvent.DOM_DELTA_LINE, 79 deltaX: 0.5, 80 deltaY: 0.5, 81 lineOrPageDeltaX: 0, 82 lineOrPageDeltaY: 0 83 }, 84 }, { 85 event: { 86 deltaMode: WheelEvent.DOM_DELTA_LINE, 87 deltaX: 0.5, 88 deltaY: 0.5, 89 lineOrPageDeltaX: 1, 90 lineOrPageDeltaY: 1 91 }, 92 check() { 93 is(target.scrollLeft - scrollLeft, 1, 94 "not scrolled to right by 0.5 line delta value with pending 0.5 line delta"); 95 is(target.scrollTop - scrollTop, 1, 96 "not scrolled to bottom by 0.5 line delta value with pending 0.5 line delta"); 97 } 98 } 99 ]; 100 101 var nextTest = function() { 102 var test = tests.shift(); 103 if (test.prepare) { 104 test.prepare(); 105 } 106 107 sendWheelAndPaint(target, 10, 10, test.event, function() { 108 if (test.check) { 109 test.check(); 110 } 111 if (!tests.length) { 112 // There could be pending wheel events. Therefore, we should ensure no 113 // pending events before finishing this test for the following test. 114 // This issue should be fixed in bug 1970528 in lower layer. 115 info("Waiting for mouseup event to flush all pending events"); 116 addEventListener("mouseup", SimpleTest.finish, {once: true, capture: true}); 117 synthesizeMouseAtCenter(target, {}); 118 return; 119 } 120 121 setTimeout(nextTest, 0); 122 }); 123 } 124 125 nextTest(); 126 } 127 128 </script> 129 </pre> 130 </body> 131 </html>