browser/devtools/debugger/test/browser_dbg_tabactor-01.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:eef5926bc76a
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 /**
5 * Check extension-added tab actor lifetimes.
6 */
7
8 const CHROME_URL = "chrome://mochitests/content/browser/browser/devtools/debugger/test/"
9 const ACTORS_URL = CHROME_URL + "testactors.js";
10 const TAB_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
11
12 let gClient;
13
14 function test() {
15 if (!DebuggerServer.initialized) {
16 DebuggerServer.init(() => true);
17 DebuggerServer.addBrowserActors();
18 }
19
20 DebuggerServer.addActors(ACTORS_URL);
21
22 let transport = DebuggerServer.connectPipe();
23 gClient = new DebuggerClient(transport);
24 gClient.connect((aType, aTraits) => {
25 is(aType, "browser",
26 "Root actor should identify itself as a browser.");
27
28 addTab(TAB_URL)
29 .then(() => attachTabActorForUrl(gClient, TAB_URL))
30 .then(testTabActor)
31 .then(closeTab)
32 .then(closeConnection)
33 .then(finish)
34 .then(null, aError => {
35 ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
36 });
37 });
38 }
39
40 function testTabActor([aGrip, aResponse]) {
41 let deferred = promise.defer();
42
43 ok(aGrip.testTabActor1,
44 "Found the test tab actor.");
45 ok(aGrip.testTabActor1.contains("test_one"),
46 "testTabActor1's actorPrefix should be used.");
47
48 gClient.request({ to: aGrip.testTabActor1, type: "ping" }, aResponse => {
49 is(aResponse.pong, "pong",
50 "Actor should respond to requests.");
51
52 deferred.resolve();
53 });
54
55 return deferred.promise;
56 }
57
58 function closeTab() {
59 return removeTab(gBrowser.selectedTab);
60 }
61
62 function closeConnection() {
63 let deferred = promise.defer();
64 gClient.close(deferred.resolve);
65 return deferred.promise;
66 }
67
68 registerCleanupFunction(function() {
69 gClient = null;
70 });

mercurial