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.client5.http.entity.mime;
29
30 import static org.junit.jupiter.api.Assertions.assertEquals;
31
32 import org.junit.jupiter.api.Assertions;
33 import org.junit.jupiter.api.Test;
34
35 public class HttpRFC7578MultipartTest {
36
37 @Test
38 public void testPercentDecodingWithTooShortMessage() throws Exception {
39 Assertions.assertThrows(java.lang.IllegalArgumentException.class, () ->
40 new HttpRFC7578Multipart.PercentCodec().decode("%".getBytes()));
41 }
42
43 @Test
44 public void testPercentDecodingWithValidMessages() throws Exception {
45 final HttpRFC7578Multipart.PercentCodec codec = new HttpRFC7578Multipart.PercentCodec();
46 final String[][] tests = new String[][] {
47 {"test", "test"},
48 {"%20", " "},
49 {"a%20b", "a b"},
50 {"https%3A%2F%2Fhc.apache.org%2Fhttpcomponents-client-5.0.x%2Findex.html",
51 "https://hc.apache.org/httpcomponents-client-5.0.x/index.html"},
52 {"%00", "\00"},
53 {"%0A", "\n"},
54
55 };
56 for (final String[] test : tests) {
57 assertEquals(test[1], new String(codec.decode(test[0].getBytes())));
58 }
59 }
60
61 }