Author: rdonkin
Date: Sun Jul 27 08:06:34 2008
New Revision: 680118

URL: http://svn.apache.org/viewvc?rev=680118&view=rev
Log:
Improved test coverage of message/rfc822 type mail

Added:
    
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeStreamTokenMessageRfc822Test.java
Modified:
    james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java

Modified: 
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java
URL: 
http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java?rev=680118&r1=680117&r2=680118&view=diff
==============================================================================
--- james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java 
(original)
+++ james/mime4j/trunk/src/test/java/org/apache/james/mime4j/ExampleMail.java 
Sun Jul 27 08:06:34 2008
@@ -491,6 +491,7 @@
     "Delivered-To: [EMAIL PROTECTED]" +
     "\r\n" + 
breakLines(ONE_PART_MIME_QUOTED_PRINTABLE_ASCII_BODY.replaceAll("\r\n", 
"=0D=0A"));
     
+    
     public static final String RFC_SIMPLE = 
             "From: Timothy Tayler <[EMAIL PROTECTED]>\r\n" +
             "To: Samual Smith <[EMAIL PROTECTED]>\r\n" +
@@ -499,6 +500,15 @@
             "\r\n" +
             RFC822_SIMPLE_BODY;
 
+    public static final String MIME_RFC822_SIMPLE = 
+        "From: Samual Smith <[EMAIL PROTECTED]>\r\n" +
+        "To: Joshua Tetley <[EMAIL PROTECTED]>\r\n" +
+        "Date: Thu, 14 Feb 2008 12:30:00 +0000 (GMT)\r\n" +
+        "Subject: FW: A Simple Email\r\n" +
+        "MIME-Version: 1.0\r\n" +
+        "Content-Type: message/rfc822\r\n" +
+        "\r\n" + RFC_SIMPLE;
+    
     public static final String MIME_MIXED_MULTIPART_VARIOUS_ENCODINGS_7BIT = 
"Sonnet XXXIII By William Shakespeare\r\n" +
             "\r\n" +
             "Full many a glorious morning have I seen\r\n" +
@@ -609,6 +619,7 @@
         ascii(MIME_MIXED_MULTIPART_VARIOUS_ENCODINGS_END),
     };
     
+    public static final byte[] MIME_RFC822_SIMPLE_BYTES = 
ascii(MIME_RFC822_SIMPLE);
     public static final byte[] MULTIPART_WITH_CONTENT_LOCATION_BYTES = 
ascii(MULTIPART_WITH_CONTENT_LOCATION);
     public static final byte[] 
ONE_PART_MIME_WITH_CONTENT_DISPOSITION_PARAMETERS_BYTES = 
ascii(ONE_PART_MIME_WITH_CONTENT_DISPOSITION_PARAMETERS);
     public static final byte[] MIME_MULTIPART_ALTERNATIVE_BYTES = 
ascii(MIME_MULTIPART_ALTERNATIVE);

Added: 
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeStreamTokenMessageRfc822Test.java
URL: 
http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeStreamTokenMessageRfc822Test.java?rev=680118&view=auto
==============================================================================
--- 
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeStreamTokenMessageRfc822Test.java
 (added)
+++ 
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/MimeStreamTokenMessageRfc822Test.java
 Sun Jul 27 08:06:34 2008
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.james.mime4j;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+
+import junit.framework.TestCase;
+
+public class MimeStreamTokenMessageRfc822Test extends TestCase {
+
+    MimeTokenStream stream;
+    
+    protected void setUp() throws Exception {
+        super.setUp();
+        stream = new MimeTokenStream();
+        stream.parse(new 
ByteArrayInputStream(ExampleMail.MIME_RFC822_SIMPLE_BYTES));
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+    
+    public void testShouldParseMessageRFC822CorrectWithDefaultConfiguration() 
throws Exception {
+        nextIs(MimeTokenStream.T_START_HEADER);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_END_HEADER);
+        nextIs(MimeTokenStream.T_START_MESSAGE);
+        nextIs(MimeTokenStream.T_START_HEADER);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_END_HEADER);
+        nextIs(MimeTokenStream.T_BODY);
+        nextIs(MimeTokenStream.T_END_MESSAGE);
+        nextIs(MimeTokenStream.T_END_MESSAGE);
+        nextIs(MimeTokenStream.T_END_OF_STREAM);
+    }
+    
+    public void testShouldParseMessageRFC822CorrectWithNoRecurse() throws 
Exception {
+        stream.setRecursionMode(RecursionMode.M_NO_RECURSE);
+        nextIs(MimeTokenStream.T_START_HEADER);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_END_HEADER);
+        nextIs(MimeTokenStream.T_BODY);
+        nextIs(MimeTokenStream.T_END_MESSAGE);
+        nextIs(MimeTokenStream.T_END_OF_STREAM);
+    }
+    
+    public void testShouldParseMessageRFC822CorrectWithFlat() throws Exception 
{
+        stream.setRecursionMode(RecursionMode.M_FLAT);
+        nextIs(MimeTokenStream.T_START_HEADER);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_FIELD);
+        nextIs(MimeTokenStream.T_END_HEADER);
+        nextIs(MimeTokenStream.T_BODY);
+        nextIs(MimeTokenStream.T_END_MESSAGE);
+        nextIs(MimeTokenStream.T_END_OF_STREAM);
+    }
+    
+    private void nextIs(int state) throws Exception {
+        assertEquals(MimeTokenStream.stateToString(state), 
MimeTokenStream.stateToString(stream.next()));
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to