var normalized_shortcuts = [ 'ctrl-shift-m', 'alt-meta-p', ]; var to_normalize = [ ['shift-%', 'shift-5'], ['ShiFT-MeTa-CtRl-AlT-m', 'alt-ctrl-meta-shift-m'], ]; var unshifted = "` 1 2 3 4 5 6 7 8 9 0 - = q w e r t y u i o p [ ] \\ a s d f g h j k l ; ' z x c v b n m , . /"; // shifted = '~ ! @ # $ % ^ & * ( ) _ + Q W E R T Y U I O P { } | A S D F G H J K L : " Z X C V B N M < > ?'; casper.notebook_test(function () { this.then(function () { this.each(unshifted.split(' '), function (self, item) { var result = this.evaluate(function (sc) { var e = IPython.keyboard.shortcut_to_event(sc); var sc2 = IPython.keyboard.event_to_shortcut(e); return sc2; }, item); this.test.assertEquals(result, item, 'Shortcut to event roundtrip: '+item); }); }); this.then(function () { this.each(to_normalize, function (self, item) { var result = this.evaluate(function (pair) { return IPython.keyboard.normalize_shortcut(pair[0]); }, item); this.test.assertEquals(result, item[1], 'Normalize shortcut: '+item[0]); }); }); this.then(function () { this.each(normalized_shortcuts, function (self, item) { var result = this.evaluate(function (sc) { var e = IPython.keyboard.shortcut_to_event(sc); var sc2 = IPython.keyboard.event_to_shortcut(e); return sc2; }, item); this.test.assertEquals(result, item, 'Shortcut to event roundtrip: '+item); }); }); });