|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 Cu.import("resource://gre/modules/devtools/dbg-server.jsm"); |
|
5 Cu.import("resource://gre/modules/devtools/dbg-client.jsm"); |
|
6 |
|
7 function run_test() |
|
8 { |
|
9 // Should get an exception if we try to interact with DebuggerServer |
|
10 // before we initialize it... |
|
11 check_except(function() { |
|
12 DebuggerServer.openListener(-1); |
|
13 }); |
|
14 check_except(DebuggerServer.closeListener); |
|
15 check_except(DebuggerServer.connectPipe); |
|
16 |
|
17 // Allow incoming connections. |
|
18 DebuggerServer.init(function () { return true; }); |
|
19 |
|
20 // These should still fail because we haven't added a createRootActor |
|
21 // implementation yet. |
|
22 check_except(function() { |
|
23 DebuggerServer.openListener(-1); |
|
24 }); |
|
25 check_except(DebuggerServer.closeListener); |
|
26 check_except(DebuggerServer.connectPipe); |
|
27 |
|
28 DebuggerServer.addActors("resource://test/testactors.js"); |
|
29 |
|
30 // Now they should work. |
|
31 DebuggerServer.openListener(-1); |
|
32 DebuggerServer.closeListener(); |
|
33 |
|
34 // Make sure we got the test's root actor all set up. |
|
35 let client1 = DebuggerServer.connectPipe(); |
|
36 client1.hooks = { |
|
37 onPacket: function(aPacket1) { |
|
38 do_check_eq(aPacket1.from, "root"); |
|
39 do_check_eq(aPacket1.applicationType, "xpcshell-tests"); |
|
40 |
|
41 // Spin up a second connection, make sure it has its own root |
|
42 // actor. |
|
43 let client2 = DebuggerServer.connectPipe(); |
|
44 client2.hooks = { |
|
45 onPacket: function(aPacket2) { |
|
46 do_check_eq(aPacket2.from, "root"); |
|
47 do_check_neq(aPacket1.testConnectionPrefix, |
|
48 aPacket2.testConnectionPrefix); |
|
49 client2.close(); |
|
50 }, |
|
51 onClosed: function(aResult) { |
|
52 client1.close(); |
|
53 }, |
|
54 }; |
|
55 client2.ready(); |
|
56 }, |
|
57 |
|
58 onClosed: function(aResult) { |
|
59 do_test_finished(); |
|
60 }, |
|
61 }; |
|
62 |
|
63 client1.ready(); |
|
64 do_test_pending(); |
|
65 } |