@@ -39,7 +39,7 @@ const bodyTpl = `
3939</html>
4040`
4141
42- func TestComposeIssueCommentMessage (t * testing.T ) {
42+ func prepareMailerTest (t * testing.T ) ( doer * models. User , repo * models. Repository , issue * models. Issue , comment * models. Comment ) {
4343 assert .NoError (t , models .PrepareTestDatabase ())
4444 var mailService = setting.Mailer {
4545@@ -48,10 +48,16 @@ func TestComposeIssueCommentMessage(t *testing.T) {
4848 setting .MailService = & mailService
4949 setting .Domain = "localhost"
5050
51- doer := models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
52- repo := models .AssertExistsAndLoadBean (t , & models.Repository {ID : 1 , Owner : doer }).(* models.Repository )
53- issue := models .AssertExistsAndLoadBean (t , & models.Issue {ID : 1 , Repo : repo , Poster : doer }).(* models.Issue )
54- comment := models .AssertExistsAndLoadBean (t , & models.Comment {ID : 2 , Issue : issue }).(* models.Comment )
51+ doer = models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
52+ repo = models .AssertExistsAndLoadBean (t , & models.Repository {ID : 1 , Owner : doer }).(* models.Repository )
53+ issue = models .AssertExistsAndLoadBean (t , & models.Issue {ID : 1 , Repo : repo , Poster : doer }).(* models.Issue )
54+ assert .NoError (t , issue .LoadRepo ())
55+ comment = models .AssertExistsAndLoadBean (t , & models.Comment {ID : 2 , Issue : issue }).(* models.Comment )
56+ return
57+ }
58+
59+ func TestComposeIssueCommentMessage (t * testing.T ) {
60+ doer , _ , issue , comment := prepareMailerTest (t )
5561
5662 stpl := texttmpl .Must (texttmpl .New ("issue/comment" ).Parse (subjectTpl ))
5763 btpl := template .Must (template .New ("issue/comment" ).Parse (bodyTpl ))
@@ -76,17 +82,7 @@ func TestComposeIssueCommentMessage(t *testing.T) {
7682}
7783
7884func TestComposeIssueMessage (t * testing.T ) {
79- assert .NoError (t , models .PrepareTestDatabase ())
80- var mailService = setting.Mailer {
81- 82- }
83-
84- setting .MailService = & mailService
85- setting .Domain = "localhost"
86-
87- doer := models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
88- repo := models .AssertExistsAndLoadBean (t , & models.Repository {ID : 1 , Owner : doer }).(* models.Repository )
89- issue := models .AssertExistsAndLoadBean (t , & models.Issue {ID : 1 , Repo : repo , Poster : doer }).(* models.Issue )
85+ doer , _ , issue , _ := prepareMailerTest (t )
9086
9187 stpl := texttmpl .Must (texttmpl .New ("issue/new" ).Parse (subjectTpl ))
9288 btpl := template .Must (template .New ("issue/new" ).Parse (bodyTpl ))
@@ -111,17 +107,7 @@ func TestComposeIssueMessage(t *testing.T) {
111107}
112108
113109func TestTemplateSelection (t * testing.T ) {
114- assert .NoError (t , models .PrepareTestDatabase ())
115- var mailService = setting.Mailer {
116- 117- }
118-
119- setting .MailService = & mailService
120- setting .Domain = "localhost"
121-
122- doer := models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
123- repo := models .AssertExistsAndLoadBean (t , & models.Repository {ID : 1 , Owner : doer }).(* models.Repository )
124- issue := models .AssertExistsAndLoadBean (t , & models.Issue {ID : 1 , Repo : repo , Poster : doer }).(* models.Issue )
110+ doer , repo , issue , comment := prepareMailerTest (t )
125111 recipients := []
* models.
User {{
Name :
"Test" ,
Email :
"[email protected] " }}
126112
127113 stpl := texttmpl .Must (texttmpl .New ("issue/default" ).Parse ("issue/default/subject" ))
@@ -149,7 +135,6 @@ func TestTemplateSelection(t *testing.T) {
149135 Content : "test body" }, recipients , false , "TestTemplateSelection" )
150136 expect (t , msg , "issue/new/subject" , "issue/new/body" )
151137
152- comment := models .AssertExistsAndLoadBean (t , & models.Comment {ID : 2 , Issue : issue }).(* models.Comment )
153138 msg = testComposeIssueCommentMessage (t , & mailCommentContext {Issue : issue , Doer : doer , ActionType : models .ActionCommentIssue ,
154139 Content : "test body" , Comment : comment }, recipients , false , "TestTemplateSelection" )
155140 expect (t , msg , "issue/default/subject" , "issue/default/body" )
@@ -166,18 +151,7 @@ func TestTemplateSelection(t *testing.T) {
166151}
167152
168153func TestTemplateServices (t * testing.T ) {
169- assert .NoError (t , models .PrepareTestDatabase ())
170- var mailService = setting.Mailer {
171- 172- }
173-
174- setting .MailService = & mailService
175- setting .Domain = "localhost"
176-
177- doer := models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
178- repo := models .AssertExistsAndLoadBean (t , & models.Repository {ID : 1 , Owner : doer }).(* models.Repository )
179- issue := models .AssertExistsAndLoadBean (t , & models.Issue {ID : 1 , Repo : repo , Poster : doer }).(* models.Issue )
180- comment := models .AssertExistsAndLoadBean (t , & models.Comment {ID : 2 , Issue : issue }).(* models.Comment )
154+ doer , _ , issue , comment := prepareMailerTest (t )
181155 assert .NoError (t , issue .LoadRepo ())
182156
183157 expect := func (t * testing.T , issue * models.Issue , comment * models.Comment , doer * models.User ,
@@ -225,3 +199,32 @@ func testComposeIssueCommentMessage(t *testing.T, ctx *mailCommentContext, recip
225199 assert .Len (t , msgs , 1 )
226200 return msgs [0 ]
227201}
202+
203+ func TestGenerateAdditionalHeaders (t * testing.T ) {
204+ doer , _ , issue , _ := prepareMailerTest (t )
205+
206+ ctx := & mailCommentContext {Issue : issue , Doer : doer }
207+ recipient := & models.
User {
Name :
"Test" ,
Email :
"[email protected] " }
208+
209+ headers := generateAdditionalHeaders (ctx , "dummy-reason" , recipient )
210+
211+ expected := map [string ]string {
212+ "List-ID" : "user2/repo1 <repo1.user2.localhost>" ,
213+ "List-Archive" : "<https://try.gitea.io/user2/repo1>" ,
214+ "X-Gitea-Reason" : "dummy-reason" ,
215+ "X-Gitea-Sender" : "< U<se>r Tw<o > ><" ,
216+ "X-Gitea-Recipient" : "Test" ,
217+ "X-Gitea-Recipient-Address" :
"[email protected] " ,
218+ "X-Gitea-Repository" : "repo1" ,
219+ "X-Gitea-Repository-Path" : "user2/repo1" ,
220+ "X-Gitea-Repository-Link" : "https://try.gitea.io/user2/repo1" ,
221+ "X-Gitea-Issue-ID" : "1" ,
222+ "X-Gitea-Issue-Link" : "https://try.gitea.io/user2/repo1/issues/1" ,
223+ }
224+
225+ for key , value := range expected {
226+ if assert .Contains (t , headers , key ) {
227+ assert .Equal (t , value , headers [key ])
228+ }
229+ }
230+ }
0 commit comments