forked from mirrors/gecko-dev
MozReview-Commit-ID: 94mIvlOenCg --HG-- extra : rebase_source : 165971d09f4bf5129aafcf2d6c1e11c1315cd6a1
61 lines
2.1 KiB
JavaScript
61 lines
2.1 KiB
JavaScript
/* 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(async function() {
|
|
await BrowserTestUtils.withNewTab({gBrowser, url: "about:blank"}, async function() {
|
|
info("Check copy button existence and functionality");
|
|
CustomizableUI.addWidgetToArea("edit-controls", CustomizableUI.AREA_FIXED_OVERFLOW_PANEL);
|
|
|
|
let testText = "copy text test";
|
|
|
|
gURLBar.focus();
|
|
info("The URL bar was focused");
|
|
await document.getElementById("nav-bar").overflowable.show();
|
|
info("Menu panel was opened");
|
|
|
|
let copyButton = document.getElementById("copy-button");
|
|
ok(copyButton, "Copy button exists in Panel Menu");
|
|
ok(copyButton.getAttribute("disabled"), "Copy button is initially disabled");
|
|
|
|
// copy text from URL bar
|
|
gURLBar.value = testText;
|
|
gURLBar.focus();
|
|
gURLBar.select();
|
|
await document.getElementById("nav-bar").overflowable.show();
|
|
info("Menu panel was opened");
|
|
|
|
ok(!copyButton.hasAttribute("disabled"), "Copy button is enabled when selecting");
|
|
|
|
copyButton.click();
|
|
is(gURLBar.value, testText, "Selected text is unaltered when clicking copy");
|
|
|
|
// 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() {
|
|
CustomizableUI.reset();
|
|
Services.clipboard.emptyClipboard(globalClipboard);
|
|
});
|