summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/test/browser_inspector_highlighter-eyedropper-clipboard.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/test/browser_inspector_highlighter-eyedropper-clipboard.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/devtools/client/inspector/test/browser_inspector_highlighter-eyedropper-clipboard.js b/devtools/client/inspector/test/browser_inspector_highlighter-eyedropper-clipboard.js
new file mode 100644
index 0000000000..8d1b355e9f
--- /dev/null
+++ b/devtools/client/inspector/test/browser_inspector_highlighter-eyedropper-clipboard.js
@@ -0,0 +1,63 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+// Test that the eyedropper can copy colors to the clipboard
+
+const HIGHLIGHTER_TYPE = "EyeDropper";
+const ID = "eye-dropper-";
+const TEST_URI =
+ "data:text/html;charset=utf-8,<style>html{background:red}</style>";
+
+add_task(async function () {
+ const helper = await openInspectorForURL(TEST_URI).then(
+ getHighlighterHelperFor(HIGHLIGHTER_TYPE)
+ );
+ helper.prefix = ID;
+
+ const {
+ show,
+ finalize,
+ waitForElementAttributeSet,
+ waitForElementAttributeRemoved,
+ } = helper;
+
+ info("Show the eyedropper with the copyOnSelect option");
+ await show("html", { copyOnSelect: true });
+
+ info(
+ "Make sure to wait until the eyedropper is done taking a screenshot of the page"
+ );
+ await waitForElementAttributeSet("root", "drawn", helper);
+
+ await waitForClipboardPromise(() => {
+ info("Activate the eyedropper so the background color is copied");
+ EventUtils.synthesizeKey("KEY_Enter");
+ }, "#ff0000");
+
+ ok(true, "The clipboard contains the right value");
+
+ await waitForElementAttributeRemoved("root", "drawn", helper);
+ await waitForElementAttributeSet("root", "hidden", helper);
+ ok(true, "The eyedropper is now hidden");
+
+ info("Check that the clipboard still contains the copied color");
+ is(SpecialPowers.getClipboardData("text/plain"), "#ff0000");
+
+ info("Replace the clipboard content with another text");
+ SpecialPowers.clipboardCopyString("not-a-color");
+ is(SpecialPowers.getClipboardData("text/plain"), "not-a-color");
+
+ info("Click on the page again, check the clipboard was not updated");
+ await BrowserTestUtils.synthesizeMouseAtCenter(
+ "body",
+ {},
+ gBrowser.selectedBrowser
+ );
+ // Wait 500ms because nothing is observable when the test is successful.
+ await wait(500);
+ is(SpecialPowers.getClipboardData("text/plain"), "not-a-color");
+
+ finalize();
+});