summaryrefslogtreecommitdiff
path: root/browser/devtools/debugger/test/browser_dbg_tabactor-02.js
blob: 492f473955f6241f9b7b778aa6e88bbdd2b9daaf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

/**
 * Check extension-added tab actor lifetimes.
 */

var gTab1 = null;
var gTab1Actor = null;

var gClient = null;

function test()
{
  DebuggerServer.addActors("chrome://mochitests/content/browser/browser/devtools/debugger/test/testactors.js");

  let transport = DebuggerServer.connectPipe();
  gClient = new DebuggerClient(transport);
  gClient.connect(function (aType, aTraits) {
    is(aType, "browser", "Root actor should identify itself as a browser.");
    get_tab();
  });
}

function get_tab()
{
  gTab1 = addTab(TAB1_URL, function() {
    attach_tab_actor_for_url(gClient, TAB1_URL, function(aGrip) {
      gTab1Actor = aGrip.actor;
      ok(aGrip.testTabActor1, "Found the test tab actor.")
      ok(aGrip.testTabActor1.indexOf("testone") >= 0,
         "testTabActor's actorPrefix should be used.");
      gClient.request({ to: aGrip.testTabActor1, type: "ping" }, function(aResponse) {
        is(aResponse.pong, "pong", "Actor should respond to requests.");
        close_tab(aResponse.actor);
      });
    });
  });
}

function close_tab(aTestActor)
{
  removeTab(gTab1);
  try {
    gClient.request({ to: aTestActor, type: "ping" }, function (aResponse) {
      is(aResponse, undefined, "testTabActor1 didn't go away with the tab.");
      finish_test();
    });
  } catch (e) {
    is(e.message, "'ping' request packet has no destination.",
       "testTabActor1 should have gone away with the tab.");
    finish_test();
  }
}

function finish_test()
{
  gClient.close(function () {
    finish();
  });
}