summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/browser/browser_console_context_menu_export_console_output.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/webconsole/test/browser/browser_console_context_menu_export_console_output.js')
-rw-r--r--devtools/client/webconsole/test/browser/browser_console_context_menu_export_console_output.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser/browser_console_context_menu_export_console_output.js b/devtools/client/webconsole/test/browser/browser_console_context_menu_export_console_output.js
new file mode 100644
index 0000000000..bd5d2740be
--- /dev/null
+++ b/devtools/client/webconsole/test/browser/browser_console_context_menu_export_console_output.js
@@ -0,0 +1,53 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const TEST_URI = `data:text/html,<!DOCTYPE html><meta charset=utf8>console API calls<script>
+ console.log({
+ contentObject: "YAY!",
+ deep: ["hello", "world"]
+ });
+</script>`;
+
+add_task(async function () {
+ // Show the content messages
+ await pushPref("devtools.browsertoolbox.scope", "everything");
+
+ await addTab(TEST_URI);
+
+ info("Open the Browser Console");
+ const hud = await BrowserConsoleManager.toggleBrowserConsole();
+
+ info("Wait until the content object is displayed");
+ const message = await waitFor(() =>
+ findConsoleAPIMessage(
+ hud,
+ `Object { contentObject: "YAY!", deep: (2) […] }`
+ )
+ );
+ ok(true, "Content object is displayed in the Browser Console");
+ // Clear clipboard content.
+ SpecialPowers.clipboardCopyString("");
+
+ const menuPopup = await openContextMenu(hud, message);
+ const exportClipboard = menuPopup.querySelector(
+ "#console-menu-export-clipboard"
+ );
+ ok(exportClipboard, "copy menu item is enabled");
+
+ const clipboardText = await waitForClipboardPromise(
+ () => exportClipboard.click(),
+ data => data.includes("YAY")
+ );
+ menuPopup.hidePopup();
+
+ ok(true, "Clipboard text was found and saved");
+ // We're only checking that the export did work.
+ // browser_webconsole_context_menu_export_console_output.js covers the feature in
+ // greater detail.
+ ok(
+ clipboardText.includes(`Object { contentObject: "YAY!", deep: (2) […] }`),
+ "Message was exported to clipboard"
+ );
+});