Add test for javascript filter.
[Sone.git] / src / test / java / net / pterodactylus / sone / template / JavascriptFilterTest.java
1 package net.pterodactylus.sone.template;
2
3 import static org.hamcrest.MatcherAssert.assertThat;
4 import static org.hamcrest.Matchers.is;
5
6 import java.util.Collections;
7
8 import org.junit.Test;
9
10 /**
11  * Unit test for {@link JavascriptFilter}.
12  *
13  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
14  */
15 public class JavascriptFilterTest {
16
17         private final JavascriptFilter javascriptFilter = new JavascriptFilter();
18
19         @Test
20         public void enclosesAStringInDoubleQuotes() {
21                 assertThat(formatString("Some String"), is("\"Some String\""));
22         }
23
24         @Test
25         public void escapesDoubleQuotes() {
26                 assertThat(formatString("Some \" Quote"), is("\"Some \\\" Quote\""));
27         }
28
29         @Test
30         public void escapesBackslash() {
31                 assertThat(formatString("Some \\ Quote"), is("\"Some \\\\ Quote\""));
32         }
33
34         @Test
35         public void escapesCarriageReturn() {
36                 assertThat(formatString("Some \r Quote"), is("\"Some \\r Quote\""));
37         }
38
39         @Test
40         public void escapesLineFeed() {
41                 assertThat(formatString("Some \n Quote"), is("\"Some \\n Quote\""));
42         }
43
44         @Test
45         public void escapesTab() {
46                 assertThat(formatString("Some \t Quote"), is("\"Some \\t Quote\""));
47         }
48
49         @Test
50         public void escapesControlCharacters() {
51                 assertThat(formatString("\u0001a\u0002"), is("\"\\x01a\\x02\""));
52         }
53
54         private String formatString(String string) {
55                 return (String) javascriptFilter.format(null, string, Collections.<String, Object>emptyMap());
56         }
57
58 }