diff options
Diffstat (limited to 'dom/events/test/test_bug742376.html')
-rw-r--r-- | dom/events/test/test_bug742376.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/dom/events/test/test_bug742376.html b/dom/events/test/test_bug742376.html new file mode 100644 index 000000000..7672ea014 --- /dev/null +++ b/dom/events/test/test_bug742376.html @@ -0,0 +1,74 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=402089 +--> +<head> + <title>Test for Bug 742376</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> + +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=742376">Mozilla Bug 742376</a> +<script class="testbody" type="text/javascript"> + +/** Test for Bug 742376 **/ + +function hasListeners() { + + var Cc = SpecialPowers.Cc; + var Ci = SpecialPowers.Ci; + var dss = Cc["@mozilla.org/devicesensors;1"].getService(Ci.nsIDeviceSensors); + + return dss.hasWindowListener(Ci.nsIDeviceSensorData.TYPE_ORIENTATION, window) || + dss.hasWindowListener(Ci.nsIDeviceSensorData.TYPE_ROTATION_VECTOR, window) || + dss.hasWindowListener(Ci.nsIDeviceSensorData.TYPE_GAME_ROTATION_VECTOR, window); +} + +is(hasListeners(), false, "Must not have listeners before tests start"); + +function dumbListener(event) {} +function dumbListener2(event) {} +function dumbListener3(event) {} + +window.addEventListener("deviceorientation", dumbListener, false); +window.addEventListener("random_event_name", function() {}, false); +window.addEventListener("deviceorientation", dumbListener2, false); + +is(hasListeners(), true, "Listeners should have been added"); + +window.setTimeout(function() { + + window.removeEventListener("deviceorientation", dumbListener, false); + is(hasListeners(), true, "Only some listeners should have been removed"); + window.setTimeout(function() { + + window.removeEventListener("deviceorientation", dumbListener2, false); + window.setTimeout(function() { + is(hasListeners(), false, "Listeners should have been removed"); + testEventHandler(); + }, 0); + }, 0); +}, 0); + +function testEventHandler() { + window.ondeviceorientation = function() {} + window.setTimeout(function() { + is(hasListeners(), true, "Handler should have been added"); + window.ondeviceorientation = null; + window.setTimeout(function() { + is(hasListeners(), false, "Handler should have been removed"); + SimpleTest.finish(); + }, 0); + }, 0) +} + +SimpleTest.waitForExplicitFinish(); + +</script> +</pre> +</body> +</html> + |