1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.net;
29
30 import static org.hamcrest.MatcherAssert.assertThat;
31
32 import java.nio.charset.StandardCharsets;
33
34 import org.hamcrest.CoreMatchers;
35 import org.junit.jupiter.api.Test;
36
37
38
39
40 public class TestPercentCodec {
41
42 @Test
43 public void testCoding() {
44 final StringBuilder buf = new StringBuilder();
45 PercentCodec.encode(buf, "blah!", StandardCharsets.UTF_8);
46 PercentCodec.encode(buf, " ~ ", StandardCharsets.UTF_8);
47 PercentCodec.encode(buf, "huh?", StandardCharsets.UTF_8);
48 assertThat(buf.toString(), CoreMatchers.equalTo("blah%21%20~%20huh%3F"));
49 }
50
51 @Test
52 public void testDecoding() {
53 assertThat(PercentCodec.decode("blah%21%20~%20huh%3F", StandardCharsets.UTF_8),
54 CoreMatchers.equalTo("blah! ~ huh?"));
55 assertThat(PercentCodec.decode("blah%21+~%20huh%3F", StandardCharsets.UTF_8),
56 CoreMatchers.equalTo("blah!+~ huh?"));
57 assertThat(PercentCodec.decode("blah%21+~%20huh%3F", StandardCharsets.UTF_8, true),
58 CoreMatchers.equalTo("blah! ~ huh?"));
59 }
60
61 @Test
62 public void testDecodingPartialContent() {
63 assertThat(PercentCodec.decode("blah%21%20%", StandardCharsets.UTF_8),
64 CoreMatchers.equalTo("blah! %"));
65 assertThat(PercentCodec.decode("blah%21%20%a", StandardCharsets.UTF_8),
66 CoreMatchers.equalTo("blah! %a"));
67 assertThat(PercentCodec.decode("blah%21%20%wa", StandardCharsets.UTF_8),
68 CoreMatchers.equalTo("blah! %wa"));
69 }
70
71 }