mirror of
https://github.com/certimate-go/certimate.git
synced 2026-06-22 21:05:48 +08:00
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package cert_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
xcert "github.com/certimate-go/certimate/pkg/utils/cert"
|
|
)
|
|
|
|
func TestCertUtil_Hostname(t *testing.T) {
|
|
t.Run("MatchHostname", func(t *testing.T) {
|
|
testCases := []struct {
|
|
wildcard string
|
|
target string
|
|
expected bool
|
|
}{
|
|
{"*.example.com", "sub.example.com", true},
|
|
{"*.example.com", "sub.sub.example.com", false},
|
|
{"*.example.com", "example.com", false},
|
|
|
|
{"*.*.example.com", "a.b.example.com", false},
|
|
{"*.*.example.com", "a.example.com", false},
|
|
{"*.*.example.com", "a.b.c.example.com", false},
|
|
|
|
{"example.com", "example.com", true},
|
|
{"example.com", "wrong.com", false},
|
|
|
|
{"", "example.com", false},
|
|
{"*.example.com", "", false},
|
|
|
|
{"*.sub.example.com", "a.sub.example.com", true},
|
|
{"*.sub.example.com", "a.b.sub.example.com", false},
|
|
{"*.sub.example.com", "sub.example.com", false},
|
|
|
|
{"*.Example.COM", "sub.example.com", true},
|
|
{"*.EXAMPLE.COM", "SUB.EXAMPLE.COM", true},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
result := xcert.MatchHostname(tc.wildcard, tc.target)
|
|
status := "✓"
|
|
pf := t.Logf
|
|
if result != tc.expected {
|
|
status = "✗"
|
|
pf = t.Errorf
|
|
}
|
|
|
|
pf("%s Wildcard: %-20s Target: %-20s Expected: %-5v Got: %-5v\n", status, tc.wildcard, tc.target, tc.expected, result)
|
|
}
|
|
})
|
|
}
|