github.com/weaveworks/common@v0.0.0-20230728070032-dd9e68f319d5/server/tls_config_test.go (about) 1 package server 2 3 import ( 4 "crypto/tls" 5 "testing" 6 7 "github.com/prometheus/exporter-toolkit/web" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func Test_stringToCipherSuites(t *testing.T) { 12 tests := []struct { 13 name string 14 arg string 15 want []web.Cipher 16 wantErr bool 17 }{ 18 {name: "blank", arg: "", want: nil}, 19 {name: "bad", arg: "not-a-cipher", wantErr: true}, 20 {name: "one", arg: "TLS_AES_256_GCM_SHA384", want: []web.Cipher{web.Cipher(tls.TLS_AES_256_GCM_SHA384)}}, 21 {name: "two", arg: "TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256", 22 want: []web.Cipher{web.Cipher(tls.TLS_AES_256_GCM_SHA384), web.Cipher(tls.TLS_CHACHA20_POLY1305_SHA256)}}, 23 } 24 for _, tt := range tests { 25 t.Run(tt.name, func(t *testing.T) { 26 got, err := stringToCipherSuites(tt.arg) 27 if tt.wantErr { 28 require.Error(t, err) 29 } else { 30 require.NoError(t, err) 31 } 32 require.Equal(t, tt.want, got) 33 }) 34 } 35 } 36 37 func Test_stringToTLSVersion(t *testing.T) { 38 tests := []struct { 39 name string 40 arg string 41 want web.TLSVersion 42 wantErr bool 43 }{ 44 {name: "blank", arg: "", want: 0}, 45 {name: "bad", arg: "not-a-version", wantErr: true}, 46 {name: "VersionTLS12", arg: "VersionTLS12", want: tls.VersionTLS12}, 47 } 48 for _, tt := range tests { 49 t.Run(tt.name, func(t *testing.T) { 50 got, err := stringToTLSVersion(tt.arg) 51 if tt.wantErr { 52 require.Error(t, err) 53 } else { 54 require.NoError(t, err) 55 } 56 require.Equal(t, tt.want, got) 57 }) 58 } 59 }