@@ -20,6 +20,7 @@ import (
2020 "os"
2121 "path/filepath"
2222 "reflect"
23+ "strings"
2324 "testing"
2425
2526 "encoding/json"
@@ -64,6 +65,9 @@ var expectedTLSConfigs = []struct {
6465 }, {
6566 filename : "tls_config.tlsversion.good.json" ,
6667 config : & tls.Config {MinVersion : tls .VersionTLS11 },
68+ }, {
69+ filename : "tls_config.max_version.good.json" ,
70+ config : & tls.Config {MaxVersion : tls .VersionTLS12 },
6771 },
6872 {
6973 filename : "tls_config.empty.good.yml" ,
@@ -74,6 +78,15 @@ var expectedTLSConfigs = []struct {
7478 }, {
7579 filename : "tls_config.tlsversion.good.yml" ,
7680 config : & tls.Config {MinVersion : tls .VersionTLS11 },
81+ }, {
82+ filename : "tls_config.max_version.good.yml" ,
83+ config : & tls.Config {MaxVersion : tls .VersionTLS12 },
84+ }, {
85+ filename : "tls_config.max_and_min_version.good.yml" ,
86+ config : & tls.Config {MaxVersion : tls .VersionTLS12 , MinVersion : tls .VersionTLS11 },
87+ }, {
88+ filename : "tls_config.max_and_min_version_same.good.yml" ,
89+ config : & tls.Config {MaxVersion : tls .VersionTLS12 , MinVersion : tls .VersionTLS12 },
7790 },
7891}
7992
@@ -91,6 +104,29 @@ func TestValidTLSConfig(t *testing.T) {
91104 }
92105}
93106
107+ var invalidTLSConfigs = []struct {
108+ filename string
109+ errMsg string
110+ }{
111+ {
112+ filename : "tls_config.max_and_min_version.bad.yml" ,
113+ errMsg : "tls_config.max_version must be greater than or equal to tls_config.min_version if both are specified" ,
114+ },
115+ }
116+
117+ func TestInvalidTLSConfig (t * testing.T ) {
118+ for _ , ee := range invalidTLSConfigs {
119+ _ , err := LoadTLSConfig ("testdata/" + ee .filename )
120+ if err == nil {
121+ t .Error ("Expected error with config but got none" )
122+ continue
123+ }
124+ if ! strings .Contains (err .Error (), ee .errMsg ) {
125+ t .Errorf ("Expected error for invalid HTTP client configuration to contain %q but got: %s" , ee .errMsg , err )
126+ }
127+ }
128+ }
129+
94130func TestStringer (t * testing.T ) {
95131 if s := (TLSVersion )(tls .VersionTLS13 ); s .String () != "TLS13" {
96132 t .Fatalf ("tls.VersionTLS13 string should be TLS13, got %s" , s .String ())
0 commit comments