tor-browser

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

test_bug1728171.html (2343B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>Bug 1728171</title>
      4 <script src="/tests/SimpleTest/SimpleTest.js"></script>
      5 <script src="/tests/SimpleTest/paint_listener.js"></script>
      6 <script src="/tests/gfx/layers/apz/test/mochitest/apz_test_utils.js"></script>
      7 <script src="/tests/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js"></script>
      8 <link rel="stylesheet" href="/tests/SimpleTest/test.css" />
      9 
     10 <style>
     11  #container {
     12    width: 100px;
     13    height: 100px;
     14  }
     15 </style>
     16 
     17 <div id="container"></div>
     18 
     19 <script>
     20  const container = document.getElementById("container");
     21 
     22  add_task(async function testPenContextMenu() {
     23    await SpecialPowers.pushPrefEnv({
     24      set: [
     25        ["dom.w3c_pointer_events.dispatch_by_pointer_messages", true],
     26        ...getPrefs("TOUCH_EVENTS:PAN"),
     27      ],
     28    });
     29 
     30    await waitUntilApzStable();
     31 
     32    let pointerUpSeen = false
     33    container.addEventListener("pointerup", () => {
     34      pointerUpSeen = true;
     35    }, { once: true });
     36    const contextMenuPromise = promiseOneEvent(container, "contextmenu");
     37    await promiseNativePointerTap(container, "pen", 50, 50, { button: 2 });
     38 
     39    const contextmenu = await contextMenuPromise;
     40    ok(pointerUpSeen, "pointerup event was seen");
     41    is(contextmenu.button, 2, ".button indicates secondary button");
     42 
     43    // Close the context menu.
     44    await promiseNativePointerTap(container, "pen", 30, 30);
     45  });
     46 
     47  add_task(async function testPenContextMenuWhenButtonChange() {
     48    await SpecialPowers.pushPrefEnv({
     49      set: [
     50        ["dom.w3c_pointer_events.dispatch_by_pointer_messages", true],
     51        ...getPrefs("TOUCH_EVENTS:PAN"),
     52      ],
     53    });
     54 
     55    await waitUntilApzStable();
     56 
     57    const contextMenuPromise = promiseOneEvent(container, "contextmenu");
     58 
     59    await promiseNativePointerInput(container, "pen", SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, 50, 50, { button: 2 });
     60    // no button
     61    await promiseNativePointerInput(container, "pen", SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, 50, 50);
     62    await promiseNativePointerInput(container, "pen", SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, 50, 50);
     63 
     64    const contextmenu = await contextMenuPromise;
     65    is(contextmenu.button, 2, ".button still indicates secondary button");
     66 
     67    // Close the context menu.
     68    await promiseNativePointerTap(container, "pen", 30, 30);
     69  });
     70 </script>