3 var utils = require("utils");
4 const { module } = utils;
6 var { interfaces: Ci } = Components;
7 var { nsIDOMKeyEvent: KeyEvent } = Ci;
9 var controller, dactyl;
10 var dactyllib = module("dactyl");
11 var jumlib = module("resource://mozmill/modules/jum.js");
13 var setupModule = function (module) {
14 controller = mozmill.getBrowserController();
15 dactyl = new dactyllib.Controller(controller);
17 var teardownModule = function (module) {
32 charCode: "a".charCodeAt(0)
35 charCode: "A".charCodeAt(0),
40 charCode: "a".charCodeAt(0),
45 charCode: "A".charCodeAt(0),
51 keyCode: KeyEvent.DOM_VK_RETURN
55 keyCode: KeyEvent.DOM_VK_RETURN,
59 aliases: [" ", "< >"],
60 charCode: " ".charCodeAt(0)
65 let { DOM, update } = dactyl.modules;
67 for (let [name, object] in Iterator(keyMap)) {
68 for each (let key in (object.aliases || []).concat(name)) {
69 dactyl.assertNoErrors(function () {
70 let result = DOM.Event.parse(key);
71 jumlib.assertEquals(result.length, 1);
73 for (let [k, v] in Iterator(keyDefaults))
74 if (k != "keyCode" || "keyCode" in object || result.keyCode == 0) // TODO
75 jumlib.assertEquals(result[0][k],
76 k in object ? object[k] : v,
77 name + ":" + key + ":" + k);
79 jumlib.assertEquals(DOM.Event.stringify(result[0]),
84 jumlib.assertEquals(name,
86 update({ type: "keypress" },