diff options
author | Steven Guerrero <42647963+Soremwar@users.noreply.github.com> | 2020-07-14 13:30:03 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-14 14:30:03 -0400 |
commit | fe8399973a5a1dd8a21cbb6edc88415feb83b2ef (patch) | |
tree | b6c7caa2156bf4694471d913775d2b7bcf7b0d4c /std/node/string_decoder_test.ts | |
parent | e5724e61189b01bb373b914fb733139a399ac996 (diff) |
feat(std/node): add string_decoder (#6638)
Diffstat (limited to 'std/node/string_decoder_test.ts')
-rw-r--r-- | std/node/string_decoder_test.ts | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/std/node/string_decoder_test.ts b/std/node/string_decoder_test.ts new file mode 100644 index 000000000..69bb8402a --- /dev/null +++ b/std/node/string_decoder_test.ts @@ -0,0 +1,117 @@ +import { assertEquals } from "../testing/asserts.ts"; +import Buffer from "./buffer.ts"; +import { StringDecoder } from "./string_decoder.ts"; + +Deno.test({ + name: "String decoder is encoding utf8 correctly", + fn() { + let decoder; + + decoder = new StringDecoder("utf8"); + assertEquals(decoder.write(Buffer.from("E1", "hex")), ""); + assertEquals(decoder.end(), "\ufffd"); + + decoder = new StringDecoder("utf8"); + assertEquals(decoder.write(Buffer.from("E18B", "hex")), ""); + assertEquals(decoder.end(), "\ufffd"); + + decoder = new StringDecoder("utf8"); + assertEquals(decoder.write(Buffer.from("\ufffd")), "\ufffd"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("utf8"); + assertEquals( + decoder.write(Buffer.from("\ufffd\ufffd\ufffd")), + "\ufffd\ufffd\ufffd" + ); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("utf8"); + assertEquals(decoder.write(Buffer.from("EFBFBDE2", "hex")), "\ufffd"); + assertEquals(decoder.end(), "\ufffd"); + + decoder = new StringDecoder("utf8"); + assertEquals(decoder.write(Buffer.from("F1", "hex")), ""); + assertEquals(decoder.write(Buffer.from("41F2", "hex")), "\ufffdA"); + assertEquals(decoder.end(), "\ufffd"); + + decoder = new StringDecoder("utf8"); + assertEquals(decoder.text(Buffer.from([0x41]), 2), ""); + }, +}); + +Deno.test({ + name: "String decoder is encoding base64 correctly", + fn() { + let decoder; + + decoder = new StringDecoder("base64"); + assertEquals(decoder.write(Buffer.from("E1", "hex")), "4Q=="); + assertEquals(decoder.end(), "4QAA"); + + decoder = new StringDecoder("base64"); + assertEquals(decoder.write(Buffer.from("E18B", "hex")), "4Ys="); + assertEquals(decoder.end(), "4YsA"); + + decoder = new StringDecoder("base64"); + assertEquals(decoder.write(Buffer.from("\ufffd")), "77+9"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("base64"); + assertEquals( + decoder.write(Buffer.from("\ufffd\ufffd\ufffd")), + "77+977+977+9" + ); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("base64"); + assertEquals(decoder.write(Buffer.from("EFBFBDE2", "hex")), "77+94g=="); + assertEquals(decoder.end(), "4gAA"); + + decoder = new StringDecoder("base64"); + assertEquals(decoder.write(Buffer.from("F1", "hex")), "8Q=="); + assertEquals(decoder.write(Buffer.from("41F2", "hex")), "8UHy"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("base64"); + assertEquals(decoder.text(Buffer.from([0x41]), 2), "QQ=="); + }, +}); + +Deno.test({ + name: "String decoder is encoding hex correctly", + fn() { + let decoder; + + decoder = new StringDecoder("hex"); + assertEquals(decoder.write(Buffer.from("E1", "hex")), "e1"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("hex"); + assertEquals(decoder.write(Buffer.from("E18B", "hex")), "e18b"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("hex"); + assertEquals(decoder.write(Buffer.from("\ufffd")), "efbfbd"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("hex"); + assertEquals( + decoder.write(Buffer.from("\ufffd\ufffd\ufffd")), + "efbfbdefbfbdefbfbd" + ); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("hex"); + assertEquals(decoder.write(Buffer.from("EFBFBDE2", "hex")), "efbfbde2"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("hex"); + assertEquals(decoder.write(Buffer.from("F1", "hex")), "f1"); + assertEquals(decoder.write(Buffer.from("41F2", "hex")), "41f2"); + assertEquals(decoder.end(), ""); + + decoder = new StringDecoder("hex"); + assertEquals(decoder.text(Buffer.from([0x41]), 2), ""); + }, +}); |