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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
/* vim:set ts=2 sw=2 sts=2 et: */
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
const TEST_URI = "data:text/html;charset=utf-8,<p>test for bug 642615";
XPCOMUtils.defineLazyServiceGetter(this, "clipboardHelper",
"@mozilla.org/widget/clipboardhelper;1",
"nsIClipboardHelper");
function consoleOpened(HUD) {
let jsterm = HUD.jsterm;
let stringToCopy = "foobazbarBug642615";
jsterm.clearOutput();
ok(!jsterm.completeNode.value, "no completeNode.value");
jsterm.setInputValue("doc");
let completionValue;
// wait for key "u"
function onCompletionValue() {
completionValue = jsterm.completeNode.value;
// Arguments: expected, setup, success, failure.
waitForClipboard(
stringToCopy,
function() {
clipboardHelper.copyString(stringToCopy, document);
},
onClipboardCopy,
finishTest);
}
function onClipboardCopy() {
updateEditUIVisibility();
goDoCommand("cmd_paste");
waitForSuccess(waitForPaste);
}
let waitForPaste = {
name: "no completion value after paste",
validatorFn: function()
{
return !jsterm.completeNode.value;
},
successFn: onClipboardPaste,
failureFn: finishTest,
};
function onClipboardPaste() {
goDoCommand("cmd_undo");
waitForSuccess({
name: "completion value for 'docu' after undo",
validatorFn: function()
{
return !!jsterm.completeNode.value;
},
successFn: onCompletionValueAfterUndo,
failureFn: finishTest,
});
}
function onCompletionValueAfterUndo() {
is(jsterm.completeNode.value, completionValue,
"same completeNode.value after undo");
EventUtils.synthesizeKey("v", {accelKey: true});
waitForSuccess({
name: "no completion after ctrl-v (paste)",
validatorFn: function()
{
return !jsterm.completeNode.value;
},
successFn: finishTest,
failureFn: finishTest,
});
}
EventUtils.synthesizeKey("u", {});
waitForSuccess({
name: "completion value for 'docu'",
validatorFn: function()
{
return !!jsterm.completeNode.value;
},
successFn: onCompletionValue,
failureFn: finishTest,
});
}
function test() {
addTab(TEST_URI);
browser.addEventListener("load", function onLoad() {
browser.removeEventListener("load", onLoad, true);
openConsole(null, consoleOpened);
}, true);
}
|