summaryrefslogtreecommitdiff
path: root/cli/tests/node_compat/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js')
-rw-r--r--cli/tests/node_compat/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js b/cli/tests/node_compat/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js
new file mode 100644
index 000000000..b3ad5f058
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js
@@ -0,0 +1,68 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
+
+'use strict';
+
+// From: https://github.com/w3c/web-platform-tests/blob/d74324b53c/encoding/textdecoder-fatal-streaming.html
+// With the twist that we specifically test for Node.js error codes
+
+const common = require('../common');
+const assert = require('assert');
+
+if (!common.hasIntl)
+ common.skip('missing Intl');
+
+{
+ [
+ { encoding: 'utf-8', sequence: [0xC0] },
+ { encoding: 'utf-16le', sequence: [0x00] },
+ { encoding: 'utf-16be', sequence: [0x00] },
+ ].forEach((testCase) => {
+ const data = new Uint8Array([testCase.sequence]);
+ assert.throws(
+ () => {
+ const decoder = new TextDecoder(testCase.encoding, { fatal: true });
+ decoder.decode(data);
+ }, {
+ code: 'ERR_ENCODING_INVALID_ENCODED_DATA',
+ name: 'TypeError',
+ message:
+ `The encoded data was not valid for encoding ${testCase.encoding}`
+ }
+ );
+ });
+}
+
+{
+ const decoder = new TextDecoder('utf-16le', { fatal: true });
+ const odd = new Uint8Array([0x00]);
+ const even = new Uint8Array([0x00, 0x00]);
+
+ assert.throws(
+ () => {
+ decoder.decode(even, { stream: true });
+ decoder.decode(odd);
+ }, {
+ code: 'ERR_ENCODING_INVALID_ENCODED_DATA',
+ name: 'TypeError',
+ message:
+ 'The encoded data was not valid for encoding utf-16le'
+ }
+ );
+
+ assert.throws(
+ () => {
+ decoder.decode(odd, { stream: true });
+ decoder.decode(even);
+ }, {
+ code: 'ERR_ENCODING_INVALID_ENCODED_DATA',
+ name: 'TypeError',
+ message:
+ 'The encoded data was not valid for encoding utf-16le'
+ }
+ );
+}