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 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
15 public class JavascriptFilterTest {
17 private final JavascriptFilter filter = new JavascriptFilter();
20 public void filterEscapesAllCharactersBelowSpace() {
21 String source = buildStringWithAllCharactersToEscape();
22 String target = buildStringWithEscapedCharacters();
23 assertThat((String) filter.format(null, source, null), is("\"" + target + "\""));
26 private String buildStringWithAllCharactersToEscape() {
27 StringBuilder stringBuilder = new StringBuilder();
28 for (int i = 0; i < 32; i++) {
29 stringBuilder.append((char) i);
31 stringBuilder.append('"').append("\\").append("!");
32 return stringBuilder.toString();
35 private String buildStringWithEscapedCharacters() {
36 StringBuilder stringBuilder = new StringBuilder();
37 for (int i = 0; i < 32; i++) {
40 stringBuilder.append("\\t");
43 stringBuilder.append("\\n");
46 stringBuilder.append("\\r");
49 stringBuilder.append("\\x").append(Hex.toHex(i, 2));
52 stringBuilder.append("\\\"").append("\\\\").append("!");
53 return stringBuilder.toString();