Skip to content
Permalink
Browse files

test: port disabled readline test

Port the disabled readline test to make it runnable in our usual test
suite.

PR-URL: #13091
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  • Loading branch information...
Trott committed May 18, 2017
1 parent bfade5a commit 595e5e3b23a2c41a4abf01b0084b64f524a58a6a
Showing with 104 additions and 120 deletions.
  1. +0 −120 test/disabled/test-readline.js
  2. +104 −0 test/parallel/test-readline.js

This file was deleted.

@@ -43,3 +43,107 @@ const assert = require('assert');

input.write('abc\n');
}

{
const input = new PassThrough();
const rl = readline.createInterface({
terminal: true,
input: input
});

rl.write('foo');
assert.strictEqual(rl.cursor, 3);

const key = {
xterm: {
home: ['\x1b[H', {ctrl: true, name: 'a'}],
end: ['\x1b[F', {ctrl: true, name: 'e'}],
},
gnome: {
home: ['\x1bOH', {ctrl: true, name: 'a'}],
end: ['\x1bOF', {ctrl: true, name: 'e'}]
},
rxvt: {
home: ['\x1b[7', {ctrl: true, name: 'a'}],
end: ['\x1b[8', {ctrl: true, name: 'e'}]
},
putty: {
home: ['\x1b[1~', {ctrl: true, name: 'a'}],
end: ['\x1b[>~', {ctrl: true, name: 'e'}]
}
};

[key.xterm, key.gnome, key.rxvt, key.putty].forEach(function(key) {
rl.write.apply(rl, key.home);
assert.strictEqual(rl.cursor, 0);
rl.write.apply(rl, key.end);
assert.strictEqual(rl.cursor, 3);
});

}

{
const input = new PassThrough();
const rl = readline.createInterface({
terminal: true,
input: input
});

const key = {
xterm: {
home: ['\x1b[H', {ctrl: true, name: 'a'}],
metab: ['\x1bb', {meta: true, name: 'b'}],
metaf: ['\x1bf', {meta: true, name: 'f'}],
}
};

rl.write('foo bar.hop/zoo');
rl.write.apply(rl, key.xterm.home);
[
{cursor: 4, key: key.xterm.metaf},
{cursor: 7, key: key.xterm.metaf},
{cursor: 8, key: key.xterm.metaf},
{cursor: 11, key: key.xterm.metaf},
{cursor: 12, key: key.xterm.metaf},
{cursor: 15, key: key.xterm.metaf},
{cursor: 12, key: key.xterm.metab},
{cursor: 11, key: key.xterm.metab},
{cursor: 8, key: key.xterm.metab},
{cursor: 7, key: key.xterm.metab},
{cursor: 4, key: key.xterm.metab},
{cursor: 0, key: key.xterm.metab},
].forEach(function(action) {
rl.write.apply(rl, action.key);
assert.strictEqual(rl.cursor, action.cursor);
});
}

{
const input = new PassThrough();
const rl = readline.createInterface({
terminal: true,
input: input
});

const key = {
xterm: {
home: ['\x1b[H', {ctrl: true, name: 'a'}],
metad: ['\x1bd', {meta: true, name: 'd'}]
}
};

rl.write('foo bar.hop/zoo');
rl.write.apply(rl, key.xterm.home);
[
'bar.hop/zoo',
'.hop/zoo',
'hop/zoo',
'/zoo',
'zoo',
''
].forEach(function(expectedLine) {
rl.write.apply(rl, key.xterm.metad);
assert.strictEqual(0, rl.cursor);
assert.strictEqual(expectedLine, rl.line);
});
}

0 comments on commit 595e5e3

Please sign in to comment.
You can’t perform that action at this time.