summaryrefslogtreecommitdiff
path: root/browser/devtools/debugger/test/browser_dbg_chrome-debugging.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/devtools/debugger/test/browser_dbg_chrome-debugging.js')
-rw-r--r--browser/devtools/debugger/test/browser_dbg_chrome-debugging.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/browser/devtools/debugger/test/browser_dbg_chrome-debugging.js b/browser/devtools/debugger/test/browser_dbg_chrome-debugging.js
new file mode 100644
index 000000000..78e726e66
--- /dev/null
+++ b/browser/devtools/debugger/test/browser_dbg_chrome-debugging.js
@@ -0,0 +1,68 @@
+/* vim:set ts=2 sw=2 sts=2 et: */
+/*
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Tests that chrome debugging works.
+
+var gClient = null;
+var gTab = null;
+var gMozillaTab = null;
+var gThreadClient = null;
+var gNewGlobal = false;
+var gAttached = false;
+var gChromeSource = false;
+
+const DEBUGGER_TAB_URL = EXAMPLE_URL + "browser_dbg_debuggerstatement.html";
+
+function test()
+{
+ let transport = DebuggerServer.connectPipe();
+ gClient = new DebuggerClient(transport);
+ gClient.connect(function(aType, aTraits) {
+ gTab = addTab(DEBUGGER_TAB_URL, function() {
+ gClient.listTabs(function(aResponse) {
+ let dbg = aResponse.chromeDebugger;
+ ok(dbg, "Found a chrome debugging actor.");
+
+ gClient.addOneTimeListener("newGlobal", function() gNewGlobal = true);
+ gClient.addListener("newSource", onNewSource);
+
+ gClient.attachThread(dbg, function(aResponse, aThreadClient) {
+ gThreadClient = aThreadClient;
+ ok(!aResponse.error, "Attached to the chrome debugger.");
+ gAttached = true;
+
+ // Ensure that a new global will be created.
+ gMozillaTab = gBrowser.addTab("about:mozilla");
+
+ finish_test();
+ });
+ });
+ });
+ });
+}
+
+function onNewSource(aEvent, aPacket)
+{
+ gChromeSource = aPacket.source.url.startsWith("chrome:");
+ finish_test();
+}
+
+function finish_test()
+{
+ if (!gAttached || !gChromeSource) {
+ return;
+ }
+ gClient.removeListener("newSource", onNewSource);
+ gThreadClient.resume(function(aResponse) {
+ removeTab(gMozillaTab);
+ removeTab(gTab);
+ gClient.close(function() {
+ ok(gNewGlobal, "Received newGlobal event.");
+ ok(gChromeSource, "Received newSource event for a chrome: script.");
+ finish();
+ });
+ });
+}