Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ed64119

Browse filesBrowse files
tony-goRafaelGSS
authored andcommitted
test: add more cases for parse-encoding
PR-URL: #44427 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Qingyu Deng <i@ayase-lab.com>
1 parent 59e3601 commit ed64119
Copy full SHA for ed64119

File tree

Expand file treeCollapse file tree

2 files changed

+32
-3
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

2 files changed

+32
-3
lines changed
Open diff view settings
Collapse file

‎src/api/encoding.cc‎

Copy file name to clipboardExpand all lines: src/api/encoding.cc
+4Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ enum encoding ParseEncoding(const char* encoding,
1515
switch (encoding[0]) {
1616
case 'u':
1717
case 'U':
18+
// Note: the two first conditions are needed for performance reasons
19+
// as "utf8"/"utf-8" is a common case.
20+
// (same for other cases below)
21+
1822
// utf8, utf16le
1923
if (encoding[1] == 't' && encoding[2] == 'f') {
2024
// Skip `-`
Collapse file

‎test/addons/parse-encoding/test.js‎

Copy file name to clipboardExpand all lines: test/addons/parse-encoding/test.js
+28-3Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,45 @@ const common = require('../../common');
44
const assert = require('assert');
55
const { parseEncoding } = require(`./build/${common.buildType}/binding`);
66

7-
assert.strictEqual(parseEncoding(''), 'UNKNOWN');
87

98
assert.strictEqual(parseEncoding('ascii'), 'ASCII');
9+
assert.strictEqual(parseEncoding('ASCII'), 'ASCII');
1010
assert.strictEqual(parseEncoding('base64'), 'BASE64');
11+
assert.strictEqual(parseEncoding('BASE64'), 'BASE64');
1112
assert.strictEqual(parseEncoding('base64url'), 'BASE64URL');
13+
assert.strictEqual(parseEncoding('BASE64URL'), 'BASE64URL');
1214
assert.strictEqual(parseEncoding('binary'), 'LATIN1');
15+
assert.strictEqual(parseEncoding('BINARY'), 'LATIN1');
1316
assert.strictEqual(parseEncoding('buffer'), 'BUFFER');
17+
assert.strictEqual(parseEncoding('BUFFER'), 'BUFFER');
1418
assert.strictEqual(parseEncoding('hex'), 'HEX');
19+
assert.strictEqual(parseEncoding('HEX'), 'HEX');
1520
assert.strictEqual(parseEncoding('latin1'), 'LATIN1');
21+
assert.strictEqual(parseEncoding('LATIN1'), 'LATIN1');
22+
23+
// ucs2 variations
1624
assert.strictEqual(parseEncoding('ucs2'), 'UCS2');
25+
assert.strictEqual(parseEncoding('ucs-2'), 'UCS2');
26+
assert.strictEqual(parseEncoding('UCS2'), 'UCS2');
27+
assert.strictEqual(parseEncoding('UCS-2'), 'UCS2');
28+
29+
// utf8 variations
1730
assert.strictEqual(parseEncoding('utf8'), 'UTF8');
18-
assert.strictEqual(parseEncoding('utf-16LE'), 'UCS2');
31+
assert.strictEqual(parseEncoding('utf-8'), 'UTF8');
32+
assert.strictEqual(parseEncoding('UTF8'), 'UTF8');
33+
assert.strictEqual(parseEncoding('UTF-8'), 'UTF8');
34+
35+
// utf16le variations
36+
assert.strictEqual(parseEncoding('utf16le'), 'UCS2');
37+
assert.strictEqual(parseEncoding('utf-16le'), 'UCS2');
38+
assert.strictEqual(parseEncoding('UTF16LE'), 'UCS2');
39+
assert.strictEqual(parseEncoding('UTF-16LE'), 'UCS2');
40+
41+
// unknown cases
42+
assert.strictEqual(parseEncoding(''), 'UNKNOWN');
43+
assert.strictEqual(parseEncoding('asCOO'), 'UNKNOWN');
44+
assert.strictEqual(parseEncoding('hux'), 'UNKNOWN');
1945
assert.strictEqual(parseEncoding('utf-buffer'), 'UNKNOWN');
2046
assert.strictEqual(parseEncoding('utf-16leNOT'), 'UNKNOWN');
21-
2247
assert.strictEqual(parseEncoding('linary'), 'UNKNOWN');
2348
assert.strictEqual(parseEncoding('luffer'), 'UNKNOWN');

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.