mirror of
https://github.com/wneessen/go-mail.git
synced 2024-11-14 09:52:54 +01:00
More tests for client.go
This commit is contained in:
parent
a69d07448f
commit
4b99a9e830
1 changed files with 42 additions and 7 deletions
|
@ -545,8 +545,7 @@ func TestClient_DialSendClose(t *testing.T) {
|
||||||
|
|
||||||
c, err := getTestConnection(true)
|
c, err := getTestConnection(true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Send() failed: could not get new client connection: %s", err)
|
t.Skipf("failed to create test client: %s. Skipping tests", err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, cfn := context.WithTimeout(context.Background(), time.Second*10)
|
ctx, cfn := context.WithTimeout(context.Background(), time.Second*10)
|
||||||
|
@ -578,8 +577,7 @@ func TestClient_DialAndSend(t *testing.T) {
|
||||||
|
|
||||||
c, err := getTestConnection(true)
|
c, err := getTestConnection(true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Send() failed: could not get new client connection: %s", err)
|
t.Skipf("failed to create test client: %s. Skipping tests", err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := c.DialAndSend(m); err != nil {
|
if err := c.DialAndSend(m); err != nil {
|
||||||
|
@ -587,7 +585,7 @@ func TestClient_DialAndSend(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestClient_Send tests the Dial(), Send() and Close() method of Client with broken settings
|
// TestClient_DialSendCloseBroken tests the Dial(), Send() and Close() method of Client with broken settings
|
||||||
func TestClient_DialSendCloseBroken(t *testing.T) {
|
func TestClient_DialSendCloseBroken(t *testing.T) {
|
||||||
if os.Getenv("TEST_ALLOW_SEND") == "" {
|
if os.Getenv("TEST_ALLOW_SEND") == "" {
|
||||||
t.Skipf("TEST_ALLOW_SEND is not set. Skipping mail sending test")
|
t.Skipf("TEST_ALLOW_SEND is not set. Skipping mail sending test")
|
||||||
|
@ -617,8 +615,7 @@ func TestClient_DialSendCloseBroken(t *testing.T) {
|
||||||
|
|
||||||
c, err := getTestConnection(true)
|
c, err := getTestConnection(true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Send() failed: could not get new client connection: %s", err)
|
t.Skipf("failed to create test client: %s. Skipping tests", err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, cfn := context.WithTimeout(context.Background(), time.Second*10)
|
ctx, cfn := context.WithTimeout(context.Background(), time.Second*10)
|
||||||
|
@ -648,6 +645,44 @@ func TestClient_DialSendCloseBroken(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestClient_auth tests the Dial(), Send() and Close() method of Client with broken settings
|
||||||
|
func TestClient_auth(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
auth SMTPAuthType
|
||||||
|
sf bool
|
||||||
|
}{
|
||||||
|
{"SMTP AUTH: PLAIN", SMTPAuthPlain, false},
|
||||||
|
{"SMTP AUTH: LOGIN", SMTPAuthLogin, false},
|
||||||
|
{"SMTP AUTH: CRAM-MD5", SMTPAuthCramMD5, true},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
c, err := getTestConnection(false)
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("failed to create test client: %s. Skipping tests", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx, cfn := context.WithTimeout(context.Background(), time.Second*5)
|
||||||
|
defer cfn()
|
||||||
|
if err := c.DialWithContext(ctx); err != nil {
|
||||||
|
t.Errorf("auth() failed: could not Dial() => %s", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.SetSMTPAuth(tt.auth)
|
||||||
|
c.SetUsername(os.Getenv("TEST_SMTPAUTH_USER"))
|
||||||
|
c.SetPassword(os.Getenv("TEST_SMTPAUTH_PASS"))
|
||||||
|
if err := c.auth(); err != nil && !tt.sf {
|
||||||
|
t.Errorf("auth() failed: %s", err)
|
||||||
|
}
|
||||||
|
if err := c.Close(); err != nil {
|
||||||
|
t.Errorf("auth() failed: could not Close() => %s", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// getTestConnection takes environment variables to establish a connection to a real
|
// getTestConnection takes environment variables to establish a connection to a real
|
||||||
// SMTP server to test all functionality that requires a connection
|
// SMTP server to test all functionality that requires a connection
|
||||||
func getTestConnection(auth bool) (*Client, error) {
|
func getTestConnection(auth bool) (*Client, error) {
|
||||||
|
|
Loading…
Reference in a new issue