Skip to content

Commit

Permalink
test: port disabled readline test
Browse files Browse the repository at this point in the history
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 21, 2017
1 parent bfade5a commit 595e5e3
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 120 deletions.
120 changes: 0 additions & 120 deletions test/disabled/test-readline.js

This file was deleted.

104 changes: 104 additions & 0 deletions test/parallel/test-readline.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.