toolkit/devtools/server/tests/unit/test_add_actors.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 var gClient;
     5 var gActors;
     7 /**
     8  * The purpose of these tests is to verify that it's possible to add actors
     9  * both before and after the DebuggerServer has been initialized, so addons
    10  * that add actors don't have to poll the object for its initialization state
    11  * in order to add actors after initialization but rather can add actors anytime
    12  * regardless of the object's state.
    13  */
    14 function run_test()
    15 {
    16   DebuggerServer.addActors("resource://test/pre_init_global_actors.js");
    17   DebuggerServer.addActors("resource://test/pre_init_tab_actors.js");
    19   DebuggerServer.init(function () { return true; });
    20   DebuggerServer.addBrowserActors();
    22   DebuggerServer.addActors("resource://test/post_init_global_actors.js");
    23   DebuggerServer.addActors("resource://test/post_init_tab_actors.js");
    25   add_test(init);
    26   add_test(test_pre_init_global_actor);
    27   add_test(test_pre_init_tab_actor);
    28   add_test(test_post_init_global_actor);
    29   add_test(test_post_init_tab_actor);
    30   add_test(test_stable_global_actor_instances);
    31   add_test(close_client);
    32   run_next_test();
    33 }
    35 function init()
    36 {
    37   gClient = new DebuggerClient(DebuggerServer.connectPipe());
    38   gClient.connect(function onConnect() {
    39     gClient.listTabs(function onListTabs(aResponse) {
    40       gActors = aResponse;
    41       run_next_test();
    42     });
    43   });
    44 }
    46 function test_pre_init_global_actor()
    47 {
    48   gClient.request({ to: gActors.preInitGlobalActor, type: "ping" },
    49     function onResponse(aResponse) {
    50       do_check_eq(aResponse.message, "pong");
    51       run_next_test();
    52     }
    53   );
    54 }
    56 function test_pre_init_tab_actor()
    57 {
    58   gClient.request({ to: gActors.preInitTabActor, type: "ping" },
    59     function onResponse(aResponse) {
    60       do_check_eq(aResponse.message, "pong");
    61       run_next_test();
    62     }
    63   );
    64 }
    66 function test_post_init_global_actor()
    67 {
    68   gClient.request({ to: gActors.postInitGlobalActor, type: "ping" },
    69     function onResponse(aResponse) {
    70       do_check_eq(aResponse.message, "pong");
    71       run_next_test();
    72     }
    73   );
    74 }
    76 function test_post_init_tab_actor()
    77 {
    78   gClient.request({ to: gActors.postInitTabActor, type: "ping" },
    79     function onResponse(aResponse) {
    80       do_check_eq(aResponse.message, "pong");
    81       run_next_test();
    82     }
    83   );
    84 }
    86 // Get the object object, from the server side, for a given actor ID
    87 function getActorInstance(connID, actorID) {
    88   return DebuggerServer._connections[connID].getActor(actorID);
    89 }
    91 function test_stable_global_actor_instances()
    92 {
    93   // Consider that there is only one connection,
    94   // and the first one is ours
    95   let connID = Object.keys(DebuggerServer._connections)[0];
    96   let postInitGlobalActor = getActorInstance(connID, gActors.postInitGlobalActor);
    97   let preInitGlobalActor = getActorInstance(connID, gActors.preInitGlobalActor);
    98   gClient.listTabs(function onListTabs(aResponse) {
    99     do_check_eq(postInitGlobalActor, getActorInstance(connID, aResponse.postInitGlobalActor));
   100     do_check_eq(preInitGlobalActor, getActorInstance(connID, aResponse.preInitGlobalActor));
   101     run_next_test();
   102   });
   103 }
   105 function close_client() {
   106   gClient.close(() => run_next_test());
   107 }

mercurial