1 10 package org.mmbase.util; 11 12 import java.util.Iterator ; 13 import java.util.Set ; 14 import java.util.SortedSet ; 15 import java.util.TreeSet ; 16 17 import junit.framework.TestCase; 18 19 24 public class EncodeTest extends TestCase { 25 26 public final static String TEST_EMPTY_STRING = ""; 27 28 public final static String TEST_QUOTES = "'TEST_QUOTES'"; 29 30 public final static String TEST_ESCAPED_QUOTES = "\'TEST_ESCAPED_QUOTES\'"; 31 32 public final static String TEST_LT_GT = "4 < x > 2"; 33 34 public final static String TEST_ENTITY = "< >"; 35 36 public final static String TEST_HTML_ENTITY = "é ë"; 37 38 private final static String [] TESTS = { TEST_EMPTY_STRING, TEST_QUOTES, TEST_ESCAPED_QUOTES, TEST_LT_GT, TEST_HTML_ENTITY }; 39 40 44 public void testDocumentedEncodersPresent() { 45 Set documentedEncodings = getDocumentedEncodings(); 46 Set set = Encode.possibleEncodings(); 47 48 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 58 59 public void testDocumentedEncodersRequestable() { 60 Iterator iter = getDocumentedEncodings().iterator(); 61 while (iter.hasNext()) { 62 String name = (String ) iter.next(); 63 new Encode(name); 64 } 65 } 66 67 68 public void testUndocumentedEncoders() { 69 Set encodings = new TreeSet (Encode.possibleEncodings()); 70 encodings.removeAll(getDocumentedEncodings()); 71 assertTrue("found undocumented encoding(s)" + encodings, encodings.isEmpty()); 72 } 73 74 77 public void testCharEncoders(){ 78 Iterator iter = getSymmetricEncodings().iterator(); 79 while (iter.hasNext()) { 80 String name = (String ) iter.next(); 81 Encode encode = new Encode(name); 82 if (encode.isCharEncoder()){ 83 for (int x =0 ; x < TESTS.length ; x++){ 84 String encoded = encode.encode(TESTS[x]); 85 String 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 getSymmetricEncodings() { 93 SortedSet symmetricEncodings = new TreeSet (); 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 115 public Set getDocumentedEncodings() { 116 SortedSet documentedEncodings = new TreeSet (); 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 |