summaryrefslogtreecommitdiffstats
path: root/dom/events/test/test_bug742376.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/events/test/test_bug742376.html')
-rw-r--r--dom/events/test/test_bug742376.html74
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>
+