' Test program for the Base64Coder module. Option Explicit Public Sub Main() Test1 Test2 End Sub Private Sub Test1() Debug.Print "Test1 started." Check "Aladdin:open sesame", "QWxhZGRpbjpvcGVuIHNlc2FtZQ==" ' example from RFC 2617 Check "", "" Check "1", "MQ==" Check "22", "MjI=" Check "333", "MzMz" Check "4444", "NDQ0NA==" Check "55555", "NTU1NTU=" Check "abc:def", "YWJjOmRlZg==" Check "????", "Pz8/Pw==" Check "abcdefghijklnmopqrstuvwxyz0123456789???", "YWJjZGVmZ2hpamtsbm1vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Pz8/" Debug.Print "Test1 completed." End Sub Private Sub Test2() Debug.Print "Test2 started." Dim i As Long For i = 1 To 10000 Dim s1 As String: s1 = GenerateRandomString(80) Dim s2 As String: s2 = Base64EncodeString(s1) Dim s3 As String: s3 = Base64DecodeString(s2) If s3 <> s1 Then Debug.Print "Encode/decode failed for """ & s1 & """ / """ & s2 & """ / """ & s3 & """." Next Debug.Print "Test2 completed." End Sub Private Sub Check(ByVal plainText As String, ByVal base64Text As String) Dim s1 As String: s1 = Base64EncodeString(plainText) Dim s2 As String: s2 = Base64DecodeString(base64Text) If s1 <> base64Text Or s2 <> plainText Then _ Debug.Print "Check failed for """ & plainText & """ / """ & base64Text & """." End Sub Private Function GenerateRandomString(ByVal MaxLen As Integer) As String Dim l As Integer: l = Int(Rnd() * (MaxLen + 1)) Dim s As String: s = Space$(l) Dim p As Integer For p = 1 To l: Mid$(s, p, 1) = ChrW$(Int(Rnd * 256)): Next GenerateRandomString = s End Function