From 8277d4b0c423417e2110ace07497f2bda597d56f Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Sat, 12 Feb 2011 15:27:33 -0500 Subject: [PATCH] Frob tests. --- common/content/abbreviations.js | 2 +- common/content/dactyl.js | 1 - common/content/mappings.js | 15 ++--- common/tests/functional/testCommands.js | 76 +++++++++++++++++-------- pentadactyl/content/config.js | 6 +- 5 files changed, 65 insertions(+), 35 deletions(-) diff --git a/common/content/abbreviations.js b/common/content/abbreviations.js index 12b7b07c..462b93ea 100644 --- a/common/content/abbreviations.js +++ b/common/content/abbreviations.js @@ -300,7 +300,7 @@ var Abbreviations = Module("abbreviations", { if (args.bang) args["-group"].clear(modes); - else if (!args["-group"].remove(modes, lhs)) + else if (!args["-group"].remove(modes, args[0])) return dactyl.echoerr("E24: No such abbreviation"); }, { argCount: "?", diff --git a/common/content/dactyl.js b/common/content/dactyl.js index 22c9c629..f720ec6f 100644 --- a/common/content/dactyl.js +++ b/common/content/dactyl.js @@ -1368,7 +1368,6 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), { dactyl.echoerr(template.linkifyHelp(error.message)); else dactyl.beep(); - util.reportError(error); return; } if (error.result == Cr.NS_BINDING_ABORTED) diff --git a/common/content/mappings.js b/common/content/mappings.js index 688a9932..42570054 100644 --- a/common/content/mappings.js +++ b/common/content/mappings.js @@ -352,7 +352,7 @@ var Mappings = Module("mappings", { * {@link Map#extraInfo}). * @optional */ - addUserMap: deprecated("groups.mappings.add", function addUserMap() { + addUserMap: deprecated("group.mappings.add", function addUserMap() { let map = this.user.add.apply(this.user, arguments); map.definedAt = contexts.getCaller(Components.stack.caller); return map; @@ -387,17 +387,18 @@ var Mappings = Module("mappings", { * @param {string} filter The filter string to match. */ list: function (modes, filter, hives) { - hives = (hives || mappings.userHives).filter(function (h) modes.some(function (m) h.getStack(m).length)); - let modeSign = ""; modes.filter(function (m) m.char).forEach(function (m) { modeSign += m.char; }); modes.filter(function (m) !m.char).forEach(function (m) { modeSign += " " + m.name; }); modeSign = modeSign.replace(/^ /, ""); + hives = (hives || mappings.userHives).map(function (h) [h, maps(h)]) + .filter(function ([h, m]) !filter || m.length); + function maps(hive) { - let maps = hive.iterate(modes); + let maps = iter.toArray(hive.iterate(modes)); if (filter) - maps = [map for (map in maps) if (map.names[0] == filter)]; + maps = maps.filter(function (m) m.names[0] === filter); return maps; } @@ -410,9 +411,9 @@ var Mappings = Module("mappings", { { - template.map(hives, function (hive) let (i = 0) + template.map(hives, function ([hive, maps]) let (i = 0) + - template.map(maps(hive), function (map) + template.map(maps, function (map) template.map(map.names, function (name) {!i++ ? hive.name : ""} diff --git a/common/tests/functional/testCommands.js b/common/tests/functional/testCommands.js index e11a3cb3..dd2f05b5 100644 --- a/common/tests/functional/testCommands.js +++ b/common/tests/functional/testCommands.js @@ -52,9 +52,6 @@ var tests = { noOutput: ["abc def", "-js abc def"], completions: ["", "abc ", "-js abc "] }, - abclear: { - noOutput: [""] - }, addons: { multiOutput: ["", "dactyl", "-type=extension", "-type=extension dactyl"], completions: [ @@ -118,7 +115,7 @@ var tests = { error: ["", "some-nonexistent-scheme"] }, command: { - init: ["comclear"], + init: ["delc!"], singleOutput: ["", "foobar"], noOutput: ["foo bar", "-js bar baz"], multiOutput: [""], @@ -134,9 +131,6 @@ var tests = { ["-group=user ", hasItems] ] }, - comclear: { - noOutput: [""] - }, contexts: {}, // Not testable in this manner cookies: { anyOutput: ["dactyl.sf.net", "dactyl.sf.net list"], @@ -149,13 +143,14 @@ var tests = { delbmarks: { anyOutput: ["", "about:pentadactyl"] }, delcommand: [ { - init: ["comclear", "command foo bar"], + init: ["delc!", "command foo bar"], + error: [""], completions: [ ["", hasItems], ["-group=", hasItems], ["-group=user ", hasItems] ], - noOutput: ["foo"] + noOutput: ["foo", "! "] }, { init: ["comclear"], @@ -353,7 +348,9 @@ var tests = { completions: [""] }, map: { - multiOutput: ["", "i"], + init: ["unmap!"], + anyOutput: [""], + singleOutput: ["i"], noOutput: [ "i j", "-builtin i j", @@ -363,6 +360,7 @@ var tests = { "-silent i :j", "-mode=ex -b " ], + multiOutput: ["", "i"], error: [ "-mode=some-nonexistent-mode ", "-group=some-nonexistent-group ", @@ -379,16 +377,6 @@ var tests = { ["-javascript i ", hasItems] ] }, - mapclear: { - noOutput: [""], - error: [ - "-group=builtin" - ], - completions: [ - "", - "-group=" - ] - }, mark: { error: ["", "#", "xy"], noOutput: ["y"], @@ -554,7 +542,31 @@ var tests = { noOutput: [""] }, scriptnames: {}, - set: {}, + set: { + multiOutput: [ + "vb?", "cpt?", "messages?", "titlestring?", "au?", "eht?", + "cpt", "messages", "titlestring", "au", "eht" + ], + noOutput: ["vb", "novb"], + completions: [ + ["", hasItems], + ["c", hasItems], + ["cpt=", hasItems], + ["cpt=l", hasItems], + ["cpt+=", hasItems], + ["cpt+=f", hasItems], + ["activate=", hasItems], + ["activate=links,", hasItems], + ["activate+=", hasItems], + ["activate+=links,", hasItems], + ["activate^=", hasItems], + ["activate^=links,", hasItems], + ["activate-=", hasItems], + ["activate-=links,", hasItems], + ["activate!=", hasItems], + ["activate!=links,", hasItems] + ] + }, get setglobal() this.set, get setlocal() this.set, sidebar: { @@ -702,12 +714,28 @@ var tests = { ], error: ["", "foo"] }, - tunmap: {}, - unabbreviate: {}, + unabbreviate: { + noOutput: ["abc", "! "], + error: [""] + }, undo: {}, undoall: {}, unlet: {}, - unmap: {}, + unmap: { + noOutput: [ + "i", + "! " + ], + error: [ + "i", + "-group=builtin k", + "! -group=builtin" + ], + completions: [ + "", + "-group=" + ] + }, verbose: {}, version: { multiOutput: [ diff --git a/pentadactyl/content/config.js b/pentadactyl/content/config.js index dfb98540..1ec62711 100644 --- a/pentadactyl/content/config.js +++ b/pentadactyl/content/config.js @@ -344,8 +344,10 @@ var Config = Module("config", ConfigBase, { modes: function (dactyl, modules, window) { const { config, modes } = modules; config.ignoreKeys = { - "": modes.NORMAL | modes.INSERT, - "": modes.NORMAL | modes.INSERT + "": modes.NORMAL, + "": modes.NORMAL, + "": modes.NORMAL, + "": modes.NORMAL }; config.modes.forEach(function (mode) { modes.addMode.apply(this, mode); }); },