summaryrefslogtreecommitdiffstats
path: root/browser/components/customizableui/test/browser_947914_button_cut.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/customizableui/test/browser_947914_button_cut.js')
-rw-r--r--browser/components/customizableui/test/browser_947914_button_cut.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/browser/components/customizableui/test/browser_947914_button_cut.js b/browser/components/customizableui/test/browser_947914_button_cut.js
new file mode 100644
index 000000000..e6e614368
--- /dev/null
+++ b/browser/components/customizableui/test/browser_947914_button_cut.js
@@ -0,0 +1,57 @@
+/* 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";
+
+var initialLocation = gBrowser.currentURI.spec;
+var globalClipboard;
+
+add_task(function*() {
+ yield BrowserTestUtils.withNewTab({gBrowser, url: "about:blank"}, function*() {
+ info("Check cut button existence and functionality");
+
+ let testText = "cut text test";
+
+ gURLBar.focus();
+ yield PanelUI.show();
+ info("Menu panel was opened");
+
+ let cutButton = document.getElementById("cut-button");
+ ok(cutButton, "Cut button exists in Panel Menu");
+ ok(cutButton.hasAttribute("disabled"), "Cut button is disabled");
+
+ // cut text from URL bar
+ gURLBar.value = testText;
+ gURLBar.focus();
+ gURLBar.select();
+ yield PanelUI.show();
+ info("Menu panel was opened");
+
+ ok(!cutButton.hasAttribute("disabled"), "Cut button is enabled when selecting");
+ cutButton.click();
+ is(gURLBar.value, "", "Selected text is removed from source when clicking on cut");
+
+ // check that the text was added to the clipboard
+ let clipboard = Services.clipboard;
+ let transferable = Cc["@mozilla.org/widget/transferable;1"].createInstance(Ci.nsITransferable);
+ globalClipboard = clipboard.kGlobalClipboard;
+
+ transferable.init(null);
+ transferable.addDataFlavor("text/unicode");
+ clipboard.getData(transferable, globalClipboard);
+ let str = {}, strLength = {};
+ transferable.getTransferData("text/unicode", str, strLength);
+ let clipboardValue = "";
+
+ if (str.value) {
+ str.value.QueryInterface(Ci.nsISupportsString);
+ clipboardValue = str.value.data;
+ }
+ is(clipboardValue, testText, "Data was copied to the clipboard.");
+ });
+});
+
+registerCleanupFunction(function cleanup() {
+ Services.clipboard.emptyClipboard(globalClipboard);
+});