From 3b0ef0bf5361f2c3d91a8de03d86b5ae57a458d6 Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Wed, 26 Jul 2017 09:04:45 +0800 Subject: [PATCH] test: fix test-readline-position w/o ICU PR-URL: https://github.com/nodejs/node/pull/14489 Reviewed-By: James M Snell Reviewed-By: Refael Ackermann --- test/parallel/test-readline-position.js | 26 +++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/test/parallel/test-readline-position.js b/test/parallel/test-readline-position.js index 9a1a011b005..4e1114418eb 100644 --- a/test/parallel/test-readline-position.js +++ b/test/parallel/test-readline-position.js @@ -14,16 +14,26 @@ const ctrlU = { ctrl: true, name: 'u' }; prompt: '' }); - for (const [cursor, string] of [ + const tests = [ [1, 'a'], [2, 'ab'], - [2, '丁'], - [0, '\u0301'], // COMBINING ACUTE ACCENT - [1, 'a\u0301'], // á - [0, '\u20DD'], // COMBINING ENCLOSING CIRCLE - [2, 'a\u20DDb'], // a⃝b - [0, '\u200E'] // LEFT-TO-RIGHT MARK - ]) { + [2, '丁'] + ]; + + // The non-ICU JS implementation of character width calculation is only aware + // of the wide/narrow distinction. Only test these more advanced cases when + // ICU is available. + if (process.binding('config').hasIntl) { + tests.push( + [0, '\u0301'], // COMBINING ACUTE ACCENT + [1, 'a\u0301'], // á + [0, '\u20DD'], // COMBINING ENCLOSING CIRCLE + [2, 'a\u20DDb'], // a⃝b + [0, '\u200E'] // LEFT-TO-RIGHT MARK + ); + } + + for (const [cursor, string] of tests) { rl.write(string); assert.strictEqual(rl._getCursorPos().cols, cursor); rl.write(null, ctrlU);