1 package org.cacert.gigi.template;
3 import static org.junit.Assert.*;
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;
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;
17 public class TestTemplateUnescaped {
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);
25 return str.toString();
28 HashMap<String, Object> vars = new HashMap<>(Collections.<String, Object>singletonMap(Outputable.OUT_KEY_PLAIN, "yes"));
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"));
43 public void testTranslateNoEscape() {
44 assertEquals("\"tex<>l", testExecute(vars, "<?=_\"tex<>?>l"));