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  }