-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconsent_test.go
67 lines (55 loc) · 1.34 KB
/
consent_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package consent
import (
"encoding/base64"
"testing"
)
const (
csv1 = "BOEFEAyOEFEAyAHABDENAI4AAAB9vABAASA"
csv2 = "COtybn4PA_zT4KjACBENAPCIAEBAAECAAIAAAAAAAAAA"
invalidVersionCS = "DOtybn4PA_zT4KjACBENAPCIAEBAAECAAIAAAAAAAAAA"
truncatedCS = "COtybn4PAA"
nonB64CS = "COtybn4PA*zT4KjACBENAPCIAEBAAECAAIAAAAAAAAAA"
)
func TestParseVersion(t *testing.T) {
v, err := ParseConsentVersion(csv1)
noError(t, err)
equal(t, byte(1), v)
v, err = ParseConsentVersion(csv2)
noError(t, err)
equal(t, byte(2), v)
v, err = ParseConsentVersion("X32g")
equal(t, err, ErrUnsupported)
}
func TestParseConsentString(t *testing.T) {
v, err := Parse(csv1)
equal(t, nil, err)
equal(t, byte(1), v.Version())
v1, ok := v.(*ConsentV1)
equal(t, ok, true)
if v1 == nil {
t.Fail()
}
equal(t, "EN", v1.ConsentLanguage)
v, err = Parse(csv2)
equal(t, nil, err)
equal(t, byte(2), v.Version())
v2, ok := v.(*ConsentV2)
equal(t, ok, true)
if v2 == nil {
t.Fail()
}
equal(t, 2, v2.CmpVersion)
}
func TestValidateConsentString(t *testing.T) {
err := Validate(csv1)
equal(t, nil, err)
err = Validate(csv2)
equal(t, nil, err)
err = Validate(invalidVersionCS)
equal(t, ErrUnsupported, err)
err = Validate(nonB64CS)
_, isBase64Error := err.(base64.CorruptInputError)
equal(t, true, isBase64Error)
err = Validate(truncatedCS)
equal(t, ErrUnexpectedEnd, err)
}