You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by mw...@apache.org on 2009/08/17 14:28:27 UTC

svn commit: r804953 - /james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java

Author: mwiederkehr
Date: Mon Aug 17 12:28:27 2009
New Revision: 804953

URL: http://svn.apache.org/viewvc?rev=804953&view=rev
Log:
split up big test method

Modified:
    james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java

Modified: james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java?rev=804953&r1=804952&r2=804953&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java (original)
+++ james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java Mon Aug 17 12:28:27 2009
@@ -32,6 +32,7 @@
         BasicConfigurator.resetConfiguration();
         BasicConfigurator.configure();
     }
+
     /*
     public void testDecodeEncodedWords() {
         String s = "=?ISO-2022-JP?B?GyRCTCQbKEobJEI+NRsoShskQkJ6GyhKGyRCOS0bKEo=?= "
@@ -43,23 +44,24 @@
         s = DecoderUtil.decodeEncodedWords(s);
         System.out.println(s);
     }*/
-    
+
     public void testDecodeB() throws UnsupportedEncodingException {
         String s = DecoderUtil.decodeB("VGhpcyBpcyB0aGUgcGxhaW4gd"
                     + "GV4dCBtZXNzYWdlIQ==", "ISO8859-1");
         assertEquals("This is the plain text message!", s);
     }
-    
 
     public void testDecodeQ() throws UnsupportedEncodingException {
-        String s = DecoderUtil.decodeQ("=e1_=e2=09=E3_=E4_", 
-                                                         "ISO8859-1");
+        String s = DecoderUtil.decodeQ("=e1_=e2=09=E3_=E4_", "ISO8859-1");
         assertEquals("\u00e1 \u00e2\t\u00e3 \u00e4 ", s);
     }
-    
-    public void testDecodeEncodedWords() {
+
+    public void testNonEncodedWordsAreIgnored() {
         assertEquals("", DecoderUtil.decodeEncodedWords(""));
         assertEquals("Yada yada", DecoderUtil.decodeEncodedWords("Yada yada"));
+    }
+
+    public void testDecodeSomeEncodedWords() {
         assertEquals("  \u00e1\u00e2\u00e3\t\u00e4", 
                 DecoderUtil.decodeEncodedWords("=?iso-8859-1?Q?_=20=e1=e2=E3=09=E4?="));
         assertEquals("Word 1 '  \u00e2\u00e3\t\u00e4'. Word 2 '  \u00e2\u00e3\t\u00e4'", 
@@ -71,18 +73,23 @@
                 DecoderUtil.decodeEncodedWords("=?US-ASCII?B?QSBzaG9ydCB0ZXh0?="));
         assertEquals("A short text again!", 
                 DecoderUtil.decodeEncodedWords("=?US-ASCII?b?QSBzaG9ydCB0ZXh0IGFnYWluIQ==?="));
+    }
 
-        // invalid encoded words should be returned unchanged
+    public void testInvalidEncodedWordsAreIgnored() {
         assertEquals("=?iso8859-1?Q?=", DecoderUtil.decodeEncodedWords("=?iso8859-1?Q?="));
         assertEquals("=?iso8859-1?b?=", DecoderUtil.decodeEncodedWords("=?iso8859-1?b?="));
         assertEquals("=?ISO-8859-1?Q?", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?"));
         assertEquals("=?ISO-8859-1?R?abc?=", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?R?abc?="));
+    }
 
+    public void testEmptyEncodedTextIsIgnored() {
         // encoded-text requires at least one character according to rfc 2047
         assertEquals("=?ISO-8859-1?Q??=", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q??="));
         assertEquals("=?ISO-8859-1?B??=", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?B??="));
-        
-        // white space between encoded words should be removed (MIME4J-104)
+    }
+
+    // see MIME4J-104
+    public void testWhiteSpaceBetweenEncodedWordsGetsRemoved() {
         assertEquals("a", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?="));
         assertEquals("a b", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?= b"));
         assertEquals("ab", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?="));
@@ -90,16 +97,19 @@
         assertEquals("ab", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?=\r\n  =?ISO-8859-1?Q?b?="));
         assertEquals("a b", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a_b?="));
         assertEquals("a b", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?="));
+    }
 
-        // non white space between encoded words should be retained
+    public void testNonWhiteSpaceBetweenEncodedWordsIsRetained() {
         assertEquals("a b c", DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?= b =?ISO-8859-1?Q?c?="));
+    }
 
-        // text before and after encoded words should be retained
+    public void testTextBeforeAndAfterEncodedWordIsRetained() {
         assertEquals(" a b c ", DecoderUtil.decodeEncodedWords(" =?ISO-8859-1?Q?a?= b =?ISO-8859-1?Q?c?= "));
         assertEquals("! a b c !", DecoderUtil.decodeEncodedWords("! =?ISO-8859-1?Q?a?= b =?ISO-8859-1?Q?c?= !"));
-        
-        // Bug detected on June 7, 2005. Decoding the following string caused
-        // OutOfMemoryError.
+    }
+
+    public void testFunnyInputDoesNotRaiseOutOfMemoryError() {
+        // Bug detected on June 7, 2005. Decoding the following string caused OutOfMemoryError.
         assertEquals("=3?!!\\=?\"!g6P\"!Xp:\"!", DecoderUtil.decodeEncodedWords("=3?!!\\=?\"!g6P\"!Xp:\"!"));
     }    
 }