]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/template/TestTemplateUnescaped.java
fix: ResultSet.getDate is often wrong as it fetches day-precision times
[gigi.git] / tests / org / cacert / gigi / template / TestTemplateUnescaped.java
1 package org.cacert.gigi.template;
2
3 import static org.junit.Assert.*;
4
5 import java.io.PrintWriter;
6 import java.io.StringReader;
7 import java.io.StringWriter;
8 import java.util.Collections;
9 import java.util.HashMap;
10 import java.util.Locale;
11
12 import org.cacert.gigi.localisation.Language;
13 import org.cacert.gigi.output.template.Outputable;
14 import org.cacert.gigi.output.template.Template;
15 import org.junit.Test;
16
17 public class TestTemplateUnescaped {
18
19     private String testExecute(HashMap<String, Object> vars, String input) {
20         Template t = new Template(new StringReader(input));
21         StringWriter str = new StringWriter();
22         PrintWriter pw = new PrintWriter(str);
23         t.output(pw, Language.getInstance(Locale.ENGLISH), vars);
24         pw.flush();
25         return str.toString();
26     }
27
28     HashMap<String, Object> vars = new HashMap<>(Collections.<String, Object>singletonMap(Outputable.OUT_KEY_PLAIN, "yes"));
29
30     @Test
31     public void testVarNoEscape() {
32         vars.put("var", "val");
33         assertEquals("vall", testExecute(vars, "<?=$var?>l"));
34         vars.put("var", "val<");
35         assertEquals("val<l", testExecute(vars, "<?=$var?>l"));
36         assertEquals("val<l", testExecute(vars, "<?=$!var?>l"));
37         vars.put("var", "val\">");
38         assertEquals("val\">l", testExecute(vars, "<?=$var?>l"));
39         assertEquals("val\">l", testExecute(vars, "<?=$!var?>l"));
40     }
41
42     @Test
43     public void testTranslateNoEscape() {
44         assertEquals("\"tex<>l", testExecute(vars, "<?=_\"tex<>?>l"));
45     }
46 }