github.com/amar224/phishing-tool@v0.9.0/models/template_context_test.go (about)

     1  package models
     2  
     3  import (
     4  	"fmt"
     5  
     6  	check "gopkg.in/check.v1"
     7  )
     8  
     9  type mockTemplateContext struct {
    10  	URL         string
    11  	FromAddress string
    12  }
    13  
    14  func (m mockTemplateContext) getFromAddress() string {
    15  	return m.FromAddress
    16  }
    17  
    18  func (m mockTemplateContext) getBaseURL() string {
    19  	return m.URL
    20  }
    21  
    22  func (s *ModelsSuite) TestNewTemplateContext(c *check.C) {
    23  	r := Result{
    24  		BaseRecipient: BaseRecipient{
    25  			FirstName: "Foo",
    26  			LastName:  "Bar",
    27  			Email:     "foo@bar.com",
    28  		},
    29  		RId: "1234567",
    30  	}
    31  	ctx := mockTemplateContext{
    32  		URL:         "http://example.com",
    33  		FromAddress: "From Address <from@example.com>",
    34  	}
    35  	expected := PhishingTemplateContext{
    36  		URL:           fmt.Sprintf("%s?rid=%s", ctx.URL, r.RId),
    37  		BaseURL:       ctx.URL,
    38  		BaseRecipient: r.BaseRecipient,
    39  		TrackingURL:   fmt.Sprintf("%s/track?rid=%s", ctx.URL, r.RId),
    40  		From:          "From Address",
    41  		RId:           r.RId,
    42  	}
    43  	expected.Tracker = "<img alt='' style='display: none' src='" + expected.TrackingURL + "'/>"
    44  	got, err := NewPhishingTemplateContext(ctx, r.BaseRecipient, r.RId)
    45  	c.Assert(err, check.Equals, nil)
    46  	c.Assert(got, check.DeepEquals, expected)
    47  }