1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package de.aikiit.spamprotector.converter;
19
20 import org.junit.Test;
21
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertNull;
24
25
26
27
28 public class SpamProtectorTest {
29
30 @Test
31 public void conversionRoundtripNull() {
32 assertNull(SpamProtector.toEncoded(null));
33 assertNull(SpamProtector.toPlain(null));
34
35 assertEquals("", SpamProtector.toEncoded(""));
36 assertEquals("", SpamProtector.toPlain(""));
37 }
38
39 @Test
40 public void conversionExample() {
41 assertEquals(CharacterConverter.SPACE.getReplacement(), SpamProtector.toEncoded(" "));
42 assertEquals(CharacterConverter.SPACE.getPlain(), SpamProtector.toPlain(" "));
43 }
44
45 @Test
46 public void singleCharactersAreConverted() {
47 assertEquals(" ", SpamProtector.toEncoded(String.valueOf(' ')));
48 assertEquals(" ", SpamProtector.toEncoded(" "));
49 }
50
51 @Test
52 public void asciiOnlyIsEncodedCompletelyWithSpacesAndAtSign() {
53 String input = "mailto:w oo@suck.er";
54 assertEquals("mailto:w o" +
55 "o@suck.er", SpamProtector.toEncoded(input));
56 }
57
58 @Test
59 public void nonAsciCharactersAreNotEncodedButTheRest() {
60 String input = "mailto:wフィリップoo@suck.нетer";
61 assertEquals("mailto:wフィリップo" +
62 "o@suck.нетer", SpamProtector.toEncoded(input));
63 }
64
65 @Test
66 public void asciiIsConvertedToPlainText() {
67 String input = "mailto:w oo@suck.er";
68 String encoded = "mailto:w oo@suck.er";
69
70 assertEquals(input, SpamProtector.toPlain(encoded));
71 }
72
73 @Test
74 public void mixOfEncodedAndNonAsciiPlainCanBeDecoded() {
75 String plain = "mailto:wフィリップoo@suck.нетer";
76 String encoded = "mailto:wフィリップoo@suck.нетer";
77 assertEquals(plain, SpamProtector.toPlain(encoded));
78 }
79
80 @Test
81 public void stupidInputDecode() {
82 assertEquals("", SpamProtector.toPlain(""));
83 assertNull(SpamProtector.toPlain(null));
84 assertEquals("²", SpamProtector.toPlain("²"));
85 }
86
87 @Test
88 public void stupidInputEncode() {
89 assertEquals("", SpamProtector.toEncoded(""));
90 assertNull(SpamProtector.toEncoded(null));
91 assertEquals("²", SpamProtector.toEncoded("²"));
92 }
93
94 @Test
95 public void issue24LowercasingIsDefaultBehaviour() {
96 assertEquals("A", SpamProtector.toPlain(CharacterConverter.CAPITAL_A.getPlain()));
97 assertEquals("a", SpamProtector.toPlain(CharacterConverter.A.getPlain()));
98 }
99
100 }