mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-03-28 21:53:31 +01:00
Back out changes accidentally merged from default.
--HG-- branch : key-processing
This commit is contained in:
@@ -302,7 +302,7 @@ var AddonList = Class("AddonList", {
|
|||||||
if (addon && addon.id in this.addons)
|
if (addon && addon.id in this.addons)
|
||||||
this.addons[addon.id].update();
|
this.addons[addon.id].update();
|
||||||
if (this.ready)
|
if (this.ready)
|
||||||
this.modules.commandline.updateOutputHeight(false);
|
this.modules.mow.resize(false);
|
||||||
},
|
},
|
||||||
|
|
||||||
onDisabled: function (addon) { this.update(addon); },
|
onDisabled: function (addon) { this.update(addon); },
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ var DownloadList = Class("DownloadList",
|
|||||||
else {
|
else {
|
||||||
this.addDownload(download.id);
|
this.addDownload(download.id);
|
||||||
|
|
||||||
this.modules.commandline.updateOutputHeight(false);
|
this.modules.mow.resize(false);
|
||||||
this.nodes.list.scrollIntoView(false);
|
this.nodes.list.scrollIntoView(false);
|
||||||
}
|
}
|
||||||
this.update();
|
this.update();
|
||||||
|
|||||||
394
common/tests/functional/testCommands.js
Normal file
394
common/tests/functional/testCommands.js
Normal file
@@ -0,0 +1,394 @@
|
|||||||
|
// Runs a slew of generic command tests
|
||||||
|
|
||||||
|
var dactyllib = require("dactyl");
|
||||||
|
|
||||||
|
var setupModule = function (module) {
|
||||||
|
controller = mozmill.getBrowserController();
|
||||||
|
dactyl = new dactyllib.Controller(controller);
|
||||||
|
|
||||||
|
dactyl.dactyl.options["autocomplete"] = [];
|
||||||
|
dactyl.dactyl.options["wildmode"] = ["list"];
|
||||||
|
};
|
||||||
|
var teardownModule = function (module) {
|
||||||
|
dactyl.teardown();
|
||||||
|
}
|
||||||
|
|
||||||
|
var tests = {
|
||||||
|
"!": {
|
||||||
|
multiOutput: ["echo foo"]
|
||||||
|
},
|
||||||
|
abbreviate: {
|
||||||
|
someOutput: ["", "abc"],
|
||||||
|
noOutput: ["abc def", "-js abc def"],
|
||||||
|
completions: ["", "abc ", "-js abc "]
|
||||||
|
},
|
||||||
|
abclear: {
|
||||||
|
noOutput: [""]
|
||||||
|
},
|
||||||
|
addons: {
|
||||||
|
multiOutput: ["", "dactyl", "-type=extension", "-type=extension dactyl"]
|
||||||
|
},
|
||||||
|
autocmd: {
|
||||||
|
multiOutput: ["", "DOMLoad", "DOMLoad foo"],
|
||||||
|
noOutput: ["DOMLoad foo bar", "-js DOMLoad foo bar"],
|
||||||
|
completions: ["", "DOMLoad foo ", "-js DOMLoad foo "]
|
||||||
|
},
|
||||||
|
back: { noOutput: [""] },
|
||||||
|
bdelete: {
|
||||||
|
init: ["tabopen about:pentadactyl", "tabopen about:pentadactyl"],
|
||||||
|
noOutput: [""],
|
||||||
|
anyOutput: ["about:pentadactyl"]
|
||||||
|
},
|
||||||
|
bmark: {
|
||||||
|
anyOutput: ["bmark", "bmark -tags=foo -titlt=bar -keyword=baz -charset=UTF-8 -post=quux about:pentadactyl"],
|
||||||
|
error: ["bmark -tags=foo -titlt=bar -keyword=baz -charset=nonExistentCharset -post=quux about:pentadactyl"],
|
||||||
|
completions: [
|
||||||
|
"-max=1 -keyword=",
|
||||||
|
"-max=1 -keyword=foo -tags=",
|
||||||
|
"-max=1 -keyword=foo -tags=bar -title=",
|
||||||
|
"-max=1 -keyword=foo -tags=bar -title=baz -charset=",
|
||||||
|
"-max=1 -keyword=foo -tags=bar -title=baz -charset= about:"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
bmarks: {
|
||||||
|
multiOutput: ["-max=1", "-max=1 -keyword=foo -tags=bar -title=baz about:pentadactyl"],
|
||||||
|
completions: [
|
||||||
|
"-max=1 -keyword=",
|
||||||
|
"-max=1 -keyword=foo -tags=",
|
||||||
|
"-max=1 -keyword=foo -tags=bar -title=",
|
||||||
|
"-max=1 -keyword=foo -tags=bar -title=baz about:"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
buffer: {
|
||||||
|
anyOutput: ["", "1"],
|
||||||
|
noOutput: ["!", "! 1"],
|
||||||
|
completions: ["", "1"]
|
||||||
|
},
|
||||||
|
buffers: {
|
||||||
|
multiOutput: ["", "1"],
|
||||||
|
completions: ["", "1"]
|
||||||
|
},
|
||||||
|
cd: {
|
||||||
|
anyOutput: ["", "~/"],
|
||||||
|
completions: ["", "~/"]
|
||||||
|
},
|
||||||
|
colorscheme: {
|
||||||
|
error: ["", "some-non-existent-scheme"]
|
||||||
|
},
|
||||||
|
command: {
|
||||||
|
anyOutput: ["", "foo", "foo bar", "-js bar baz"],
|
||||||
|
error: ["foo bar", "-js bar baz"]
|
||||||
|
},
|
||||||
|
comclear: {
|
||||||
|
noOutput: [""]
|
||||||
|
},
|
||||||
|
contexts: {}, // Not testable in this manner
|
||||||
|
cookies: {
|
||||||
|
anyOutput: ["dactyl.sf.net", "dactyl.sf.net list"],
|
||||||
|
error: [""],
|
||||||
|
completions: ["", "dactyl.sf.net "]
|
||||||
|
},
|
||||||
|
delbmarks: { anyOutput: ["", "about:pentadactyl"] },
|
||||||
|
delcommand: {
|
||||||
|
noOutput: ["foo"]
|
||||||
|
},
|
||||||
|
delmacros: {
|
||||||
|
error: [""],
|
||||||
|
noOutput: ["x"],
|
||||||
|
completions: ["", "x"]
|
||||||
|
},
|
||||||
|
delmapgroup: {}, // Skip for now
|
||||||
|
get delmarks() this.delmacros,
|
||||||
|
get delqmarks() this.delmacros,
|
||||||
|
delstyle: {
|
||||||
|
completions: [
|
||||||
|
"", "-name=", "-name=foo ", "-index=", "-index="
|
||||||
|
]
|
||||||
|
},
|
||||||
|
dialog: {
|
||||||
|
// Skip implementation for now
|
||||||
|
completions: ["", "pre"]
|
||||||
|
},
|
||||||
|
doautoall: {}, // Skip for now
|
||||||
|
doautocmd: {}, // Skip for now
|
||||||
|
downloads: {
|
||||||
|
multiOutput: ["", "dactyl", "-type=extension", "-type=extension dactyl"]
|
||||||
|
},
|
||||||
|
echo: {
|
||||||
|
singleOutput: ["' - '"],
|
||||||
|
multiOutput: ["'\\n'", "window"],
|
||||||
|
completions: [
|
||||||
|
"",
|
||||||
|
"window",
|
||||||
|
"window.",
|
||||||
|
"window['",
|
||||||
|
"commands.get('"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
get echoerr() this.echo,
|
||||||
|
get echomsg() this.echo,
|
||||||
|
else: {}, // Skip for now
|
||||||
|
elseif: {}, // Skip for now
|
||||||
|
emenu: {
|
||||||
|
noOutput: ["View.Zoom.Zoom In", "View.Zoom.Zoom Out"],
|
||||||
|
error: [""],
|
||||||
|
completions: ["", "View."]
|
||||||
|
},
|
||||||
|
endif: {}, // Skip for now
|
||||||
|
execute: {
|
||||||
|
noOutput: ["", "'js " + "".quote() + "'"],
|
||||||
|
someOutput: ["'ls'"]
|
||||||
|
},
|
||||||
|
extadd: { error: [""] },
|
||||||
|
extdelete: { error: [""] },
|
||||||
|
extdisable: { error: [""] },
|
||||||
|
extenable: { error: [""] },
|
||||||
|
extoptions: { error: [""] },
|
||||||
|
extrehash: { error: [""] },
|
||||||
|
exttoggle: { error: [""] },
|
||||||
|
extupdate: { error: [""] },
|
||||||
|
feedkeys: {
|
||||||
|
noOutput: ["<Exc>"],
|
||||||
|
error: [""]
|
||||||
|
},
|
||||||
|
finish: { noOutput: [""] },
|
||||||
|
forward: { noOutput: [""] },
|
||||||
|
frameonly: { noOutput: [""] },
|
||||||
|
hardcopy: {}, // Skip for now
|
||||||
|
help: {
|
||||||
|
noOutput: ["", "intro"],
|
||||||
|
cleanup: ["tabdelete", "tabdelete"],
|
||||||
|
completions: ["", "'wild"]
|
||||||
|
},
|
||||||
|
get helpall() this.help,
|
||||||
|
highlight: {
|
||||||
|
multiOutput: ["", "Help"],
|
||||||
|
noOutput: [
|
||||||
|
"Help foo: bar;",
|
||||||
|
"Help -group=FontCode",
|
||||||
|
"Help -group=FontCode foo: bar;"
|
||||||
|
],
|
||||||
|
completions: [
|
||||||
|
"",
|
||||||
|
"Help",
|
||||||
|
"Help ",
|
||||||
|
"Help -group=",
|
||||||
|
"Help -group=FontCode ",
|
||||||
|
"Help foo: bar; -moz"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
history: {
|
||||||
|
anyOutput: ["-max=1", "-max=1 -sort=+date", "-max=1 dactyl"],
|
||||||
|
completions: [
|
||||||
|
"",
|
||||||
|
"dactyl",
|
||||||
|
"-sort=+",
|
||||||
|
"-sort=-",
|
||||||
|
"-sort=+date ",
|
||||||
|
"-sort=+date dactyl"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
if: {}, // Skip for now
|
||||||
|
javascript: {
|
||||||
|
noOutput: ["''", "'\\n'", "<pre>foo bar</pre>", "window"],
|
||||||
|
completions: [
|
||||||
|
"",
|
||||||
|
"window",
|
||||||
|
"window.",
|
||||||
|
"window['",
|
||||||
|
"commands.get('"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
jumps: {
|
||||||
|
multiOutput: [""]
|
||||||
|
},
|
||||||
|
keepalt: {
|
||||||
|
error: [""],
|
||||||
|
noOutput: ["js ''"],
|
||||||
|
anyOutput: ["echo 'foo'"]
|
||||||
|
},
|
||||||
|
let: {}, // Deprecated. Fuck it.
|
||||||
|
listcommands: {
|
||||||
|
anyOutput: ["", "in"],
|
||||||
|
completions: ["", "in "]
|
||||||
|
},
|
||||||
|
get listkeys() this.listcommands,
|
||||||
|
get listoptions() this.listcommands,
|
||||||
|
loadplugins: {},
|
||||||
|
macros: {
|
||||||
|
multiOutput: [""]
|
||||||
|
},
|
||||||
|
map: {
|
||||||
|
multiOutput: ["", "i"],
|
||||||
|
noOutput: ["i j", "-b i j", "-js i j()", "-ex i :j"]
|
||||||
|
},
|
||||||
|
mapclear: {
|
||||||
|
noOutput: [""]
|
||||||
|
},
|
||||||
|
mapgroup: {},
|
||||||
|
mark: {},
|
||||||
|
marks: {},
|
||||||
|
messages: {},
|
||||||
|
messclear: {},
|
||||||
|
mkpentadactylrc: {},
|
||||||
|
mksyntax: {},
|
||||||
|
mlistkeys: {},
|
||||||
|
mmap: {},
|
||||||
|
mmapclear: {},
|
||||||
|
mnoremap: {},
|
||||||
|
munmap: {},
|
||||||
|
nlistkeys: {},
|
||||||
|
nmap: {},
|
||||||
|
nmapclear: {},
|
||||||
|
nnoremap: {},
|
||||||
|
nohlfind: {},
|
||||||
|
noremap: {},
|
||||||
|
normal: {},
|
||||||
|
nunmap: {},
|
||||||
|
open: {},
|
||||||
|
pageinfo: {},
|
||||||
|
pagestyle: {},
|
||||||
|
preferences: {},
|
||||||
|
pwd: {},
|
||||||
|
qmark: {},
|
||||||
|
qmarks: {},
|
||||||
|
quit: {},
|
||||||
|
quitall: {},
|
||||||
|
redraw: {},
|
||||||
|
rehash: {},
|
||||||
|
reload: {},
|
||||||
|
reloadall: {},
|
||||||
|
restart: {},
|
||||||
|
runtime: {},
|
||||||
|
sanitize: {},
|
||||||
|
saveas: {},
|
||||||
|
sbclose: {},
|
||||||
|
scriptnames: {},
|
||||||
|
set: {},
|
||||||
|
setglobal: {},
|
||||||
|
setlocal: {},
|
||||||
|
sidebar: {},
|
||||||
|
silent: {},
|
||||||
|
source: {},
|
||||||
|
stop: {},
|
||||||
|
stopall: {},
|
||||||
|
style: {},
|
||||||
|
styledisable: {},
|
||||||
|
styleenable: {},
|
||||||
|
styletoggle: {},
|
||||||
|
tab: {},
|
||||||
|
tabattach: {},
|
||||||
|
tabdetach: {},
|
||||||
|
tabdo: {},
|
||||||
|
tabduplicate: {},
|
||||||
|
tablast: {},
|
||||||
|
tabmove: {},
|
||||||
|
tabnext: {},
|
||||||
|
tabonly: {},
|
||||||
|
tabopen: {},
|
||||||
|
tabprevious: {},
|
||||||
|
tabrewind: {},
|
||||||
|
time: {},
|
||||||
|
tlistkeys: {},
|
||||||
|
tmap: {},
|
||||||
|
tmapclear: {},
|
||||||
|
tnoremap: {},
|
||||||
|
toolbarhide: {},
|
||||||
|
toolbarshow: {},
|
||||||
|
toolbartoggle: {},
|
||||||
|
tunmap: {},
|
||||||
|
unabbreviate: {},
|
||||||
|
undo: {},
|
||||||
|
undoall: {},
|
||||||
|
unlet: {},
|
||||||
|
unmap: {},
|
||||||
|
verbose: {},
|
||||||
|
version: {},
|
||||||
|
viewsource: {},
|
||||||
|
vlistkeys: {},
|
||||||
|
vmap: {},
|
||||||
|
vmapclear: {},
|
||||||
|
vnoremap: {},
|
||||||
|
vunmap: {},
|
||||||
|
winclose: {},
|
||||||
|
window: {},
|
||||||
|
winonly: {},
|
||||||
|
winopen: {},
|
||||||
|
wqall: {},
|
||||||
|
yank: {},
|
||||||
|
zoom: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
var global = this;
|
||||||
|
function addTest(cmdName, testName, func) {
|
||||||
|
global["testCommand_" + cmdName + "_" + testName] = func;
|
||||||
|
}
|
||||||
|
|
||||||
|
function runCommands(cmdName, testName, commands, test) {
|
||||||
|
addTest(cmdName, testName, function () {
|
||||||
|
commands.forEach(function (cmd) {
|
||||||
|
// dump("CMD: " + cmdName + " " + cmd + "\n");
|
||||||
|
dactyl.clearMessage();
|
||||||
|
dactyl.closeMessageWindow();
|
||||||
|
cmd = cmdName + cmd.replace(/^(!?) ?/, "$1 ");
|
||||||
|
dactyl.runExCommand(cmd);
|
||||||
|
test(cmd);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var val in Iterator(tests)) (function ([command, params]) {
|
||||||
|
if (params.init)
|
||||||
|
runCommands(command, "init", params.init, function () {});
|
||||||
|
|
||||||
|
// Goddamn stupid fucking MozMill and its stupid fucking sandboxes with their ancient fucking JS versions.
|
||||||
|
for (var val in Iterator(params)) (function ([testName, commands]) {
|
||||||
|
switch (testName) {
|
||||||
|
case "noOutput":
|
||||||
|
runCommands(command, testName, commands, function (cmd) {
|
||||||
|
dactyl.assertMessage(function (msg) !msg, "Unexpected command output: " + cmd);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "anyOutput":
|
||||||
|
runCommands(command, testName, commands, function (cmd) {});
|
||||||
|
break;
|
||||||
|
case "someOutput":
|
||||||
|
runCommands(command, testName, commands, function (cmd) {
|
||||||
|
dactyl.assertMessage(/./, "Expected command output: " + cmd);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "singleOutput":
|
||||||
|
runCommands(command, testName, commands, function (cmd) {
|
||||||
|
dactyl.assertMessageLine(/./, "Expected command output: " + cmd);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "multiOutput":
|
||||||
|
runCommands(command, testName, commands, function (cmd) {
|
||||||
|
dactyl.assertMessageWindowOpen(true, "Expected command output: " + cmd);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "error":
|
||||||
|
addTest(command, testName, function () {
|
||||||
|
commands.forEach(function (cmd) {
|
||||||
|
cmd = command + cmd.replace(/^(!?) ?/, "$1 ");
|
||||||
|
dactyl.assertMessageError(function () {
|
||||||
|
dactyl.runExCommand(cmd);
|
||||||
|
}, null, [], cmd);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "completions":
|
||||||
|
addTest(command, testName, function () {
|
||||||
|
commands.forEach(function (cmd) {
|
||||||
|
dactyl.runExCompletion(command + cmd.replace(/^(!?) ?/, "$1 "));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
})(val);
|
||||||
|
|
||||||
|
if (params.cleanup)
|
||||||
|
runCommands(command, "cleanup", params.cleanup, function () {});
|
||||||
|
})(val);
|
||||||
|
|
||||||
|
// vim: sw=4 ts=8 et:
|
||||||
Reference in New Issue
Block a user