1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
/*
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*
* Contributor(s):
* Mihai Șucan <mihai.sucan@gmail.com>
*/
const TEST_URI = "data:text/html;charset=utf-8,Web Console test for bug 613280";
function test() {
addTab(TEST_URI);
browser.addEventListener("load", function onLoad() {
browser.removeEventListener("load", onLoad, true);
openConsole(null, function(HUD) {
content.console.log("foobarBazBug613280");
waitForMessages({
webconsole: HUD,
messages: [{
text: "foobarBazBug613280",
category: CATEGORY_WEBDEV,
severity: SEVERITY_LOG,
}],
}).then(performTest.bind(null, HUD));
});
}, true);
}
function performTest(HUD, [result]) {
let msg = [...result.matched][0];
let input = HUD.jsterm.inputNode;
let selection = getSelection();
let contentSelection = content.getSelection();
let clipboard_setup = function() {
goDoCommand("cmd_copy");
};
let clipboard_copy_done = function() {
finishTest();
};
// Check if we first need to clear any existing selections.
if (selection.rangeCount > 0 || contentSelection.rangeCount > 0 ||
input.selectionStart != input.selectionEnd) {
if (input.selectionStart != input.selectionEnd) {
input.selectionStart = input.selectionEnd = 0;
}
if (selection.rangeCount > 0) {
selection.removeAllRanges();
}
if (contentSelection.rangeCount > 0) {
contentSelection.removeAllRanges();
}
goUpdateCommand("cmd_copy");
}
let controller = top.document.commandDispatcher.
getControllerForCommand("cmd_copy");
is(controller.isCommandEnabled("cmd_copy"), false, "cmd_copy is disabled");
HUD.ui.output.selectMessage(msg);
HUD.outputNode.focus();
goUpdateCommand("cmd_copy");
controller = top.document.commandDispatcher.
getControllerForCommand("cmd_copy");
is(controller.isCommandEnabled("cmd_copy"), true, "cmd_copy is enabled");
let selectionText = HUD.iframeWindow.getSelection() + "";
isnot(selectionText.indexOf("foobarBazBug613280"), -1,
"selection text includes 'foobarBazBug613280'");
waitForClipboard((str) => { return str.trim() == selectionText.trim(); },
clipboard_setup, clipboard_copy_done, clipboard_copy_done);
}
|