From 9cb5b005bbf9b3db4e9690ba306a246119b5b9a7 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 15 Jul 2016 16:31:57 -0700 Subject: [PATCH] Add tests --- src/xterm.js | 2 +- test/test.js | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/xterm.js b/src/xterm.js index 89473aaf..c0308b40 100644 --- a/src/xterm.js +++ b/src/xterm.js @@ -2549,7 +2549,7 @@ */ Terminal.prototype.keyDown = function(ev) { if (this.customKeydownHandler && !this.customKeydownHandler(ev)) { - return; + return false; } var self = this; var result = this.evaluateKeyEscapeSequence(ev); diff --git a/test/test.js b/test/test.js index 5059a242..7c0caa7c 100644 --- a/test/test.js +++ b/test/test.js @@ -57,6 +57,32 @@ describe('xterm.js', function() { }); }); + describe('attachCustomEventHandler', function () { + var evKeyDown = { + preventDefault: function() {}, + stopPropagation: function() {}, + type: 'keydown' + } + + beforeEach(function() { + xterm.handler = function() {}; + xterm.showCursor = function() {}; + xterm.clearSelection = function() {}; + }); + + it('should process the keydown event based on what the handler returns', function () { + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), true); + xterm.attachCustomKeydownHandler(function (ev) { + return ev.keyCode === 77; + }); + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), true); + xterm.attachCustomKeydownHandler(function (ev) { + return ev.keyCode !== 77; + }); + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false); + }); + }); + describe('evaluateCopiedTextProcessing', function () { it('should strip trailing whitespaces and replace nbsps with spaces', function () { var nonBreakingSpace = String.fromCharCode(160),