summaryrefslogtreecommitdiffstats
path: root/dom/events/test/test_bug1728171.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dom/events/test/test_bug1728171.html70
1 files changed, 70 insertions, 0 deletions
diff --git a/dom/events/test/test_bug1728171.html b/dom/events/test/test_bug1728171.html
new file mode 100644
index 0000000000..e6136f06d4
--- /dev/null
+++ b/dom/events/test/test_bug1728171.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Bug 1728171</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<script src="/tests/SimpleTest/paint_listener.js"></script>
+<script src="/tests/gfx/layers/apz/test/mochitest/apz_test_utils.js"></script>
+<script src="/tests/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css" />
+
+<style>
+ #container {
+ width: 100px;
+ height: 100px;
+ }
+</style>
+
+<div id="container"></div>
+
+<script>
+ const container = document.getElementById("container");
+
+ add_task(async function testPenContextMenu() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["dom.w3c_pointer_events.dispatch_by_pointer_messages", true],
+ ...getPrefs("TOUCH_EVENTS:PAN"),
+ ],
+ });
+
+ await waitUntilApzStable();
+
+ let pointerUpSeen = false
+ container.addEventListener("pointerup", () => {
+ pointerUpSeen = true;
+ }, { once: true });
+ const contextMenuPromise = promiseOneEvent(container, "contextmenu");
+ await promiseNativePointerTap(container, "pen", 50, 50, { button: 2 });
+
+ const contextmenu = await contextMenuPromise;
+ ok(pointerUpSeen, "pointerup event was seen");
+ is(contextmenu.button, 2, ".button indicates secondary button");
+
+ // Close the context menu.
+ await promiseNativePointerTap(container, "pen", 30, 30);
+ });
+
+ add_task(async function testPenContextMenuWhenButtonChange() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["dom.w3c_pointer_events.dispatch_by_pointer_messages", true],
+ ...getPrefs("TOUCH_EVENTS:PAN"),
+ ],
+ });
+
+ await waitUntilApzStable();
+
+ const contextMenuPromise = promiseOneEvent(container, "contextmenu");
+
+ await promiseNativePointerInput(container, "pen", SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, 50, 50, { button: 2 });
+ // no button
+ await promiseNativePointerInput(container, "pen", SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, 50, 50);
+ await promiseNativePointerInput(container, "pen", SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, 50, 50);
+
+ const contextmenu = await contextMenuPromise;
+ is(contextmenu.button, 2, ".button still indicates secondary button");
+
+ // Close the context menu.
+ await promiseNativePointerTap(container, "pen", 30, 30);
+ });
+</script>