From dc848587871fe3f8c8e1ed8c2c89ade62c062c7c Mon Sep 17 00:00:00 2001 From: MaleDong Date: Fri, 22 Jun 2018 19:08:58 +0800 Subject: [PATCH] test,util: add missing tests and conditions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1) Add missing unit tests by `ucs-2` in different kinds of cases. 2) Add missing unit tests by `usc-2` in different kinds of cases. 3) Fix a bug:We cannot find `ucs-2` in `case 5`'s `if` condition after `toLowerCase()` PR-URL: https://github.com/nodejs/node/pull/21455 Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat --- benchmark/util/normalize-encoding.js | 25 +++++++++++++------ lib/internal/util.js | 3 ++- .../test-internal-util-normalizeencoding.js | 7 ++++++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/benchmark/util/normalize-encoding.js b/benchmark/util/normalize-encoding.js index 96eab1912d0761..65cf5b1b0ce18c 100644 --- a/benchmark/util/normalize-encoding.js +++ b/benchmark/util/normalize-encoding.js @@ -4,18 +4,25 @@ const common = require('../common.js'); const assert = require('assert'); const groupedInputs = { - group_common: ['undefined', 'utf8', 'utf-8', 'base64', 'binary', 'latin1'], - group_upper: ['UTF-8', 'UTF8', 'UCS2', 'UTF-16LE', 'UTF16LE', 'BASE64'], - group_uncommon: [ 'foo', '1', 'false', 'undefined', '[]'], + group_common: ['undefined', 'utf8', 'utf-8', 'base64', + 'binary', 'latin1', 'ucs-2', 'usc-2'], + group_upper: ['UTF-8', 'UTF8', 'UCS2', 'UTF-16LE', + 'UTF16LE', 'BASE64', 'UCS-2', 'USC-2'], + group_uncommon: ['foo', '1', 'false', 'undefined', '[]', '{}'], group_misc: ['', 'utf16le', 'usc2', 'hex', 'HEX', 'BINARY'] }; const inputs = [ - '', 'utf8', 'utf-8', 'UTF-8', - 'UTF8', 'Utf8', 'uTf-8', 'utF-8', 'ucs2', - 'UCS2', 'utf16le', 'utf-16le', 'UTF-16LE', 'UTF16LE', + '', + 'utf8', 'utf-8', 'UTF-8', + 'UTF8', 'Utf8', 'uTf-8', 'utF-8', + 'ucs2', 'UCS2', 'UcS2', + 'USC2', 'usc2', 'uSc2', + 'ucs-2', 'UCS-2', 'UcS-2', + 'usc-2', 'USC-2', 'uSc-2', + 'utf16le', 'utf-16le', 'UTF-16LE', 'UTF16LE', 'binary', 'BINARY', 'latin1', 'base64', 'BASE64', - 'hex', 'HEX', 'foo', '1', 'false', 'undefined', '[]']; + 'hex', 'HEX', 'foo', '1', 'false', 'undefined', '[]', '{}']; const bench = common.createBenchmark(main, { input: inputs.concat(Object.keys(groupedInputs)), @@ -42,6 +49,8 @@ function getInput(input) { return [undefined]; case '[]': return [[]]; + case '{}': + return [{}]; default: return [input]; } @@ -53,7 +62,7 @@ function main({ input, n }) { var noDead = ''; bench.start(); - for (var i = 0; i < n; i += 1) { + for (var i = 0; i < n; ++i) { for (var j = 0; j < inputs.length; ++j) { noDead = normalizeEncoding(inputs[j]); } diff --git a/lib/internal/util.js b/lib/internal/util.js index 07515e2e090daa..bc513e7fedf79e 100644 --- a/lib/internal/util.js +++ b/lib/internal/util.js @@ -115,7 +115,7 @@ function slowCases(enc) { if (enc === 'ucs2' || enc === 'UCS2') return 'utf16le'; enc = `${enc}`.toLowerCase(); if (enc === 'utf8') return 'utf8'; - if (enc === 'ucs2' || enc === 'UCS2') return 'utf16le'; + if (enc === 'ucs2') return 'utf16le'; break; case 3: if (enc === 'hex' || enc === 'HEX' || `${enc}`.toLowerCase() === 'hex') @@ -131,6 +131,7 @@ function slowCases(enc) { if (enc === 'utf-8') return 'utf8'; if (enc === 'ascii') return 'ascii'; if (enc === 'usc-2') return 'utf16le'; + if (enc === 'ucs-2') return 'utf16le'; break; case 6: if (enc === 'base64') return 'base64'; diff --git a/test/parallel/test-internal-util-normalizeencoding.js b/test/parallel/test-internal-util-normalizeencoding.js index 081255cef02f2a..2f16d55fad247c 100644 --- a/test/parallel/test-internal-util-normalizeencoding.js +++ b/test/parallel/test-internal-util-normalizeencoding.js @@ -18,10 +18,16 @@ const tests = [ ['utF-8', 'utf8'], ['ucs2', 'utf16le'], ['UCS2', 'utf16le'], + ['ucs-2', 'utf16le'], + ['UCS-2', 'utf16le'], + ['UcS-2', 'utf16le'], ['utf16le', 'utf16le'], ['utf-16le', 'utf16le'], ['UTF-16LE', 'utf16le'], ['UTF16LE', 'utf16le'], + ['usc-2', 'utf16le'], + ['USC-2', 'utf16le'], + ['uSc-2', 'utf16le'], ['binary', 'latin1'], ['BINARY', 'latin1'], ['latin1', 'latin1'], @@ -36,6 +42,7 @@ const tests = [ [NaN, undefined], [0, undefined], [[], undefined], + [{}, undefined] ]; tests.forEach((e, i) => {