aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/gleam/bit_array_test.gleam86
1 files changed, 86 insertions, 0 deletions
diff --git a/test/gleam/bit_array_test.gleam b/test/gleam/bit_array_test.gleam
index 65a8009..7095205 100644
--- a/test/gleam/bit_array_test.gleam
+++ b/test/gleam/bit_array_test.gleam
@@ -133,3 +133,89 @@ pub fn is_utf8_test() {
|> bit_array.is_utf8
|> should.be_false
}
+
+pub fn base64_encode_test() {
+ <<255, 127, 254, 252>>
+ |> bit_array.base64_encode(True)
+ |> should.equal("/3/+/A==")
+
+ <<255, 127, 254, 252>>
+ |> bit_array.base64_encode(False)
+ |> should.equal("/3/+/A")
+
+ <<0, 0, 0>>
+ |> bit_array.base64_encode(True)
+ |> should.equal("AAAA")
+
+ <<>>
+ |> bit_array.base64_encode(True)
+ |> should.equal("")
+}
+
+pub fn base64_decode_test() {
+ "/3/+/A=="
+ |> bit_array.base64_decode()
+ |> should.equal(Ok(<<255, 127, 254, 252>>))
+
+ "/3/+/A"
+ |> bit_array.base64_decode()
+ |> should.equal(Ok(<<255, 127, 254, 252>>))
+
+ "AAAA"
+ |> bit_array.base64_decode()
+ |> should.equal(Ok(<<0, 0, 0>>))
+
+ ""
+ |> bit_array.base64_decode()
+ |> should.equal(Ok(<<>>))
+
+ ")!"
+ |> bit_array.base64_decode()
+ |> should.equal(Error(Nil))
+}
+
+pub fn base64_url_encode_test() {
+ <<255, 127, 254, 252>>
+ |> bit_array.base64_url_encode(True)
+ |> should.equal("_3_-_A==")
+
+ <<255, 127, 254, 252>>
+ |> bit_array.base64_url_encode(False)
+ |> should.equal("_3_-_A")
+
+ <<0, 0, 0>>
+ |> bit_array.base64_url_encode(True)
+ |> should.equal("AAAA")
+
+ <<>>
+ |> bit_array.base64_url_encode(True)
+ |> should.equal("")
+}
+
+pub fn base64_url_decode_test() {
+ "_3_-_A=="
+ |> bit_array.base64_url_decode()
+ |> should.equal(Ok(<<255, 127, 254, 252>>))
+
+ "_3_-_A"
+ |> bit_array.base64_url_decode()
+ |> should.equal(Ok(<<255, 127, 254, 252>>))
+
+ "AAAA"
+ |> bit_array.base64_url_decode()
+ |> should.equal(Ok(<<0, 0, 0>>))
+
+ ""
+ |> bit_array.base64_url_decode()
+ |> should.equal(Ok(<<>>))
+
+ ")!"
+ |> bit_array.base64_url_decode()
+ |> should.equal(Error(Nil))
+}
+
+pub fn decode64_crash_regression_1_test() {
+ "aGktdGhlcmU.uWUWvrAleKQ2jsWcU97H-RPJ5qRRcE_s"
+ |> bit_array.base64_decode()
+ |> should.equal(Error(Nil))
+}