diff options
Diffstat (limited to 'dom/events/test/test_hover_mouseleave.html')
-rw-r--r-- | dom/events/test/test_hover_mouseleave.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/dom/events/test/test_hover_mouseleave.html b/dom/events/test/test_hover_mouseleave.html new file mode 100644 index 0000000000..aac25f5b51 --- /dev/null +++ b/dom/events/test/test_hover_mouseleave.html @@ -0,0 +1,47 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Test :hover state on mouseleave.</title> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<script src="/tests/SimpleTest/EventUtils.js"></script> +<link rel="stylesheet" href="/tests/SimpleTest/test.css"/> +<style> +div { + width: 100px; + height: 100px; +} +</style> +<div id="target" style="background: green;"></div> +<div id="outside" style="background: blue;"></div> +<script> +SimpleTest.waitForExplicitFinish(); +let mouseLeaveCount = 0; +let mouseOutCount = 0; + +target.addEventListener("mouseleave", () => { + if (mouseLeaveCount++ != 0) + return; + is(target.matches(":hover"), false, + "Should've been not hovered on mouseleave"); + is(outside.matches(":hover"), true, + "New target should be hovered on mouseleave"); + if (mouseOutCount) + SimpleTest.finish(); +}); + +target.addEventListener("mouseout", () => { + if (mouseOutCount++ != 0) + return; + is(target.matches(":hover"), false, + "Should've been not hovered on mouseleave"); + is(outside.matches(":hover"), true, + "New target should be hovered on mouseleave"); + if (mouseLeaveCount) + SimpleTest.finish(); +}); + +SimpleTest.waitForFocus(() => { + synthesizeMouseAtCenter(outside, { type: "mousemove" }); + synthesizeMouseAtCenter(target, { type: "mousemove" }); + synthesizeMouseAtCenter(outside, { type: "mousemove" }); +}); +</script> |