tor-browser

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

test_wheel_zoom_on_form_controls.html (2057B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Zoom using wheel should work on form controls</title>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <script src="/tests/SimpleTest/EventUtils.js"></script>
      8  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
      9 </head>
     10 <body>
     11 <p id="display"></p>
     12 <div id="content" style="display: none"></div>
     13 <pre id="test"></pre>
     14 <button id="button" style="width:10px;height:10px;"></button><br>
     15 <input id="input" style="border: 10px solid green;"><br>
     16 <textarea id="textarea" style="border: 10px solid green;"></textarea><br>
     17 <select id="select"><option></option></select>
     18 <select id="list" size=4>
     19  <option>XXXXXXXXXX</option>
     20  <option>XXXXXXXXXX</option>
     21  <option>XXXXXXXXXX</option>
     22  <option>XXXXXXXXXX</option>
     23  <option>XXXXXXXXXX</option>
     24  <option>XXXXXXXXXX</option>
     25 </select>
     26 <script>
     27 
     28  async function testControl(id) {
     29    var initialZoom = SpecialPowers.getFullZoom(window);
     30    var element = document.getElementById(id);
     31 
     32    const zoomHasHappened = SimpleTest.promiseWaitForCondition(() => {
     33      const zoom = SpecialPowers.getFullZoom(window);
     34      return (zoom != initialZoom);
     35    }, id + ": wheel event changed the zoom.");
     36 
     37    let event = {
     38      deltaMode: WheelEvent.DOM_DELTA_LINE,
     39      deltaY: 3,
     40      ctrlKey: true
     41    };
     42    synthesizeWheel(element, 5, 5, event);
     43 
     44    await zoomHasHappened;
     45    isnot(SpecialPowers.getFullZoom(window), initialZoom, id + ": should have zoomed");
     46    SpecialPowers.setFullZoom(window, initialZoom);
     47  }
     48 
     49  async function test() {
     50    await testControl("button");
     51    await testControl("input");
     52    await testControl("textarea");
     53    await testControl("select");
     54    await testControl("list");
     55    SimpleTest.finish();
     56  }
     57 
     58  SimpleTest.waitForExplicitFinish();
     59  SimpleTest.waitForFocus(() => {
     60    SpecialPowers.pushPrefEnv({
     61      "set":[
     62        ["mousewheel.with_control.action", 3],  // Scroll on Ctrl + mousewheel
     63        ["test.events.async.enabled", true],
     64      ]
     65    }, test)
     66  });
     67 </script>
     68 </body>
     69 </html>