From 16f0241d5e253666abfad35feb32e96df0d1aea3 Mon Sep 17 00:00:00 2001 From: Christian Joergensen Date: Sun, 27 Jul 2014 09:37:42 +0200 Subject: [PATCH] Refactored ssl test setup. --- smtpd_test.go | 75 +++++++++++++++------------------------------------ 1 file changed, 21 insertions(+), 54 deletions(-) diff --git a/smtpd_test.go b/smtpd_test.go index f487df7..1002e33 100644 --- a/smtpd_test.go +++ b/smtpd_test.go @@ -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) { addr, closer := runserver(t, &smtpd.Server{}) @@ -170,16 +185,8 @@ func TestListenAndServe(t *testing.T) { func TestSTARTTLS(t *testing.T) { - cert, err := tls.X509KeyPair(localhostCert, localhostKey) - if err != nil { - t.Fatalf("Cert load failed: %v", err) - } - - addr, closer := runserver(t, &smtpd.Server{ + addr, closer := runsslserver(t, &smtpd.Server{ Authenticator: func(peer smtpd.Peer, username, password string) error { return nil }, - TLSConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - }, ForceTLS: true, }) @@ -264,18 +271,10 @@ func TestSTARTTLS(t *testing.T) { func TestAuthRejection(t *testing.T) { - cert, err := tls.X509KeyPair(localhostCert, localhostKey) - if err != nil { - t.Fatalf("Cert load failed: %v", err) - } - - addr, closer := runserver(t, &smtpd.Server{ + addr, closer := runsslserver(t, &smtpd.Server{ Authenticator: func(peer smtpd.Peer, username, password string) error { return smtpd.Error{Code: 550, Message: "Denied"} }, - TLSConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - }, ForceTLS: true, }) @@ -298,15 +297,7 @@ func TestAuthRejection(t *testing.T) { func TestAuthNotSupported(t *testing.T) { - cert, err := tls.X509KeyPair(localhostCert, localhostKey) - if err != nil { - t.Fatalf("Cert load failed: %v", err) - } - - addr, closer := runserver(t, &smtpd.Server{ - TLSConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - }, + addr, closer := runsslserver(t, &smtpd.Server{ ForceTLS: true, }) @@ -813,15 +804,7 @@ func TestTimeoutClose(t *testing.T) { func TestTLSTimeout(t *testing.T) { - cert, err := tls.X509KeyPair(localhostCert, localhostKey) - if err != nil { - t.Fatalf("Cert load failed: %v", err) - } - - addr, closer := runserver(t, &smtpd.Server{ - TLSConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - }, + addr, closer := runsslserver(t, &smtpd.Server{ ReadTimeout: time.Second * 2, WriteTimeout: time.Second * 2, }) @@ -956,12 +939,7 @@ func TestXCLIENT(t *testing.T) { func TestEnvelopeReceived(t *testing.T) { - cert, err := tls.X509KeyPair(localhostCert, localhostKey) - if err != nil { - t.Fatalf("Cert load failed: %v", err) - } - - addr, closer := runserver(t, &smtpd.Server{ + addr, closer := runsslserver(t, &smtpd.Server{ Hostname: "foobar.example.net", Handler: func(peer smtpd.Peer, env smtpd.Envelope) error { env.AddReceivedLine(peer) @@ -970,9 +948,6 @@ func TestEnvelopeReceived(t *testing.T) { } return nil }, - TLSConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - }, ForceTLS: true, }) @@ -1051,16 +1026,8 @@ func TestHELO(t *testing.T) { func TestLOGINAuth(t *testing.T) { - cert, err := tls.X509KeyPair(localhostCert, localhostKey) - if err != nil { - t.Fatalf("Cert load failed: %v", err) - } - - addr, closer := runserver(t, &smtpd.Server{ + addr, closer := runsslserver(t, &smtpd.Server{ Authenticator: func(peer smtpd.Peer, username, password string) error { return nil }, - TLSConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - }, }) defer closer()