Skip to content

Commit 1129e90

Browse files
committed
Add ParseOIDs tests
1 parent 26caaf5 commit 1129e90

File tree

2 files changed

+62
-2
lines changed

2 files changed

+62
-2
lines changed

internal/scti/chain_validation.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ func ParseExtKeyUsages(kus []string) ([]x509.ExtKeyUsage, error) {
6666
return lExtKeyUsages, nil
6767
}
6868

69-
// ParseOIDs parses strings of dot seaparated numbers into OIDs.
70-
// TODO(phboneff): add tests
69+
// ParseOIDs parses strings of dot separated numbers into OIDs.
7170
func ParseOIDs(oids []string) ([]asn1.ObjectIdentifier, error) {
7271
ret := make([]asn1.ObjectIdentifier, 0, len(oids))
7372
for _, s := range oids {

internal/scti/chain_validation_test.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,67 @@ import (
2727
"github.com/transparency-dev/static-ct/internal/x509util"
2828
)
2929

30+
func TestParseOIDs(t *testing.T) {
31+
for _, tc := range []struct {
32+
desc string
33+
oids []string
34+
wantOIDs []asn1.ObjectIdentifier
35+
wantErr bool
36+
}{
37+
{
38+
desc: "empty",
39+
oids: []string{},
40+
wantOIDs: []asn1.ObjectIdentifier{},
41+
wantErr: false,
42+
},
43+
{
44+
desc: "valid-single",
45+
oids: []string{"1.2.3"},
46+
wantOIDs: []asn1.ObjectIdentifier{[]int{1, 2, 3}},
47+
wantErr: false,
48+
},
49+
{
50+
desc: "valid-multiple",
51+
oids: []string{"1.2.3", "4.5.6"},
52+
wantOIDs: []asn1.ObjectIdentifier{[]int{1, 2, 3}, []int{4, 5, 6}},
53+
wantErr: false,
54+
},
55+
{
56+
desc: "invalid",
57+
oids: []string{"1.2.a"},
58+
wantOIDs: nil,
59+
wantErr: true,
60+
},
61+
{
62+
desc: "mixed-valid-invalid",
63+
oids: []string{"1.2.3", "1.2.a"},
64+
wantOIDs: nil,
65+
wantErr: true,
66+
},
67+
} {
68+
t.Run(tc.desc, func(t *testing.T) {
69+
got, err := ParseOIDs(tc.oids)
70+
if tc.wantErr {
71+
if err == nil {
72+
t.Errorf("ParseOIDs(%v) = nil, want error", tc.oids)
73+
}
74+
return
75+
}
76+
if err != nil {
77+
t.Fatalf("ParseOIDs(%v) = %v, want nil", tc.oids, err)
78+
}
79+
if len(got) != len(tc.wantOIDs) {
80+
t.Errorf("ParseOIDs(%v) = %v, want %v", tc.oids, got, tc.wantOIDs)
81+
}
82+
for i, e := range tc.wantOIDs {
83+
if !got[i].Equal(e) {
84+
t.Errorf("ParseOIDs(%v) = %v, want %v", tc.oids, got, tc.wantOIDs)
85+
}
86+
}
87+
})
88+
}
89+
}
90+
3091
func wipeExtensions(cert *x509.Certificate) *x509.Certificate {
3192
cert.Extensions = cert.Extensions[:0]
3293
return cert

0 commit comments

Comments
 (0)