diff options
Diffstat (limited to 'dom/events/test/test_legacy_non-primary_click.html')
-rw-r--r-- | dom/events/test/test_legacy_non-primary_click.html | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/dom/events/test/test_legacy_non-primary_click.html b/dom/events/test/test_legacy_non-primary_click.html new file mode 100644 index 0000000000..6906282aa2 --- /dev/null +++ b/dom/events/test/test_legacy_non-primary_click.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Test for dispatching of legacy non-primary click when domain in pref</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script src="/tests/SimpleTest/EventUtils.js"></script> + <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<p id="display"></p> +<div id="content" style="display: none"></div> +<pre id="test"></pre> +<a id="link-test" href="example.org">example link</a> +<script> +"use strict"; +SimpleTest.waitForExplicitFinish(); + +const HACK_PREF = "dom.mouseevent.click.hack.use_legacy_non-primary_dispatch"; +const testEl = document.getElementById("test"); +const linkEl = document.getElementById("link-test"); +let seenClick = false; + +SpecialPowers.pushPrefEnv( + { set: [[HACK_PREF, document.domain]] }, + () => { + SimpleTest.waitForFocus(() => { + // Test seeing the non-primary 'click' + document.addEventListener("click", (e) => { + ok(true, "Saw 'click' event"); + seenClick = true; + }, { once: true }); + document.addEventListener("auxclick", (e) => { + ok(true, "Saw 'auxclick' event"); + ok(seenClick, "Saw 'click' event before 'auxclick' event"); + }, { once: true }); + synthesizeMouseAtCenter(testEl, { button: 1 }); + + // Test preventDefaulting on non-primary 'click' + document.addEventListener("click", (e) => { + is(e.target, linkEl, "Saw 'click' on link"); + e.preventDefault(); + SimpleTest.finish(); + }, { once: true, capture: true }); + document.addEventListener("auxclick", (e) => { + ok(false, "Shouldn't have got 'auxclick' after preventDefaulting 'click'"); + }, { once: true }); + synthesizeMouseAtCenter(linkEl, { button: 1 }); + }); + }); +</script> +</body> +</html> |