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 86c199b

Browse filesBrowse files
legendecastargos
authored andcommitted
test: convert test_encoding_binding.cc to a JS test
The cctest file `test_encoding_binding.cc` is never tested and it is not a valid test. Binding functions should never be tested with V8 API circumvented. A binding function should only be tested with JS calls. PR-URL: #56791 Refs: #55275 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Daniel Lemire <daniel@lemire.me> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent bd54847 commit 86c199b
Copy full SHA for 86c199b

File tree

Expand file treeCollapse file tree

2 files changed

+48
-176
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

2 files changed

+48
-176
lines changed
Open diff view settings
Collapse file

‎test/cctest/test_encoding_binding.cc‎

Copy file name to clipboardExpand all lines: test/cctest/test_encoding_binding.cc
-176Lines changed: 0 additions & 176 deletions
This file was deleted.
Collapse file
+48Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Flags: --expose-internals
2+
3+
'use strict';
4+
5+
require('../common');
6+
7+
const assert = require('node:assert');
8+
const { internalBinding } = require('internal/test/binding');
9+
const binding = internalBinding('encoding_binding');
10+
11+
{
12+
// Valid input
13+
const buf = Uint8Array.from([0xC1, 0xE9, 0xF3]);
14+
assert.strictEqual(binding.decodeLatin1(buf, false, false), 'Áéó');
15+
}
16+
17+
{
18+
// Empty input
19+
const buf = Uint8Array.from([]);
20+
assert.strictEqual(binding.decodeLatin1(buf, false, false), '');
21+
}
22+
23+
{
24+
// Invalid input, but Latin1 has no invalid chars and should never throw.
25+
const buf = new TextEncoder().encode('Invalid Latin1 🧑‍🧑‍🧒‍🧒');
26+
assert.strictEqual(
27+
binding.decodeLatin1(buf, false, false),
28+
'Invalid Latin1 ð\x9F§\x91â\x80\x8Dð\x9F§\x91â\x80\x8Dð\x9F§\x92â\x80\x8Dð\x9F§\x92'
29+
);
30+
}
31+
32+
{
33+
// IgnoreBOM with BOM
34+
const buf = Uint8Array.from([0xFE, 0xFF, 0xC1, 0xE9, 0xF3]);
35+
assert.strictEqual(binding.decodeLatin1(buf, true, false), 'þÿÁéó');
36+
}
37+
38+
{
39+
// Fatal and InvalidInput, but Latin1 has no invalid chars and should never throw.
40+
const buf = Uint8Array.from([0xFF, 0xFF, 0xFF]);
41+
assert.strictEqual(binding.decodeLatin1(buf, false, true), 'ÿÿÿ');
42+
}
43+
44+
{
45+
// IgnoreBOM and Fatal, but Latin1 has no invalid chars and should never throw.
46+
const buf = Uint8Array.from([0xFE, 0xFF, 0xC1, 0xE9, 0xF3]);
47+
assert.strictEqual(binding.decodeLatin1(buf, true, true), 'þÿÁéó');
48+
}

0 commit comments

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