Refactored ssl test setup.

This commit is contained in:
Christian Joergensen 2014-07-27 09:37:42 +02:00
parent c0d4dc204d
commit 16f0241d5e

@ -74,6 +74,21 @@ func runserver(t *testing.T, server *smtpd.Server) (addr string, closer func())
} }
func runsslserver(t *testing.T, server *smtpd.Server) (addr string, closer func()) {
cert, err := tls.X509KeyPair(localhostCert, localhostKey)
if err != nil {
t.Fatalf("Cert load failed: %v", err)
}
server.TLSConfig = &tls.Config{
Certificates: []tls.Certificate{cert},
}
return runserver(t, server)
}
func TestSMTP(t *testing.T) { func TestSMTP(t *testing.T) {
addr, closer := runserver(t, &smtpd.Server{}) addr, closer := runserver(t, &smtpd.Server{})
@ -170,16 +185,8 @@ func TestListenAndServe(t *testing.T) {
func TestSTARTTLS(t *testing.T) { func TestSTARTTLS(t *testing.T) {
cert, err := tls.X509KeyPair(localhostCert, localhostKey) addr, closer := runsslserver(t, &smtpd.Server{
if err != nil {
t.Fatalf("Cert load failed: %v", err)
}
addr, closer := runserver(t, &smtpd.Server{
Authenticator: func(peer smtpd.Peer, username, password string) error { return nil }, Authenticator: func(peer smtpd.Peer, username, password string) error { return nil },
TLSConfig: &tls.Config{
Certificates: []tls.Certificate{cert},
},
ForceTLS: true, ForceTLS: true,
}) })
@ -264,18 +271,10 @@ func TestSTARTTLS(t *testing.T) {
func TestAuthRejection(t *testing.T) { func TestAuthRejection(t *testing.T) {
cert, err := tls.X509KeyPair(localhostCert, localhostKey) addr, closer := runsslserver(t, &smtpd.Server{
if err != nil {
t.Fatalf("Cert load failed: %v", err)
}
addr, closer := runserver(t, &smtpd.Server{
Authenticator: func(peer smtpd.Peer, username, password string) error { Authenticator: func(peer smtpd.Peer, username, password string) error {
return smtpd.Error{Code: 550, Message: "Denied"} return smtpd.Error{Code: 550, Message: "Denied"}
}, },
TLSConfig: &tls.Config{
Certificates: []tls.Certificate{cert},
},
ForceTLS: true, ForceTLS: true,
}) })
@ -298,15 +297,7 @@ func TestAuthRejection(t *testing.T) {
func TestAuthNotSupported(t *testing.T) { func TestAuthNotSupported(t *testing.T) {
cert, err := tls.X509KeyPair(localhostCert, localhostKey) addr, closer := runsslserver(t, &smtpd.Server{
if err != nil {
t.Fatalf("Cert load failed: %v", err)
}
addr, closer := runserver(t, &smtpd.Server{
TLSConfig: &tls.Config{
Certificates: []tls.Certificate{cert},
},
ForceTLS: true, ForceTLS: true,
}) })
@ -813,15 +804,7 @@ func TestTimeoutClose(t *testing.T) {
func TestTLSTimeout(t *testing.T) { func TestTLSTimeout(t *testing.T) {
cert, err := tls.X509KeyPair(localhostCert, localhostKey) addr, closer := runsslserver(t, &smtpd.Server{
if err != nil {
t.Fatalf("Cert load failed: %v", err)
}
addr, closer := runserver(t, &smtpd.Server{
TLSConfig: &tls.Config{
Certificates: []tls.Certificate{cert},
},
ReadTimeout: time.Second * 2, ReadTimeout: time.Second * 2,
WriteTimeout: time.Second * 2, WriteTimeout: time.Second * 2,
}) })
@ -956,12 +939,7 @@ func TestXCLIENT(t *testing.T) {
func TestEnvelopeReceived(t *testing.T) { func TestEnvelopeReceived(t *testing.T) {
cert, err := tls.X509KeyPair(localhostCert, localhostKey) addr, closer := runsslserver(t, &smtpd.Server{
if err != nil {
t.Fatalf("Cert load failed: %v", err)
}
addr, closer := runserver(t, &smtpd.Server{
Hostname: "foobar.example.net", Hostname: "foobar.example.net",
Handler: func(peer smtpd.Peer, env smtpd.Envelope) error { Handler: func(peer smtpd.Peer, env smtpd.Envelope) error {
env.AddReceivedLine(peer) env.AddReceivedLine(peer)
@ -970,9 +948,6 @@ func TestEnvelopeReceived(t *testing.T) {
} }
return nil return nil
}, },
TLSConfig: &tls.Config{
Certificates: []tls.Certificate{cert},
},
ForceTLS: true, ForceTLS: true,
}) })
@ -1051,16 +1026,8 @@ func TestHELO(t *testing.T) {
func TestLOGINAuth(t *testing.T) { func TestLOGINAuth(t *testing.T) {
cert, err := tls.X509KeyPair(localhostCert, localhostKey) addr, closer := runsslserver(t, &smtpd.Server{
if err != nil {
t.Fatalf("Cert load failed: %v", err)
}
addr, closer := runserver(t, &smtpd.Server{
Authenticator: func(peer smtpd.Peer, username, password string) error { return nil }, Authenticator: func(peer smtpd.Peer, username, password string) error { return nil },
TLSConfig: &tls.Config{
Certificates: []tls.Certificate{cert},
},
}) })
defer closer() defer closer()