Skip to content

Commit a710e44

Browse files
DavidCai1111addaleax
authored andcommitted
test: complete coverage of buffer
PR-URL: #12831 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
1 parent 7e5f500 commit a710e44

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

test/parallel/test-buffer-bytelength.js

+9
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,12 @@ assert.strictEqual(Buffer.byteLength('Il était tué', 'utf8'), 14);
106106
// Test that ArrayBuffer from a different context is detected correctly
107107
const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
108108
assert.strictEqual(Buffer.byteLength(arrayBuf), 0);
109+
110+
// Verify that invalid encodings are treated as utf8
111+
for (let i = 1; i < 10; i++) {
112+
const encoding = String(i).repeat(i);
113+
114+
assert.ok(!Buffer.isEncoding(encoding));
115+
assert.strictEqual(Buffer.byteLength('foo', encoding),
116+
Buffer.byteLength('foo', 'utf8'));
117+
}

test/parallel/test-buffer-tostring.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ require('../common');
44
const assert = require('assert');
55

66
// utf8, ucs2, ascii, latin1, utf16le
7-
const encodings = ['utf8', 'ucs2', 'ucs-2', 'ascii', 'latin1', 'binary',
8-
'utf16le', 'utf-16le'];
7+
const encodings = ['utf8', 'utf-8', 'ucs2', 'ucs-2', 'ascii', 'latin1',
8+
'binary', 'utf16le', 'utf-16le'];
99

1010
encodings
1111
.reduce((es, e) => es.concat(e, e.toUpperCase()), [])
@@ -23,3 +23,12 @@ encodings
2323
assert.strictEqual(Buffer.from('666f6f', encoding).toString(encoding),
2424
'666f6f');
2525
});
26+
27+
// Invalid encodings
28+
for (let i = 1; i < 10; i++) {
29+
const encoding = String(i).repeat(i);
30+
const error = new RegExp(`^TypeError: Unknown encoding: ${encoding}$`);
31+
32+
assert.ok(!Buffer.isEncoding(encoding));
33+
assert.throws(() => Buffer.from('foo').toString(encoding), error);
34+
}

test/parallel/test-buffer-write.js

+9
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,12 @@ encodings
5353
assert.strictEqual(buf.write('666f6f', 0, len, encoding), len);
5454
assert.deepStrictEqual(buf, resultMap.get(encoding.toLowerCase()));
5555
});
56+
57+
// Invalid encodings
58+
for (let i = 1; i < 10; i++) {
59+
const encoding = String(i).repeat(i);
60+
const error = new RegExp(`^TypeError: Unknown encoding: ${encoding}$`);
61+
62+
assert.ok(!Buffer.isEncoding(encoding));
63+
assert.throws(() => Buffer.alloc(9).write('foo', encoding), error);
64+
}

0 commit comments

Comments
 (0)