...
1 package base64
2
3 import (
4 "encoding/base64"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8 )
9
10 func TestDecode(t *testing.T) {
11 testcases := []struct {
12 Name string
13 Encoding *base64.Encoding
14 }{
15 {
16 Name: "base64.RawURLEncoding",
17 Encoding: base64.RawURLEncoding,
18 },
19 {
20 Name: "base64.URLEncoding",
21 Encoding: base64.URLEncoding,
22 },
23 {
24 Name: "base64.RawStdEncoding",
25 Encoding: base64.RawStdEncoding,
26 },
27 {
28 Name: "base64.StdEncoding",
29 Encoding: base64.StdEncoding,
30 },
31 }
32
33 var payload = []byte("Hello, World")
34 for _, tc := range testcases {
35 tc := tc
36 t.Run(tc.Name, func(t *testing.T) {
37 dst := make([]byte, tc.Encoding.EncodedLen(len(payload)))
38 tc.Encoding.Encode(dst, payload)
39
40 decoded, err := Decode(dst)
41 if !assert.NoError(t, err, `Decode should succeed`) {
42 return
43 }
44 if !assert.Equal(t, payload, decoded, `decoded content should match`) {
45 return
46 }
47 })
48 }
49 }
50 func TestEncodeToStringStd(t *testing.T) {
51 t.Parallel()
52 t.Run("Encodes to StdEncoding with padding", func(t *testing.T) {
53 t.Parallel()
54 out, err := base64.StdEncoding.DecodeString(EncodeToStringStd([]byte("Hello, World!")))
55 assert.NoError(t, err)
56 assert.NotNil(t, out)
57 })
58 }
59
View as plain text