]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/template/TestTemplateMail.java
upd: enforce that test cases receive all mails explicitly
[gigi.git] / tests / club / wpia / gigi / template / TestTemplateMail.java
1 package club.wpia.gigi.template;
2
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.junit.Assert.*;
5
6 import java.io.IOException;
7 import java.io.StringReader;
8 import java.util.HashMap;
9 import java.util.Locale;
10
11 import org.junit.Test;
12
13 import club.wpia.gigi.localisation.Language;
14 import club.wpia.gigi.output.template.MailTemplate;
15 import club.wpia.gigi.testUtils.BusinessTest;
16 import club.wpia.gigi.testUtils.TestEmailReceiver.TestMail;
17
18 public class TestTemplateMail extends BusinessTest {
19
20     private static final String TEST_MAIL = "test@mail.com";
21
22     private void testExecuteMail(HashMap<String, Object> vars, String input) throws IOException {
23         MailTemplate t = new MailTemplate(new StringReader(input));
24         t.sendMail(Language.getInstance(Locale.ENGLISH), vars, TEST_MAIL);
25     }
26
27     HashMap<String, Object> vars = new HashMap<>();
28
29     @Test
30     public void testSimple() throws IOException {
31         vars.put("var", "val");
32         testExecuteMail(vars, "Subject: subj\n\n<?=$var?>l");
33         TestMail tm = getMailReceiver().receive(TEST_MAIL);
34         assertEquals(MailTemplate.SUBJECT_TAG + "subj", tm.getSubject());
35         assertThat(tm.getMessage(), startsWith("vall"));
36     }
37
38     @Test
39     public void testVarNoEscape() throws IOException {
40         vars.put("var", "val\">");
41         vars.put("var2", "sl\">");
42         testExecuteMail(vars, "Subject: a<?=$var?>b\n\n<?=$var2?>l");
43         TestMail tm = getMailReceiver().receive(TEST_MAIL);
44         assertEquals(MailTemplate.SUBJECT_TAG + "aval\">b", tm.getSubject());
45         assertThat(tm.getMessage(), startsWith("sl\">l"));
46
47     }
48
49     @Test
50     public void testTranslate() throws IOException {
51         testExecuteMail(vars, "Subject: a<?=_a<?>b\n\nc<?=_b\"?>l");
52         TestMail tm = getMailReceiver().receive(TEST_MAIL);
53         assertEquals(MailTemplate.SUBJECT_TAG + "aa<b", tm.getSubject());
54         assertThat(tm.getMessage(), startsWith("cb\"l"));
55
56     }
57 }