|
| 1 | +// Flags: --expose_internals |
1 | 2 | 'use strict';
|
2 | 3 | require('../common');
|
3 |
| -var assert = require('assert'); |
4 |
| -var readline = require('readline'); |
5 |
| -var EventEmitter = require('events').EventEmitter; |
6 |
| -var inherits = require('util').inherits; |
| 4 | +const assert = require('assert'); |
| 5 | +const readline = require('readline'); |
| 6 | +const internalReadline = require('internal/readline'); |
| 7 | +const EventEmitter = require('events').EventEmitter; |
| 8 | +const inherits = require('util').inherits; |
7 | 9 |
|
8 | 10 | function FakeInput() {
|
9 | 11 | EventEmitter.call(this);
|
@@ -322,37 +324,31 @@ function isWarned(emitter) {
|
322 | 324 | }
|
323 | 325 |
|
324 | 326 | // wide characters should be treated as two columns.
|
325 |
| - assert.equal(readline.isFullWidthCodePoint('a'.charCodeAt(0)), false); |
326 |
| - assert.equal(readline.isFullWidthCodePoint('あ'.charCodeAt(0)), true); |
327 |
| - assert.equal(readline.isFullWidthCodePoint('谢'.charCodeAt(0)), true); |
328 |
| - assert.equal(readline.isFullWidthCodePoint('고'.charCodeAt(0)), true); |
329 |
| - assert.equal(readline.isFullWidthCodePoint(0x1f251), true); // surrogate |
330 |
| - assert.equal(readline.codePointAt('ABC', 0), 0x41); |
331 |
| - assert.equal(readline.codePointAt('あいう', 1), 0x3044); |
332 |
| - assert.equal(readline.codePointAt('\ud800\udc00', 0), // surrogate |
333 |
| - 0x10000); |
334 |
| - assert.equal(readline.codePointAt('\ud800\udc00A', 2), // surrogate |
335 |
| - 0x41); |
336 |
| - assert.equal(readline.getStringWidth('abcde'), 5); |
337 |
| - assert.equal(readline.getStringWidth('古池や'), 6); |
338 |
| - assert.equal(readline.getStringWidth('ノード.js'), 9); |
339 |
| - assert.equal(readline.getStringWidth('你好'), 4); |
340 |
| - assert.equal(readline.getStringWidth('안녕하세요'), 10); |
341 |
| - assert.equal(readline.getStringWidth('A\ud83c\ude00BC'), 5); // surrogate |
| 327 | + assert.equal(internalReadline.isFullWidthCodePoint('a'.charCodeAt(0)), false); |
| 328 | + assert.equal(internalReadline.isFullWidthCodePoint('あ'.charCodeAt(0)), true); |
| 329 | + assert.equal(internalReadline.isFullWidthCodePoint('谢'.charCodeAt(0)), true); |
| 330 | + assert.equal(internalReadline.isFullWidthCodePoint('고'.charCodeAt(0)), true); |
| 331 | + assert.equal(internalReadline.isFullWidthCodePoint(0x1f251), true); |
| 332 | + assert.equal(internalReadline.getStringWidth('abcde'), 5); |
| 333 | + assert.equal(internalReadline.getStringWidth('古池や'), 6); |
| 334 | + assert.equal(internalReadline.getStringWidth('ノード.js'), 9); |
| 335 | + assert.equal(internalReadline.getStringWidth('你好'), 4); |
| 336 | + assert.equal(internalReadline.getStringWidth('안녕하세요'), 10); |
| 337 | + assert.equal(internalReadline.getStringWidth('A\ud83c\ude00BC'), 5); |
342 | 338 |
|
343 | 339 | // check if vt control chars are stripped
|
344 |
| - assert.equal(readline |
| 340 | + assert.equal(internalReadline |
345 | 341 | .stripVTControlCharacters('\u001b[31m> \u001b[39m'), '> ');
|
346 |
| - assert.equal(readline |
| 342 | + assert.equal(internalReadline |
347 | 343 | .stripVTControlCharacters('\u001b[31m> \u001b[39m> '), '> > ');
|
348 |
| - assert.equal(readline |
| 344 | + assert.equal(internalReadline |
349 | 345 | .stripVTControlCharacters('\u001b[31m\u001b[39m'), '');
|
350 |
| - assert.equal(readline |
| 346 | + assert.equal(internalReadline |
351 | 347 | .stripVTControlCharacters('> '), '> ');
|
352 |
| - assert.equal(readline.getStringWidth('\u001b[31m> \u001b[39m'), 2); |
353 |
| - assert.equal(readline.getStringWidth('\u001b[31m> \u001b[39m> '), 4); |
354 |
| - assert.equal(readline.getStringWidth('\u001b[31m\u001b[39m'), 0); |
355 |
| - assert.equal(readline.getStringWidth('> '), 2); |
| 348 | + assert.equal(internalReadline.getStringWidth('\u001b[31m> \u001b[39m'), 2); |
| 349 | + assert.equal(internalReadline.getStringWidth('\u001b[31m> \u001b[39m> '), 4); |
| 350 | + assert.equal(internalReadline.getStringWidth('\u001b[31m\u001b[39m'), 0); |
| 351 | + assert.equal(internalReadline.getStringWidth('> '), 2); |
356 | 352 |
|
357 | 353 | assert.deepStrictEqual(fi.listeners(terminal ? 'keypress' : 'data'), []);
|
358 | 354 |
|
|
0 commit comments