github.com/zmap/zlint@v1.1.0/lints/lint_san_dns_name_onion_not_ev_cert_test.go (about) 1 package lints 2 3 import ( 4 "fmt" 5 "testing" 6 ) 7 8 func TestOnionNotEV(t *testing.T) { 9 testCases := []struct { 10 Name string 11 InputFilename string 12 ExpectedResult LintStatus 13 ExpectedDetails string 14 }{ 15 { 16 Name: "Onion subject, not EV cert, before util.OnionOnlyEVDate", 17 InputFilename: "dnsNameOnionTLD.pem", 18 ExpectedResult: NE, 19 }, 20 { 21 Name: "Onion subject, not EV cert, after util.OnionOnlyEVDate", 22 InputFilename: "onionSANNotEV.pem", 23 ExpectedResult: Error, 24 ExpectedDetails: `certificate contains one or more .onion subject domains but is not an EV certificate`, 25 }, 26 { 27 Name: "Onion subject, EV cert", 28 InputFilename: "onionSANEV.pem", 29 ExpectedResult: Pass, 30 }, 31 } 32 33 for _, tc := range testCases { 34 t.Run(tc.Name, func(t *testing.T) { 35 inputPath := fmt.Sprintf("%s%s", testCaseDir, tc.InputFilename) 36 result := Lints["e_san_dns_name_onion_not_ev_cert"].Execute(ReadCertificate(inputPath)) 37 if result.Status != tc.ExpectedResult { 38 t.Errorf("expected result %v was %v", tc.ExpectedResult, result.Status) 39 } 40 if result.Details != tc.ExpectedDetails { 41 t.Errorf("expected result details %q was %q", tc.ExpectedDetails, result.Details) 42 } 43 }) 44 } 45 }