tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>