tor-browser

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

test_bug1120705.html (3200B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test for Bug 1120705</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script src="/tests/SimpleTest/EventUtils.js"></script>
      7  <script type="text/javascript" src="/tests/gfx/layers/apz/test/mochitest/apz_test_utils.js"></script>
      8  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      9 </head>
     10 <body>
     11 
     12 <p id="display"></p>
     13 <select id="sel">
     14  <option value="1">1</option>
     15  <option value="2">2</option>
     16  <option value="3">3</option>
     17  <option value="4">4</option>
     18  <option value="5">5</option>
     19  <option value="6">6</option>
     20  <option value="7">7</option>
     21  <option value="8">8</option>
     22  <option value="9">9</option>
     23  <option value="10">10</option>
     24  <option value="11">11</option>
     25  <option value="12">12</option>
     26  <option value="13">13</option>
     27  <option value="14">14</option>
     28  <option value="15">15</option>
     29  <option value="16">16</option>
     30  <option value="17">17</option>
     31  <option value="18">18</option>
     32  <option value="19">19</option>
     33  <option value="20">20</option>
     34 </select>
     35 
     36 <pre id="test">
     37 <script class="testbody" type="text/javascript">
     38 
     39 
     40 function clickDownButton() {
     41  var sel = document.getElementById("sel");
     42  var scrollbar_width = sel.offsetWidth - sel.clientWidth;
     43  synthesizeMouse(sel,
     44                  sel.offsetWidth - scrollbar_width / 2,
     45                  sel.offsetHeight - scrollbar_width / 2,
     46                  { type: "mousedown" });
     47 
     48  synthesizeMouse(sel,
     49                  sel.offsetWidth - scrollbar_width / 2,
     50                  sel.offsetHeight - scrollbar_width / 2,
     51                  { type: "mouseup" });
     52 }
     53 
     54 function waitForScrollEvent(aWindow) {
     55  return new Promise(resolve => {
     56    aWindow.addEventListener("scroll", () => { SimpleTest.executeSoon(resolve); }, {once: true, capture: true});
     57  });
     58 }
     59 
     60 SimpleTest.waitForExplicitFinish();
     61 
     62 
     63 addLoadEvent(function() {
     64  SpecialPowers.pushPrefEnv({
     65    "set": [["general.smoothScroll", false],
     66            ["toolkit.scrollbox.verticalScrollDistance", 3]]},
     67    async function() {
     68      var sel = document.getElementById("sel");
     69      sel.size = 2;
     70      sel.scrollTo(0, 0);
     71      await waitToClearOutAnyPotentialScrolls(window);
     72      is(sel.scrollTop, 0, "sanity check that we start scrolling from 0");
     73      let waitForScrolling = waitForScrollEvent(window);
     74      clickDownButton();
     75      await waitForScrolling;
     76      var restricted_top = sel.scrollTop;
     77      isnot(restricted_top, 0,
     78            "Expected to scroll when clicking scrollbar button");
     79      sel.size = 10;
     80      sel.scrollTo(0, 0);
     81      await waitToClearOutAnyPotentialScrolls(window);
     82      is(sel.scrollTop, 0, "sanity check that we start scrolling from 0");
     83      waitForScrolling = waitForScrollEvent(window);
     84      clickDownButton();
     85      await waitForScrolling;
     86      isnot(sel.scrollTop, 0,
     87            "Expected to scroll when clicking scrollbar button");
     88      isnot(sel.scrollTop, restricted_top,
     89            "Scrollbar button scrolling should be limited by page size");
     90      SimpleTest.finish();
     91    });
     92 });
     93 </script>
     94 </pre>
     95 </body>
     96 
     97 </html>