summaryrefslogtreecommitdiffstats
path: root/devtools/client/styleeditor/test/browser_styleeditor_copyurl.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/styleeditor/test/browser_styleeditor_copyurl.js')
-rw-r--r--devtools/client/styleeditor/test/browser_styleeditor_copyurl.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/devtools/client/styleeditor/test/browser_styleeditor_copyurl.js b/devtools/client/styleeditor/test/browser_styleeditor_copyurl.js
new file mode 100644
index 0000000000..8b2919a173
--- /dev/null
+++ b/devtools/client/styleeditor/test/browser_styleeditor_copyurl.js
@@ -0,0 +1,43 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test to check the 'Copy URL' functionality in the context menu item for stylesheets.
+
+const TESTCASE_URI = TEST_BASE_HTTPS + "simple.html";
+
+add_task(async function () {
+ const { panel, ui } = await openStyleEditorForURL(TESTCASE_URI);
+
+ const doc = panel.panelWindow.document;
+ const contextMenu = getContextMenuElement(panel);
+ const copyUrlItem = doc.getElementById("context-copyurl");
+
+ const onContextMenuShown = new Promise(resolve => {
+ contextMenu.addEventListener("popupshown", resolve, { once: true });
+ });
+
+ info("Right-click the first stylesheet editor.");
+ const editor = ui.editors[0];
+
+ is(editor.friendlyName, "simple.css", "editor is the expected one");
+
+ const stylesheetEl = editor.summary.querySelector(".stylesheet-name");
+ await EventUtils.synthesizeMouseAtCenter(
+ stylesheetEl,
+ { button: 2, type: "contextmenu" },
+ panel.panelWindow
+ );
+ await onContextMenuShown;
+
+ ok(!copyUrlItem.hidden, "Copy URL menu item should be showing.");
+
+ info(
+ "Click on Copy URL menu item and wait for the URL to be copied to the clipboard."
+ );
+ await waitForClipboardPromise(
+ () => contextMenu.activateItem(copyUrlItem),
+ `${TEST_BASE_HTTPS}simple.css`
+ );
+});