summaryrefslogtreecommitdiff
path: root/std/encoding/base64_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/encoding/base64_test.ts')
-rw-r--r--std/encoding/base64_test.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/std/encoding/base64_test.ts b/std/encoding/base64_test.ts
new file mode 100644
index 000000000..bd559140a
--- /dev/null
+++ b/std/encoding/base64_test.ts
@@ -0,0 +1,47 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+
+const { test } = Deno;
+import { assertEquals } from "../testing/asserts.ts";
+import { encode, decode, decodeString } from "./base64.ts";
+
+const testsetString = [
+ ["", ""],
+ ["f", "Zg=="],
+ ["fo", "Zm8="],
+ ["foo", "Zm9v"],
+ ["foob", "Zm9vYg=="],
+ ["fooba", "Zm9vYmE="],
+ ["foobar", "Zm9vYmFy"],
+];
+
+const testsetBinary = [
+ [new TextEncoder().encode("\x00"), "AA=="],
+ [new TextEncoder().encode("\x00\x00"), "AAA="],
+ [new TextEncoder().encode("\x00\x00\x00"), "AAAA"],
+ [new TextEncoder().encode("\x00\x00\x00\x00"), "AAAAAA=="],
+];
+
+test("[encoding/base64] testBase64EncodeString", () => {
+ for (const [input, output] of testsetString) {
+ assertEquals(encode(input), output);
+ }
+});
+
+test("[encoding/base64] testBase64DecodeString", () => {
+ for (const [input, output] of testsetString) {
+ assertEquals(decodeString(output), input);
+ }
+});
+
+test("[encoding/base64] testBase64EncodeBinary", () => {
+ for (const [input, output] of testsetBinary) {
+ assertEquals(encode(input), output);
+ }
+});
+
+test("[encoding/base64] testBase64DecodeBinary", () => {
+ for (const [input, output] of testsetBinary) {
+ const outputBinary = new Uint8Array(decode(output as string));
+ assertEquals(outputBinary, input as Uint8Array);
+ }
+});