summaryrefslogtreecommitdiffstats
path: root/dom/events/test/file_bug1484371.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dom/events/test/file_bug1484371.html94
1 files changed, 94 insertions, 0 deletions
diff --git a/dom/events/test/file_bug1484371.html b/dom/events/test/file_bug1484371.html
new file mode 100644
index 0000000000..56c284b733
--- /dev/null
+++ b/dom/events/test/file_bug1484371.html
@@ -0,0 +1,94 @@
+<html>
+ <head>
+ <script src="/tests/SimpleTest/EventUtils.js"></script>
+ <script>
+ var mouseEnterCount = 0;
+ function mouseEnter() {
+ ++mouseEnterCount;
+ }
+ var mouseLeaveCount = 0;
+ function mouseLeave() {
+ ++mouseLeaveCount;
+ }
+
+ var pointerEnterCount = 0;
+ function pointerEnter() {
+ ++pointerEnterCount;
+ }
+ var pointerLeaveCount = 0;
+ function pointerLeave() {
+ ++pointerLeaveCount;
+ }
+
+ function pointerEventsEnabled() {
+ return "onpointerenter" in document.body;
+ }
+
+ function checkEventCounts(expected, msg) {
+ parent.is(mouseEnterCount, expected.mouseEnterCount, msg + ": mouseenter event count");
+ parent.is(mouseLeaveCount, expected.mouseLeaveCount, msg + ": mouseleave event count");
+ if (pointerEventsEnabled()) {
+ parent.is(pointerEnterCount, expected.pointerEnterCount, msg + ": pointerenter event count");
+ parent.is(pointerLeaveCount, expected.pointerLeaveCount, msg + ": pointerleave event count");
+ }
+ }
+
+ function test() {
+ var lightDiv = document.getElementById("lightDiv");
+ var host = document.getElementById("host");
+ var sr = host.attachShadow({mode: "closed"});
+ sr.innerHTML = "<div>shadow DOM<div>";
+ var shadowDiv = sr.firstChild;
+
+ host.addEventListener("mouseenter", mouseEnter, true);
+ host.addEventListener("mouseleave", mouseLeave, true);
+ host.addEventListener("pointerenter", pointerEnter, true);
+ host.addEventListener("pointerleave", pointerLeave, true);
+
+ shadowDiv.addEventListener("mouseenter", mouseEnter, true);
+ shadowDiv.addEventListener("mouseleave", mouseLeave, true);
+ shadowDiv.addEventListener("pointerenter", pointerEnter, true);
+ shadowDiv.addEventListener("pointerleave", pointerLeave, true);
+
+ synthesizeMouseAtCenter(lightDiv, { type: "mousemove" });
+ checkEventCounts({ mouseEnterCount: 0,
+ mouseLeaveCount: 0,
+ pointerEnterCount: 0,
+ pointerLeaveCount: 0
+ },
+ "Entered light DOM"
+ );
+
+ synthesizeMouseAtCenter(shadowDiv, { type: "mousemove" })
+ checkEventCounts({ mouseEnterCount: 2,
+ mouseLeaveCount: 0,
+ pointerEnterCount: 2,
+ pointerLeaveCount: 0
+ },
+ "Entered shadow DOM");
+
+ synthesizeMouseAtCenter(lightDiv, { type: "mousemove" })
+ checkEventCounts({ mouseEnterCount: 2,
+ mouseLeaveCount: 2,
+ pointerEnterCount: 2,
+ pointerLeaveCount: 2
+ },
+ "Left shadow DOM"
+ );
+
+ parent.SimpleTest.finish();
+ }
+
+ function lazyRequestAnimationFrame(fn) {
+ requestAnimationFrame(
+ function() {
+ setTimeout(fn);
+ });
+ }
+ </script>
+ </head>
+ <body onload="lazyRequestAnimationFrame(test)">
+ <div id="lightDiv">light DOM</div>
+ <div id="host"></div>
+ </body>
+</html>