test_event_target.js
Go to the documentation of this file.
1 /* vim: set sw=2 :miv */
2 /*
3 //
4 // BEGIN SONGBIRD GPL
5 //
6 // This file is part of the Songbird web player.
7 //
8 // Copyright(c) 2005-2008 POTI, Inc.
9 // http://songbirdnest.com
10 //
11 // This file may be licensed under the terms of of the
12 // GNU General Public License Version 2 (the "GPL").
13 //
14 // Software distributed under the License is distributed
15 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
16 // express or implied. See the GPL for the specific language
17 // governing rights and limitations.
18 //
19 // You should have received a copy of the GPL along with this
20 // program. If not, go to http://www.gnu.org/licenses/gpl.html
21 // or write to the Free Software Foundation, Inc.,
22 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23 //
24 // END SONGBIRD GPL
25 //
26 */
27 
32 Components.utils.import("resource://app/jsmodules/ArrayConverter.jsm");
33 
34 var hasEvent = false;
35 
36 function onEvent(aEvent) {
37  hasEvent = true;
38 }
39 
40 function runTest () {
41  var manager = Components.classes["@songbirdnest.com/Songbird/DeviceManager;2"]
42  .getService(Components.interfaces.sbIDeviceManager2);
43 
44  manager.addEventListener(onEvent);
45 
46  var event = manager.createEvent(Components.interfaces.sbIDeviceEvent.COMMAND_DEVICE_BASE);
47  manager.dispatchEvent(event);
48  assertTrue(hasEvent, "event listener not fired");
49 
50  manager.removeEventListener(onEvent);
51  hasEvent = false;
52  event = manager.createEvent(event.COMMAND_DEVICE_BASE);
53  manager.dispatchEvent(event);
54  assertFalse(hasEvent, "event listener not removed");
55 
56  // stress test, yay!
57  var eventTest = Components.classes["@songbirdnest.com/Songbird/Device/EventTester/StressThreads;1"]
58  .createInstance(Components.interfaces.nsIRunnable);
59  eventTest.run();
60 
61  // test the sequencing too
62  var eventTest = Components.classes["@songbirdnest.com/Songbird/Device/EventTester/Removal;1"]
63  .createInstance(Components.interfaces.nsIRunnable);
64  eventTest.run();
65 }
var event
function assertTrue(aTest, aMessage)
var hasEvent
function assertFalse(aTest, aMessage)
function onEvent(aEvent)
function runTest()
Advanced DataRemote unit tests.