Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 /**
5 * Check extension-added tab actor lifetimes.
6 */
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";
12 let gClient;
14 function test() {
15 if (!DebuggerServer.initialized) {
16 DebuggerServer.init(() => true);
17 DebuggerServer.addBrowserActors();
18 }
20 DebuggerServer.addActors(ACTORS_URL);
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.");
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 }
40 function testTabActor([aGrip, aResponse]) {
41 let deferred = promise.defer();
43 ok(aGrip.testTabActor1,
44 "Found the test tab actor.");
45 ok(aGrip.testTabActor1.contains("test_one"),
46 "testTabActor1's actorPrefix should be used.");
48 gClient.request({ to: aGrip.testTabActor1, type: "ping" }, aResponse => {
49 is(aResponse.pong, "pong",
50 "Actor should respond to requests.");
52 deferred.resolve();
53 });
55 return deferred.promise;
56 }
58 function closeTab() {
59 return removeTab(gBrowser.selectedTab);
60 }
62 function closeConnection() {
63 let deferred = promise.defer();
64 gClient.close(deferred.resolve);
65 return deferred.promise;
66 }
68 registerCleanupFunction(function() {
69 gClient = null;
70 });