]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Add tests
authorDaniel Imms <daimms@microsoft.com>
Fri, 15 Jul 2016 23:31:57 +0000 (16:31 -0700)
committerDaniel Imms <daimms@microsoft.com>
Fri, 15 Jul 2016 23:31:57 +0000 (16:31 -0700)
src/xterm.js
test/test.js

index 89473aaf0dde1e42babcad5f422b3369c30aa72a..c0308b4045a136d4a35718ed2cbbe12acbd0ba1a 100644 (file)
      */
     Terminal.prototype.keyDown = function(ev) {
       if (this.customKeydownHandler && !this.customKeydownHandler(ev)) {
-        return;
+        return false;
       }
       var self = this;
       var result = this.evaluateKeyEscapeSequence(ev);
index 5059a24284528d35ea176244f6ca684044915aae..7c0caa7c7a537f9d87eb8c24cc27b002ad24e724 100644 (file)
@@ -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),