]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Add tests for arrow key movements
authorParis Kasidiaris <paris@sourcelair.com>
Mon, 22 Aug 2016 14:21:58 +0000 (17:21 +0300)
committerParis Kasidiaris <paris@sourcelair.com>
Mon, 22 Aug 2016 14:21:58 +0000 (17:21 +0300)
test/test.js

index 33a0003562c2d34f25c0819c31ff9cdbcd2ecba1..7b67f234958c8555bc9dce09e803da03fb2ab8bf 100644 (file)
@@ -55,6 +55,26 @@ describe('xterm.js', function() {
     it('should return \\x1b[5C for ctrl+right', function() {
       assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 39 }).key, '\x1b[1;5C'); // CSI 5 C
     });
+    it('should return \\x1b[5A for ctrl+up', function() {
+      assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 38 }).key, '\x1b[1;5A'); // CSI 5 A
+    });
+    it('should return \\x1b[5B for ctrl+down', function() {
+      assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 40 }).key, '\x1b[1;5B'); // CSI 5 B
+    });
+    // Evalueate alt + arrow key movement, which is a feature of terminal emulators but not VT100
+    // http://unix.stackexchange.com/a/108106
+    it('should return \\x1b[5D for alt+left', function() {
+      assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 37 }).key, '\x1b[1;5D'); // CSI 5 D
+    });
+    it('should return \\x1b[5C for alt+right', function() {
+      assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 39 }).key, '\x1b[1;5C'); // CSI 5 C
+    });
+    it('should return \\x1b[5A for alt+up', function() {
+      assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 38 }).key, '\x1b[1;5A'); // CSI 5 A
+    });
+    it('should return \\x1b[5B for alt+down', function() {
+      assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 40 }).key, '\x1b[1;5B'); // CSI 5 B
+    });
   });
 
   describe('attachCustomEventHandler', function () {
@@ -88,7 +108,7 @@ describe('xterm.js', function() {
       });
       assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false);
     });
-    
+
     it('should alive after reset(ESC c Full Reset (RIS))', function () {
       xterm.attachCustomKeydownHandler(function (ev) {
         return ev.keyCode !== 77;