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  }