diff -r 000000000000 -r 6474c204b198 toolkit/devtools/server/tests/unit/test_dbgglobal.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/devtools/server/tests/unit/test_dbgglobal.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,65 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +Cu.import("resource://gre/modules/devtools/dbg-server.jsm"); +Cu.import("resource://gre/modules/devtools/dbg-client.jsm"); + +function run_test() +{ + // Should get an exception if we try to interact with DebuggerServer + // before we initialize it... + check_except(function() { + DebuggerServer.openListener(-1); + }); + check_except(DebuggerServer.closeListener); + check_except(DebuggerServer.connectPipe); + + // Allow incoming connections. + DebuggerServer.init(function () { return true; }); + + // These should still fail because we haven't added a createRootActor + // implementation yet. + check_except(function() { + DebuggerServer.openListener(-1); + }); + check_except(DebuggerServer.closeListener); + check_except(DebuggerServer.connectPipe); + + DebuggerServer.addActors("resource://test/testactors.js"); + + // Now they should work. + DebuggerServer.openListener(-1); + DebuggerServer.closeListener(); + + // Make sure we got the test's root actor all set up. + let client1 = DebuggerServer.connectPipe(); + client1.hooks = { + onPacket: function(aPacket1) { + do_check_eq(aPacket1.from, "root"); + do_check_eq(aPacket1.applicationType, "xpcshell-tests"); + + // Spin up a second connection, make sure it has its own root + // actor. + let client2 = DebuggerServer.connectPipe(); + client2.hooks = { + onPacket: function(aPacket2) { + do_check_eq(aPacket2.from, "root"); + do_check_neq(aPacket1.testConnectionPrefix, + aPacket2.testConnectionPrefix); + client2.close(); + }, + onClosed: function(aResult) { + client1.close(); + }, + }; + client2.ready(); + }, + + onClosed: function(aResult) { + do_test_finished(); + }, + }; + + client1.ready(); + do_test_pending(); +}