github.com/dzsibi/gophish@v0.7.1-0.20190719042945-1f16c7237d0d/models/smtp_test.go (about) 1 package models 2 3 import ( 4 "fmt" 5 6 "github.com/jinzhu/gorm" 7 8 check "gopkg.in/check.v1" 9 ) 10 11 func (s *ModelsSuite) TestPostSMTP(c *check.C) { 12 smtp := SMTP{ 13 Name: "Test SMTP", 14 Host: "1.1.1.1:25", 15 FromAddress: "Foo Bar <foo@example.com>", 16 UserId: 1, 17 } 18 err := PostSMTP(&smtp) 19 c.Assert(err, check.Equals, nil) 20 ss, err := GetSMTPs(1) 21 c.Assert(err, check.Equals, nil) 22 c.Assert(len(ss), check.Equals, 1) 23 } 24 25 func (s *ModelsSuite) TestPostSMTPNoHost(c *check.C) { 26 smtp := SMTP{ 27 Name: "Test SMTP", 28 FromAddress: "Foo Bar <foo@example.com>", 29 UserId: 1, 30 } 31 err := PostSMTP(&smtp) 32 c.Assert(err, check.Equals, ErrHostNotSpecified) 33 } 34 35 func (s *ModelsSuite) TestPostSMTPNoFrom(c *check.C) { 36 smtp := SMTP{ 37 Name: "Test SMTP", 38 UserId: 1, 39 Host: "1.1.1.1:25", 40 } 41 err := PostSMTP(&smtp) 42 c.Assert(err, check.Equals, ErrFromAddressNotSpecified) 43 } 44 45 func (s *ModelsSuite) TestPostSMTPValidHeader(c *check.C) { 46 smtp := SMTP{ 47 Name: "Test SMTP", 48 Host: "1.1.1.1:25", 49 FromAddress: "Foo Bar <foo@example.com>", 50 UserId: 1, 51 Headers: []Header{ 52 Header{Key: "Reply-To", Value: "test@example.com"}, 53 Header{Key: "X-Mailer", Value: "gophish"}, 54 }, 55 } 56 err := PostSMTP(&smtp) 57 c.Assert(err, check.Equals, nil) 58 ss, err := GetSMTPs(1) 59 c.Assert(err, check.Equals, nil) 60 c.Assert(len(ss), check.Equals, 1) 61 } 62 63 func (s *ModelsSuite) TestSMTPGetDialer(ch *check.C) { 64 host := "localhost" 65 port := 25 66 smtp := SMTP{ 67 Host: fmt.Sprintf("%s:%d", host, port), 68 IgnoreCertErrors: false, 69 } 70 d, err := smtp.GetDialer() 71 ch.Assert(err, check.Equals, nil) 72 73 dialer := d.(*Dialer).Dialer 74 ch.Assert(dialer.Host, check.Equals, host) 75 ch.Assert(dialer.Port, check.Equals, port) 76 ch.Assert(dialer.TLSConfig.ServerName, check.Equals, smtp.Host) 77 ch.Assert(dialer.TLSConfig.InsecureSkipVerify, check.Equals, smtp.IgnoreCertErrors) 78 } 79 80 func (s *ModelsSuite) TestGetInvalidSMTP(ch *check.C) { 81 _, err := GetSMTP(-1, 1) 82 ch.Assert(err, check.Equals, gorm.ErrRecordNotFound) 83 }