]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/template/TestTemplateMail.java
fix: ResultSet.getDate is often wrong as it fetches day-precision times
[gigi.git] / tests / org / cacert / gigi / template / TestTemplateMail.java
1 package org.cacert.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.cacert.gigi.localisation.Language;
12 import org.cacert.gigi.output.template.MailTemplate;
13 import org.cacert.gigi.testUtils.BusinessTest;
14 import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail;
15 import org.junit.Test;
16
17 public class TestTemplateMail extends BusinessTest {
18
19     private static final String TEST_MAIL = "test@mail.com";
20
21     private void testExecuteMail(HashMap<String, Object> vars, String input) throws IOException {
22         MailTemplate t = new MailTemplate(new StringReader(input));
23         t.sendMail(Language.getInstance(Locale.ENGLISH), vars, TEST_MAIL);
24     }
25
26     HashMap<String, Object> vars = new HashMap<>();
27
28     @Test
29     public void testSimple() throws IOException {
30         vars.put("var", "val");
31         testExecuteMail(vars, "Subject: subj\n\n<?=$var?>l");
32         TestMail tm = getMailReceiver().receive();
33         assertEquals(MailTemplate.SUBJECT_TAG + "subj", tm.getSubject());
34         assertThat(tm.getMessage(), startsWith("vall"));
35     }
36
37     @Test
38     public void testVarNoEscape() throws IOException {
39         vars.put("var", "val\">");
40         vars.put("var2", "sl\">");
41         testExecuteMail(vars, "Subject: a<?=$var?>b\n\n<?=$var2?>l");
42         TestMail tm = getMailReceiver().receive();
43         assertEquals(MailTemplate.SUBJECT_TAG + "aval\">b", tm.getSubject());
44         assertThat(tm.getMessage(), startsWith("sl\">l"));
45
46     }
47
48     @Test
49     public void testTranslate() throws IOException {
50         testExecuteMail(vars, "Subject: a<?=_a<?>b\n\nc<?=_b\"?>l");
51         TestMail tm = getMailReceiver().receive();
52         assertEquals(MailTemplate.SUBJECT_TAG + "aa<b", tm.getSubject());
53         assertThat(tm.getMessage(), startsWith("cb\"l"));
54
55     }
56 }