diff options
Diffstat (limited to 'dom/base/test/test_domwindowutils.html')
-rw-r--r-- | dom/base/test/test_domwindowutils.html | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/dom/base/test/test_domwindowutils.html b/dom/base/test/test_domwindowutils.html new file mode 100644 index 000000000..218f510ff --- /dev/null +++ b/dom/base/test/test_domwindowutils.html @@ -0,0 +1,85 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8"> + <title>Test for DOMWindowUtils</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<div id="content" style="display: none"></div> +<pre id="test"> +<script type="application/javascript"> +SimpleTest.waitForExplicitFinish(); + +var utils = SpecialPowers.getDOMWindowUtils(window); +function test_sendMouseEventDefaults() { + var x = 1, y = 2, button = 1, clickCount = 2, + modifiers = SpecialPowers.Ci.nsIDOMNSEvent.SHIFT_MASK; + + window.addEventListener("mousedown", function listener(evt) { + window.removeEventListener("mousedown", listener); + // Mandatory args + // coordinates may change slightly due to rounding + ok((evt.clientX <= x+2) && (evt.clientX >= x-2), "check x"); + ok((evt.clientY <= y+2) && (evt.clientY >= y-2), "check y"); + is(evt.button, button, "check button"); + is(evt.detail, clickCount, "check click count"); + is(evt.getModifierState("Shift"), true, "check modifiers"); + + // Default value for optionals + is(evt.mozPressure, 0, "check pressure"); + is(evt.mozInputSource, SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_MOUSE, "check input source"); + is(evt.isSynthesized, undefined, "check isSynthesized is undefined in content"); + is(SpecialPowers.wrap(evt).isSynthesized, true, "check isSynthesized is true from chrome"); + SimpleTest.executeSoon(next); + }); + + // Only pass mandatory arguments and check default values + utils.sendMouseEvent("mousedown", x, y, button, clickCount, modifiers); +} + +function test_sendMouseEventOptionals() { + var x = 1, y = 2, button = 1, clickCount = 3, + modifiers = SpecialPowers.Ci.nsIDOMNSEvent.SHIFT_MASK, + pressure = 0.5, + source = SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_KEYBOARD; + + window.addEventListener("mouseup", function listener(evt) { + window.removeEventListener("mouseup", listener); + is(evt.mozInputSource, source, "explicit input source is valid"); + is(SpecialPowers.wrap(evt).isSynthesized, false, "we can dispatch event that don't look synthesized"); + SimpleTest.executeSoon(next); + }); + + // Check explicit value for optional args + utils.sendMouseEvent("mouseup", x, y, button, clickCount, modifiers, + false, pressure, source, false); +} + +var tests = [ + test_sendMouseEventDefaults, + test_sendMouseEventOptionals +]; + +function next() { + if (!tests.length) { + SimpleTest.finish(); + return; + } + + var test = tests.shift(); + test(); +} + +function start() { + SimpleTest.waitForExplicitFinish(); + SimpleTest.executeSoon(next); +} + +window.addEventListener("load", start); + +</script> +</pre> +</body> +</html> |