1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.doxia.util;
20
21 import java.net.URLEncoder;
22
23 import org.codehaus.plexus.testing.PlexusTest;
24 import org.junit.jupiter.api.Test;
25
26 import static org.junit.jupiter.api.Assertions.assertEquals;
27 import static org.junit.jupiter.api.Assertions.assertNotNull;
28 import static org.junit.jupiter.api.Assertions.assertNull;
29
30
31
32
33
34
35 @PlexusTest
36 public class HtmlToolsTest {
37
38
39
40 @Test
41 public void testEscapeHTML() {
42 assertEquals(HtmlTools.escapeHTML(null), "");
43 assertEquals(HtmlTools.escapeHTML(""), "");
44 assertEquals(HtmlTools.escapeHTML("\u0009"), "\u0009");
45 assertEquals(HtmlTools.escapeHTML("\u0001"), "\u0001");
46
47
48 assertEquals(HtmlTools.escapeHTML("<"), "<");
49 assertEquals(HtmlTools.escapeHTML(">"), ">");
50 assertEquals(HtmlTools.escapeHTML("&"), "&");
51 assertEquals(HtmlTools.escapeHTML("\""), """);
52 assertEquals(HtmlTools.escapeHTML("\'"), "'");
53 assertEquals(HtmlTools.escapeHTML("\'", false), "\'");
54
55
56 assertEquals(HtmlTools.escapeHTML("&"), "&amp;");
57 assertEquals(HtmlTools.escapeHTML("\u00e4", true), "\u00e4");
58 assertEquals(HtmlTools.escapeHTML("\u00e4", false), "ä");
59 assertEquals(HtmlTools.escapeHTML("\u0159", false), "ř");
60 assertEquals(HtmlTools.escapeHTML("\uD835\uDFED", false), "𝟭");
61 }
62
63
64
65
66 @Test
67 public void testUnescapeHTML() {
68 assertNull(HtmlTools.unescapeHTML(null));
69 assertEquals("", HtmlTools.unescapeHTML(""));
70 assertEquals("\u0009", HtmlTools.unescapeHTML("\u0009"));
71 assertEquals("\u0001", HtmlTools.unescapeHTML("\u0001"));
72 assertEquals("<", HtmlTools.unescapeHTML("<"));
73 assertEquals(">", HtmlTools.unescapeHTML(">"));
74 assertEquals("&", HtmlTools.unescapeHTML("&"));
75 assertEquals("\"", HtmlTools.unescapeHTML("""));
76 assertEquals("'", HtmlTools.unescapeHTML("'"));
77 assertEquals("\'", HtmlTools.unescapeHTML("'", true));
78 assertEquals("&", HtmlTools.unescapeHTML("&amp;"));
79 assertEquals("<Français>", HtmlTools.unescapeHTML("&lt;Fran&ccedil;ais&gt;"));
80 assertEquals("\u0159", HtmlTools.unescapeHTML("ř"));
81 assertEquals("\uD808\uDF45", HtmlTools.unescapeHTML("𒍅"));
82 assertEquals("\uD835\uDFED", HtmlTools.unescapeHTML("𝟭"));
83 assertEquals("\uD808\uDF45\uD835\uDFED", HtmlTools.unescapeHTML("𒍅𝟭"));
84 assertEquals("𝟭 𝟭", HtmlTools.unescapeHTML("𝟭 𝟭"));
85 assertEquals("𝟭 \uD835\uDFED", HtmlTools.unescapeHTML("𝟭 𝟭"));
86 assertEquals("&#xQWER;", HtmlTools.unescapeHTML("&#xQWER;"));
87 assertEquals("\u00E5", HtmlTools.unescapeHTML("å"));
88 assertEquals(
89 "<>&\"\u00E5\u0159\uD835\uDFED", HtmlTools.unescapeHTML("<>&"åř𝟭"));
90 }
91
92
93
94
95
96
97 @Test
98 public void testEncodeURL() throws Exception {
99 assertNull(HtmlTools.encodeURL(null));
100 assertEquals(HtmlTools.encodeURL(""), "");
101 assertEquals(
102 HtmlTools.encodeURL("http://www.example.com/?This is a simple test."),
103 "http://www.example.com/?This%20is%20a%20simple%20test.");
104
105 assertEquals(
106 HtmlTools.encodeURL("http://www.example.com/?This is a simple & short test."),
107 "http://www.example.com/?This%20is%20a%20simple%20&%20short%20test.");
108
109 String url = "\uD808\uDF45";
110 assertEquals(HtmlTools.encodeURL(url), URLEncoder.encode(url, "UTF-8"));
111 }
112
113
114
115
116 @Test
117 public void testGetHtmlTag() {
118 assertNull(HtmlTools.getHtmlTag(null));
119 assertNull(HtmlTools.getHtmlTag(""));
120 assertNull(HtmlTools.getHtmlTag("weirdHtmlTag"));
121 assertNotNull(HtmlTools.getHtmlTag("strong"));
122 }
123 }