tests: Improved base64 test for edge strict cases
authorLucas Bajolet <r4pass@hotmail.com>
Wed, 8 Jun 2016 15:07:43 +0000 (11:07 -0400)
committerLucas Bajolet <r4pass@hotmail.com>
Wed, 8 Jun 2016 19:51:23 +0000 (15:51 -0400)
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

tests/sav/test_base64.res
tests/test_base64.nit

index 01698e8..06bc37f 100644 (file)
@@ -12,3 +12,16 @@ Zm9v:     foo
 Zm9vYg==: foob
 Zm9vYmE=: fooba
 Zm9vYmFy: foobar
+Zm9vYg: foob
+Zm9vYmE: fooba
+Zm9v*Yg: foob
+:
+Znm=.is_base64? true
+Znm===.is_base64? false
+Z.sd=.is_base64? false
+Z==D.is_base64? false
+:
+Znm=: No error
+Znm===: Invalid padding length
+Z.sd=: Invalid Base64 character at position 1: .
+Z==D: Invalid padding character D at position 3
index af82e47..fb0d769 100644 (file)
@@ -24,10 +24,30 @@ print "foob:   " + "foob".encode_base64
 print "fooba:  " + "fooba".encode_base64
 print "foobar: " + "foobar".encode_base64
 
-print ":" + "".decode_base64
-print "Zg==:     " + "Zg==".decode_base64
-print "Zm8=:     " + "Zm8=".decode_base64
-print "Zm9v:     " + "Zm9v".decode_base64
-print "Zm9vYg==: " + "Zm9vYg==".decode_base64
-print "Zm9vYmE=: " + "Zm9vYmE=".decode_base64
-print "Zm9vYmFy: " + "Zm9vYmFy".decode_base64
+print ":" + "".decode_base64.to_s
+print "Zg==:     " + "Zg==".decode_base64.to_s
+print "Zm8=:     " + "Zm8=".decode_base64.to_s
+print "Zm9v:     " + "Zm9v".decode_base64.to_s
+print "Zm9vYg==: " + "Zm9vYg==".decode_base64.to_s
+print "Zm9vYmE=: " + "Zm9vYmE=".decode_base64.to_s
+print "Zm9vYmFy: " + "Zm9vYmFy".decode_base64.to_s
+
+print "Zm9vYg: " + "Zm9vYg".decode_base64.to_s
+print "Zm9vYmE: " + "Zm9vYmE".decode_base64.to_s
+print "Zm9v*Yg: " + "Zm9v*Yg".decode_base64.to_s
+
+print ":"
+print "Znm=.is_base64? " + "Znm=".is_base64.to_s
+print "Znm===.is_base64? " + "Znm===".is_base64.to_s
+print "Z.sd=.is_base64? " + "Z.sd=".is_base64.to_s
+print "Z==D.is_base64? " + "Z==D".is_base64.to_s
+
+print ":"
+printn "Znm=: "
+print "Znm=".check_base64 or else "No error"
+printn "Znm===: "
+print "Znm===".check_base64 or else "No error"
+printn "Z.sd=: "
+print "Z.sd=".check_base64 or else "No error"
+printn "Z==D: "
+print "Z==D".check_base64 or else "No error"