summaryrefslogtreecommitdiff
path: root/toolkit/devtools/debugger/test/browser_dbg_sources-bookmarklet.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/devtools/debugger/test/browser_dbg_sources-bookmarklet.js')
-rw-r--r--toolkit/devtools/debugger/test/browser_dbg_sources-bookmarklet.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/toolkit/devtools/debugger/test/browser_dbg_sources-bookmarklet.js b/toolkit/devtools/debugger/test/browser_dbg_sources-bookmarklet.js
new file mode 100644
index 000000000..e4a5841a4
--- /dev/null
+++ b/toolkit/devtools/debugger/test/browser_dbg_sources-bookmarklet.js
@@ -0,0 +1,50 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Make sure javascript bookmarklet scripts appear and load correctly in the source list
+ */
+
+const TAB_URL = EXAMPLE_URL + "doc_script-bookmarklet.html";
+
+const BOOKMARKLET_SCRIPT_CODE = "console.log('bookmarklet executed');";
+
+function test() {
+ let gTab, gPanel, gDebugger;
+ let gSources, gBreakpoints;
+
+ initDebugger(TAB_URL).then(([aTab,, aPanel]) => {
+ gTab = aTab;
+ gPanel = aPanel;
+ gDebugger = gPanel.panelWin;
+ gSources = gDebugger.DebuggerView.Sources;
+ gBreakpoints = gDebugger.DebuggerController.Breakpoints;
+
+ return Task.spawn(function*() {
+ let waitForSource = waitForDebuggerEvents(gPanel, gPanel.panelWin.EVENTS.NEW_SOURCE, 1);
+
+ // NOTE: devtools debugger panel needs to be already open,
+ // or the bookmarklet script will not be shown in the sources panel
+ callInTab(gTab, "injectBookmarklet", BOOKMARKLET_SCRIPT_CODE);
+
+ yield waitForSource;
+
+ is(gSources.values.length, 2, "Should have 2 source");
+
+ let item = gSources.getItemForAttachment(e => {
+ return e.label.indexOf("javascript:") === 0;
+ });
+ ok(item, "Source label is incorrect.");
+
+ let res = yield promiseInvoke(gDebugger.DebuggerController.client,
+ gDebugger.DebuggerController.client.request,
+ { to: item.value, type: "source"});
+
+ ok(res && res.source == BOOKMARKLET_SCRIPT_CODE, "SourceActor reply received");
+ is(res.source, BOOKMARKLET_SCRIPT_CODE, "source is correct");
+ is(res.contentType, "text/javascript", "contentType is correct");
+
+ yield closeDebuggerAndFinish(gPanel);
+ });
+ });
+}