Bug 1478945 - Test global actors against xpcshell debugger server. r=jdescottes draft
authorAlexandre Poirot <poirot.alex@gmail.com>
Tue, 31 Jul 2018 10:08:51 -0700
changeset 824681 75d5cb94dc3a2e3df85bacc3bb0292309b3b7bd7
parent 824680 5a2296e1bc6c9362ddf5ede761791432195f130f
child 824682 b70ad60b00f4807b0b32dcd4b2260102a48d8e6c
push id117977
push userbmo:poirot.alex@gmail.com
push dateTue, 31 Jul 2018 17:10:58 +0000
reviewersjdescottes
bugs1478945
milestone63.0a1
Bug 1478945 - Test global actors against xpcshell debugger server. r=jdescottes MozReview-Commit-ID: DqCkWqZJErQ
devtools/server/tests/unit/test_xpcshell_debugging.js
--- a/devtools/server/tests/unit/test_xpcshell_debugging.js
+++ b/devtools/server/tests/unit/test_xpcshell_debugging.js
@@ -2,30 +2,40 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 /* eslint-disable no-shadow, max-nested-callbacks */
 
 "use strict";
 
 // Test the xpcshell-test debug support.  Ideally we should have this test
 // next to the xpcshell support code, but that's tricky...
 
+const {getDeviceFront} = require("devtools/shared/fronts/device");
+
 add_task(async function() {
   const testFile = do_get_file("xpcshell_debugging_script.js");
 
   // _setupDebuggerServer is from xpcshell-test's head.js
   /* global _setupDebuggerServer */
   let testResumed = false;
   const DebuggerServer = _setupDebuggerServer([testFile.path], () => {
     testResumed = true;
   });
   const transport = DebuggerServer.connectPipe();
   const client = new DebuggerClient(transport);
   await client.connect();
-  // Even though we have no tabs, listTabs gives us the chromeDebugger.
+
+  // Ensure that global actors are available. Just test the device actor.
+  const rootForm = await client.mainRoot.getRoot();
+  const deviceFront = await getDeviceFront(client, rootForm);
+  const desc = await deviceFront.getDescription();
+  equal(desc.geckobuildid, Services.appinfo.platformBuildID, "device actor works");
+
+  // Even though we have no tabs, getProcess gives us the chromeDebugger.
   const response = await client.getProcess();
+
   const actor = response.form.actor;
   const [, tabClient] = await client.attachTab(actor);
   const [, threadClient] = await tabClient.attachThread(null);
   const onResumed = new Promise(resolve => {
     threadClient.addOneTimeListener("paused", (event, packet) => {
       equal(packet.why.type, "breakpoint",
           "yay - hit the breakpoint at the first line in our script");
       // Resume again - next stop should be our "debugger" statement.