aboutsummaryrefslogtreecommitdiff
path: root/test/js/web
diff options
context:
space:
mode:
Diffstat (limited to 'test/js/web')
-rw-r--r--test/js/web/encoding/text-decoder.test.js24
-rw-r--r--test/js/web/encoding/text-encoder.test.js2
2 files changed, 24 insertions, 2 deletions
diff --git a/test/js/web/encoding/text-decoder.test.js b/test/js/web/encoding/text-decoder.test.js
index dabdb0936..3685a5f6d 100644
--- a/test/js/web/encoding/text-decoder.test.js
+++ b/test/js/web/encoding/text-decoder.test.js
@@ -250,7 +250,7 @@ describe("TextDecoder", () => {
it("constructor should set values", () => {
const decoder = new TextDecoder("utf-8", { fatal: true, ignoreBOM: false });
expect(decoder.fatal).toBe(true);
- // expect(decoder.ignoreBOM).toBe(false); // currently the getter for ignoreBOM doesn't work and always returns undefined
+ expect(decoder.ignoreBOM).toBe(false);
});
it("should throw on invalid input", () => {
@@ -265,6 +265,28 @@ describe("TextDecoder", () => {
});
});
+describe("TextDecoder ignoreBOM", () => {
+ it.each([
+ {
+ encoding: "utf-8",
+ bytes: [0xef, 0xbb, 0xbf, 0x61, 0x62, 0x63],
+ },
+ {
+ encoding: "utf-16le",
+ bytes: [0xff, 0xfe, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00],
+ },
+ ])("should ignoreBOM for: %o", ({ encoding, bytes }) => {
+ const BOM = "\uFEFF";
+ const array = new Uint8Array(bytes);
+
+ const decoder_ignore_bom = new TextDecoder(encoding, { ignoreBOM: true });
+ expect(decoder_ignore_bom.decode(array)).toStrictEqual(`${BOM}abc`);
+
+ const decoder_not_ignore_bom = new TextDecoder(encoding, { ignoreBOM: false });
+ expect(decoder_not_ignore_bom.decode(array)).toStrictEqual("abc");
+ });
+});
+
it("truncated sequences", () => {
const assert_equals = (a, b) => expect(a).toBe(b);
diff --git a/test/js/web/encoding/text-encoder.test.js b/test/js/web/encoding/text-encoder.test.js
index 1bf2057bc..78940a6eb 100644
--- a/test/js/web/encoding/text-encoder.test.js
+++ b/test/js/web/encoding/text-encoder.test.js
@@ -111,7 +111,7 @@ describe("TextEncoder", () => {
const fixture = new Uint8Array(await Bun.file(import.meta.dir + "/utf8-encoding-fixture.bin").arrayBuffer());
const length = 0x110000;
let textEncoder = new TextEncoder();
- let textDecoder = new TextDecoder();
+ let textDecoder = new TextDecoder("utf-8", { ignoreBOM: true });
let encodeOut = new Uint8Array(length * 4);
let encodeIntoOut = new Uint8Array(length * 4);
let encodeIntoBuffer = new Uint8Array(4);