Skip to content

Commit 86c199b

Browse 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

File tree

2 files changed

+48
-176
lines changed

2 files changed

+48
-176
lines changed

test/cctest/test_encoding_binding.cc

Lines changed: 0 additions & 176 deletions
This file was deleted.
Lines 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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy