Remove @author tags
[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 net.pterodactylus.util.number.Hex;
7
8 import org.junit.Test;
9
10 /**
11  * Unit test for {@link JavascriptFilter}.
12  */
13 public class JavascriptFilterTest {
14
15         private final JavascriptFilter filter = new JavascriptFilter();
16
17         @Test
18         public void filterEscapesAllCharactersBelowSpace() {
19                 String source = buildStringWithAllCharactersToEscape();
20                 String target = buildStringWithEscapedCharacters();
21                 assertThat((String) filter.format(null, source, null), is("\"" + target + "\""));
22         }
23
24         private String buildStringWithAllCharactersToEscape() {
25                 StringBuilder stringBuilder = new StringBuilder();
26                 for (int i = 0; i < 32; i++) {
27                         stringBuilder.append((char) i);
28                 }
29                 stringBuilder.append('"').append("\\").append("!");
30                 return stringBuilder.toString();
31         }
32
33         private String buildStringWithEscapedCharacters() {
34                 StringBuilder stringBuilder = new StringBuilder();
35                 for (int i = 0; i < 32; i++) {
36                         switch (i) {
37                                 case 9:
38                                         stringBuilder.append("\\t");
39                                         break;
40                                 case 10:
41                                         stringBuilder.append("\\n");
42                                         break;
43                                 case 13:
44                                         stringBuilder.append("\\r");
45                                         break;
46                                 default:
47                                         stringBuilder.append("\\x").append(Hex.toHex(i, 2));
48                         }
49                 }
50                 stringBuilder.append("\\\"").append("\\\\").append("!");
51                 return stringBuilder.toString();
52         }
53
54 }