1 package net.pterodactylus.sone.template;
3 import static org.hamcrest.MatcherAssert.assertThat;
4 import static org.hamcrest.Matchers.is;
6 import net.pterodactylus.util.number.Hex;
11 * Unit test for {@link JavascriptFilter}.
13 public class JavascriptFilterTest {
15 private final JavascriptFilter filter = new JavascriptFilter();
18 public void filterEscapesAllCharactersBelowSpace() {
19 String source = buildStringWithAllCharactersToEscape();
20 String target = buildStringWithEscapedCharacters();
21 assertThat((String) filter.format(null, source, null), is("\"" + target + "\""));
24 private String buildStringWithAllCharactersToEscape() {
25 StringBuilder stringBuilder = new StringBuilder();
26 for (int i = 0; i < 32; i++) {
27 stringBuilder.append((char) i);
29 stringBuilder.append('"').append("\\").append("!");
30 return stringBuilder.toString();
33 private String buildStringWithEscapedCharacters() {
34 StringBuilder stringBuilder = new StringBuilder();
35 for (int i = 0; i < 32; i++) {
38 stringBuilder.append("\\t");
41 stringBuilder.append("\\n");
44 stringBuilder.append("\\r");
47 stringBuilder.append("\\x").append(Hex.toHex(i, 2));
50 stringBuilder.append("\\\"").append("\\\\").append("!");
51 return stringBuilder.toString();