KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > util > EncodeTest


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.util;
11
12 import java.util.Iterator JavaDoc;
13 import java.util.Set JavaDoc;
14 import java.util.SortedSet JavaDoc;
15 import java.util.TreeSet JavaDoc;
16
17 import junit.framework.TestCase;
18
19 /**
20  * Test cases for the Encoder
21  *
22  * @author keesj
23  */

24 public class EncodeTest extends TestCase {
25
26     public final static String JavaDoc TEST_EMPTY_STRING = "";
27
28     public final static String JavaDoc TEST_QUOTES = "'TEST_QUOTES'";
29
30     public final static String JavaDoc TEST_ESCAPED_QUOTES = "\'TEST_ESCAPED_QUOTES\'";
31
32     public final static String JavaDoc TEST_LT_GT = "4 < x > 2";
33
34     public final static String JavaDoc TEST_ENTITY = "&lt; &gt;";
35
36     public final static String JavaDoc TEST_HTML_ENTITY = "&eacute; &euml;";
37
38     private final static String JavaDoc[] TESTS = { TEST_EMPTY_STRING, TEST_QUOTES, TEST_ESCAPED_QUOTES, TEST_LT_GT, TEST_HTML_ENTITY };
39
40     /**
41      * tests if the encoders documented in Encode are present in the list of
42      * possible encodings
43      */

44     public void testDocumentedEncodersPresent() {
45         Set JavaDoc documentedEncodings = getDocumentedEncodings();
46         Set JavaDoc set = Encode.possibleEncodings();
47
48         //are there documented encoders that are not present?
49
if (!set.containsAll(documentedEncodings)) {
50             documentedEncodings.removeAll(set);
51             fail("found documented encoders that are not found in the list of know encoders" + documentedEncodings);
52         }
53     }
54
55     /**
56      * tests if the encoders documented in Encode are requestable
57      */

58
59     public void testDocumentedEncodersRequestable() {
60         Iterator JavaDoc iter = getDocumentedEncodings().iterator();
61         while (iter.hasNext()) {
62             String JavaDoc name = (String JavaDoc) iter.next();
63             new Encode(name);
64         }
65     }
66
67
68     public void testUndocumentedEncoders() {
69         Set JavaDoc encodings = new TreeSet JavaDoc(Encode.possibleEncodings());
70         encodings.removeAll(getDocumentedEncodings());
71         assertTrue("found undocumented encoding(s)" + encodings, encodings.isEmpty());
72     }
73
74     /**
75      * test if encode and decode methods are symetric string is encoded and the decoded the same result
76      */

77     public void testCharEncoders(){
78         Iterator JavaDoc iter = getSymmetricEncodings().iterator();
79         while (iter.hasNext()) {
80             String JavaDoc name = (String JavaDoc) iter.next();
81             Encode encode = new Encode(name);
82             if (encode.isCharEncoder()){
83                 for (int x =0 ; x < TESTS.length ; x++){
84                     String JavaDoc encoded = encode.encode(TESTS[x]);
85                     String JavaDoc decoded = encode.decode(encoded);
86                     assertTrue("char encoder["+ name +"] failed symetric test with input value["+ TESTS[x]+ "]",TESTS[x].equals(decoded));
87                 }
88             }
89         }
90     }
91
92     public Set JavaDoc getSymmetricEncodings() {
93         SortedSet JavaDoc symmetricEncodings = new TreeSet JavaDoc();
94         symmetricEncodings.add("BASE64");
95         symmetricEncodings.add("ESCAPE_HTML");
96         symmetricEncodings.add("ESCAPE_HTML_ATTRIBUTE");
97         symmetricEncodings.add("ESCAPE_SINGLE_QUOTE");
98         symmetricEncodings.add("ESCAPE_URL");
99         symmetricEncodings.add("ESCAPE_URL_PARAM");
100         symmetricEncodings.add("ESCAPE_WML");
101         symmetricEncodings.add("ESCAPE_XML");
102         symmetricEncodings.add("ESCAPE_XML_ATTRIBUTE");
103         symmetricEncodings.add("ESCAPE_XML_ATTRIBUTE_DOUBLE");
104         symmetricEncodings.add("ESCAPE_XML_ATTRIBUTE_SINGLE");
105         symmetricEncodings.add("ROT-13");
106         symmetricEncodings.add("ROT-5");
107
108         return symmetricEncodings;
109     }
110     /**
111      *
112      * @return a new set containing the names of the encoders that are
113      * documented in the Encode
114      */

115     public Set JavaDoc getDocumentedEncodings() {
116         SortedSet JavaDoc documentedEncodings = new TreeSet JavaDoc();
117         documentedEncodings.add("BASE64");
118         documentedEncodings.add("ESCAPE_HTML");
119         documentedEncodings.add("ESCAPE_HTML_ATTRIBUTE");
120         documentedEncodings.add("ESCAPE_SINGLE_QUOTE");
121         documentedEncodings.add("ESCAPE_URL");
122         documentedEncodings.add("ESCAPE_URL_PARAM");
123         documentedEncodings.add("ESCAPE_WML");
124         documentedEncodings.add("ESCAPE_XML");
125         documentedEncodings.add("ESCAPE_XML_ATTRIBUTE");
126         documentedEncodings.add("ESCAPE_XML_ATTRIBUTE_DOUBLE");
127         documentedEncodings.add("ESCAPE_XML_ATTRIBUTE_SINGLE");
128         documentedEncodings.add("HEX");
129         documentedEncodings.add("MD5");
130         documentedEncodings.add("MMXF_ASCII");
131         documentedEncodings.add("MMXF_BODY_POOR");
132         documentedEncodings.add("MMXF_BODY_RICH");
133         documentedEncodings.add("MMXF_HTML_BLOCK");
134         documentedEncodings.add("MMXF_HTML_BLOCK_BR");
135         documentedEncodings.add("MMXF_HTML_BLOCK_BR_NOSURROUNDINGP");
136         documentedEncodings.add("MMXF_HTML_BLOCK_NOSURROUNDINGP");
137         documentedEncodings.add("MMXF_HTML_BLOCK_LIST");
138         documentedEncodings.add("MMXF_HTML_BLOCK_LIST_BR");
139         documentedEncodings.add("MMXF_HTML_BLOCK_LIST_BR_NOSURROUNDINGP");
140         documentedEncodings.add("MMXF_HTML_BLOCK_LIST_NOSURROUNDINGP");
141         documentedEncodings.add("MMXF_HTML_INLINE");
142         documentedEncodings.add("MMXF_XHTML");
143         documentedEncodings.add("REGEXPS_ENTIRE");
144         documentedEncodings.add("REGEXPS_LINES");
145         documentedEncodings.add("REGEXPS_WORDS");
146         documentedEncodings.add("REGEXPS_XMLTEXT");
147         documentedEncodings.add("REGEXPS_XMLTEXT_WORDS");
148         documentedEncodings.add("ROT-13");
149         documentedEncodings.add("ROT-5");
150         documentedEncodings.add("UNICODEESCAPER");
151        return documentedEncodings;
152     }
153
154 }
155
Popular Tags