|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 |
|
5 "use strict"; |
|
6 |
|
7 const { keyPress } = require("sdk/dom/events/keys"); |
|
8 const { Loader } = require("sdk/test/loader"); |
|
9 const timer = require("sdk/timers"); |
|
10 |
|
11 exports["test unload keyboard observer"] = function(assert, done) { |
|
12 let loader = Loader(module); |
|
13 let element = loader.require("sdk/deprecated/window-utils"). |
|
14 activeBrowserWindow.document.documentElement; |
|
15 let observer = loader.require("sdk/keyboard/observer"). |
|
16 observer; |
|
17 let called = 0; |
|
18 |
|
19 observer.on("keypress", function () { called++; }); |
|
20 |
|
21 // dispatching "keypress" event to trigger observer listeners. |
|
22 keyPress(element, "accel-%"); |
|
23 |
|
24 // Unload the module. |
|
25 loader.unload(); |
|
26 |
|
27 // dispatching "keypress" even once again. |
|
28 keyPress(element, "accel-%"); |
|
29 |
|
30 // Enqueuing asserts to make sure that assertion is not performed early. |
|
31 timer.setTimeout(function () { |
|
32 assert.equal(called, 1, "observer was called before unload only."); |
|
33 done(); |
|
34 }, 0); |
|
35 }; |
|
36 |
|
37 require("test").run(exports); |