1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.util;
21
22 import org.apache.myfaces.tobago.internal.util.HtmlWriterHelper;
23 import org.junit.jupiter.api.Assertions;
24 import org.junit.jupiter.api.Test;
25
26 import java.io.CharArrayWriter;
27 import java.io.IOException;
28 import java.nio.charset.StandardCharsets;
29
30 public class HtmlWriterHelperUnitTest {
31
32
33
34
35
36
37 private static final String[] RAW_TEXTS = {
38 "oeffnende spitze klammern werden in attributen doch escaped <tagname >",
39 "& followed by an { -> &{ don't get escaped in attributes",
40 "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",
41 "\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af",
42 "\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf",
43 "\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf",
44 "\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df",
45 "\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef",
46 "\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff"
47
48 };
49 private static final String[] ESCAPED_TEXTS = {
50 "oeffnende spitze klammern werden in attributen doch escaped <tagname >",
51 "& followed by an { -> &{ don't get escaped in attributes",
52 RAW_TEXTS[2],
53 " ¡¢£¤¥¦§¨©ª«¬­®¯",
54 "°±²³´µ¶·¸¹º»¼½"
55 + "¾¿",
56 "ÀÁÂÃÄÅÆÇÈÉÊËÌÍ"
57 + "ÎÏ",
58 "ÐÑÒÓÔÕÖ×ØÙÚÛÜÝ"
59 + "Þß",
60 "àáâãäåæçèéêëìí"
61 + "îï",
62 "ðñòóôõö÷øùúûüý"
63 + "þÿ"
64 };
65
66 private static final String[] ESCAPED_ATTRIBUTES = {
67 ESCAPED_TEXTS[0],
68 "& followed by an { -> &{ don't get escaped in attributes",
69 ESCAPED_TEXTS[2],
70 ESCAPED_TEXTS[3],
71 ESCAPED_TEXTS[4],
72 ESCAPED_TEXTS[5],
73 ESCAPED_TEXTS[6],
74 ESCAPED_TEXTS[7],
75 ESCAPED_TEXTS[8]
76 };
77
78 @Test
79 public void testTexts() {
80 final CharArrayWriter writer = new CharArrayWriter();
81 final HtmlWriterHelper helper = new HtmlWriterHelper(writer, StandardCharsets.ISO_8859_1);
82
83 for (int i = 0; i < ESCAPED_TEXTS.length; i++) {
84 testText(helper, writer, RAW_TEXTS[i], ESCAPED_TEXTS[i]);
85 }
86 }
87
88 @Test
89 public void testAttributes() {
90 final CharArrayWriter writer = new CharArrayWriter();
91 final HtmlWriterHelper helper = new HtmlWriterHelper(writer, StandardCharsets.ISO_8859_1);
92
93 for (int i = 0; i < ESCAPED_ATTRIBUTES.length; i++) {
94 testAttributeValue(helper, writer, RAW_TEXTS[i], ESCAPED_ATTRIBUTES[i]);
95 }
96 }
97
98 private void testText(
99 final HtmlWriterHelper writerUtil, final CharArrayWriter writer, final String text, final String escaped) {
100 try {
101 writer.reset();
102 writerUtil.writeText(text);
103 final String result = String.valueOf(writer.toCharArray());
104 Assertions.assertEquals(escaped, result);
105
106 } catch (final IOException e) {
107
108 }
109 }
110
111 private void testAttributeValue(
112 final HtmlWriterHelper writerUtil, final CharArrayWriter writer, final String text, final String escaped) {
113 try {
114 writer.reset();
115 writerUtil.writeAttributeValue(text);
116 final String result = String.valueOf(writer.toCharArray());
117 Assertions.assertEquals(escaped, result);
118
119 } catch (final IOException e) {
120
121 }
122 }
123 }