summaryrefslogtreecommitdiffstats
path: root/utils/mail_test.go
blob: 012f10d397913e5a9b707d6eb592eb9f5e2d0bf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.

package utils

import (
	"strings"
	"testing"
)

func TestMailConnection(t *testing.T) {
	LoadConfig("config.json")

	if conn, err := connectToSMTPServer(Cfg); err != nil {
		t.Log(err)
		t.Fatal("Should connect to the STMP Server")
	} else {
		if _, err1 := newSMTPClient(conn, Cfg); err1 != nil {
			t.Log(err)
			t.Fatal("Should get new smtp client")
		}
	}

	Cfg.EmailSettings.SMTPServer = "wrongServer"
	Cfg.EmailSettings.SMTPPort = "553"

	if _, err := connectToSMTPServer(Cfg); err == nil {
		t.Log(err)
		t.Fatal("Should not to the STMP Server")
	}

}

func TestSendMail(t *testing.T) {
	LoadConfig("config.json")
	T = GetUserTranslations("en")

	var emailTo string = "test@example.com"
	var emailSubject string = "Testing this email"
	var emailBody string = "This is a test from autobot"

	//Delete all the messages before check the sample email
	DeleteMailBox(emailTo)

	if err := SendMail(emailTo, emailSubject, emailBody); err != nil {
		t.Log(err)
		t.Fatal("Should connect to the STMP Server")
	} else {
		//Check if the email was send to the rigth email address
		if resultsMailbox, err := GetMailBox(emailTo); err != nil && !strings.ContainsAny(resultsMailbox[0].To[0], emailTo) {
			t.Fatal("Wrong To recipient")
		} else {
			if resultsEmail, err := GetMessageFromMailbox(emailTo, resultsMailbox[0].ID); err == nil {
				if !strings.Contains(resultsEmail.Body.Text, emailBody) {
					t.Log(resultsEmail.Body.Text)
					t.Fatal("Received message")
				}
			}
		}
	}
}