2022-03-18 23:10:53 +01:00
|
|
|
//go:build !windows
|
2022-03-18 23:13:22 +01:00
|
|
|
// +build !windows
|
2022-03-18 23:10:53 +01:00
|
|
|
|
|
|
|
package mail
|
|
|
|
|
2022-03-18 23:23:59 +01:00
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
)
|
2022-03-18 23:10:53 +01:00
|
|
|
|
2022-03-18 23:23:59 +01:00
|
|
|
// TestMsg_WriteToSendmailWithContext tests the WriteToSendmailWithContext() method of the Msg
|
|
|
|
func TestMsg_WriteToSendmailWithContext(t *testing.T) {
|
2022-03-18 23:10:53 +01:00
|
|
|
tests := []struct {
|
|
|
|
name string
|
|
|
|
sp string
|
|
|
|
sf bool
|
|
|
|
}{
|
|
|
|
{"Sendmail path: /dev/null", "/dev/null", true},
|
|
|
|
{"Sendmail path: /bin/cat", "/bin/cat", true},
|
|
|
|
{"Sendmail path: /is/invalid", "/is/invalid", true},
|
|
|
|
{"Sendmail path: /bin/echo", "/bin/echo", false},
|
|
|
|
}
|
|
|
|
m := NewMsg()
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
2022-03-18 23:23:59 +01:00
|
|
|
ctx, cfn := context.WithTimeout(context.Background(), time.Second*10)
|
|
|
|
defer cfn()
|
2022-03-18 23:10:53 +01:00
|
|
|
m.SetBodyString(TypeTextPlain, "Plain")
|
2022-03-18 23:23:59 +01:00
|
|
|
if err := m.WriteToSendmailWithContext(ctx, tt.sp); err != nil && !tt.sf {
|
2022-03-18 23:10:53 +01:00
|
|
|
t.Errorf("WriteToSendmailWithCommand() failed: %s", err)
|
|
|
|
}
|
|
|
|
m.Reset()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|