summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/unit/test_xpcshell_debugging.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/server/tests/unit/test_xpcshell_debugging.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/server/tests/unit/test_xpcshell_debugging.js')
-rw-r--r--devtools/server/tests/unit/test_xpcshell_debugging.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/devtools/server/tests/unit/test_xpcshell_debugging.js b/devtools/server/tests/unit/test_xpcshell_debugging.js
new file mode 100644
index 000000000..7026a02b3
--- /dev/null
+++ b/devtools/server/tests/unit/test_xpcshell_debugging.js
@@ -0,0 +1,48 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Test the xpcshell-test debug support. Ideally we should have this test
+// next to the xpcshell support code, but that's tricky...
+
+function run_test() {
+ let testFile = do_get_file("xpcshell_debugging_script.js");
+
+ // _setupDebuggerServer is from xpcshell-test's head.js
+ let testResumed = false;
+ let DebuggerServer = _setupDebuggerServer([testFile.path], () => testResumed = true);
+ let transport = DebuggerServer.connectPipe();
+ let client = new DebuggerClient(transport);
+ client.connect().then(() => {
+ // Even though we have no tabs, listTabs gives us the chromeDebugger.
+ client.getProcess().then(response => {
+ let actor = response.form.actor;
+ client.attachTab(actor, (response, tabClient) => {
+ tabClient.attachThread(null, (response, threadClient) => {
+ 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.
+ threadClient.addOneTimeListener("paused", (event, packet) => {
+ equal(packet.why.type, "debuggerStatement",
+ "yay - hit the 'debugger' statement in our script");
+ threadClient.resume(() => {
+ finishClient(client);
+ });
+ });
+ threadClient.resume();
+ });
+ // tell the thread to do the initial resume. This would cause the
+ // xpcshell test harness to resume and load the file under test.
+ threadClient.resume(response => {
+ // should have been told to resume the test itself.
+ ok(testResumed);
+ // Now load our test script.
+ load(testFile.path);
+ // and our "paused" listener above should get hit.
+ });
+ });
+ });
+ });
+ });
+ do_test_pending();
+}