Refactored ssl test setup.
This commit is contained in:
parent
d6f9de9519
commit
af68fd9bbc
1 changed files with 21 additions and 54 deletions
|
@ -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()
|
||||||
|
|
Loading…
Add table
Reference in a new issue