You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2008/03/30 12:56:42 UTC

svn commit: r642705 - in /james/server/trunk/experimental-seda-imap-function/src/test: java/org/apache/james/test/functional/ resources/org/apache/james/test/functional/imap/scripts/

Author: rdonkin
Date: Sun Mar 30 03:56:40 2008
New Revision: 642705

URL: http://svn.apache.org/viewvc?rev=642705&view=rev
Log:
TEXT partial FETCH test

Added:
    james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/TextPartialFetch
Modified:
    james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java
    james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java

Modified: james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java?rev=642705&r1=642704&r2=642705&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java Sun Mar 30 03:56:40 2008
@@ -35,8 +35,40 @@
 
     public static final void main(String[] args) throws Exception {
         ScriptBuilder builder = ScriptBuilder.open("localhost", 143);
-        bodyPartialFetch(builder);
+        textPartialFetch(builder);
     }
+    
+    public static void textPartialFetch(ScriptBuilder builder) throws Exception {
+        builder.login();
+        builder.create();
+        builder.select();
+        builder.setFile("multipart-mixed-complex.mail");
+        builder.append();
+        builder.select();
+        builder.partial(0, 0).fetchSection("TEXT");
+        builder.partial(0, 16).fetchSection("TEXT");
+        builder.partial(0, 32).fetchSection("TEXT");
+        builder.partial(0, 64).fetchSection("TEXT");
+        builder.partial(0, 128).fetchSection("TEXT");
+        builder.partial(0, 1024).fetchSection("TEXT");
+        builder.partial(0, 2048).fetchSection("TEXT");
+        builder.partial(7, 0).fetchSection("TEXT");
+        builder.partial(7, 16).fetchSection("TEXT");
+        builder.partial(7, 32).fetchSection("TEXT");
+        builder.partial(7, 64).fetchSection("TEXT");
+        builder.partial(7, 128).fetchSection("TEXT");
+        builder.partial(7, 1024).fetchSection("TEXT");
+        builder.partial(7, 2048).fetchSection("TEXT");
+        builder.partial(10000, 0).fetchSection("TEXT");
+        builder.partial(10000, 16).fetchSection("TEXT");
+        builder.partial(10000, 32).fetchSection("TEXT");
+        builder.partial(10000, 64).fetchSection("TEXT");
+        builder.partial(10000, 128).fetchSection("TEXT");
+        builder.partial(10000, 1024).fetchSection("TEXT");
+        builder.partial(10000, 2048).fetchSection("TEXT");
+        builder.quit();
+    }
+    
     
     public static void bodyPartialFetch(ScriptBuilder builder) throws Exception {
         builder.login();

Modified: james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java?rev=642705&r1=642704&r2=642705&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java Sun Mar 30 03:56:40 2008
@@ -1177,7 +1177,18 @@
     }
     
     private static final class Out {
-        private final CharBuffer lineBuffer = CharBuffer.allocate(1048);
+        private static final String[] IGNORE_LINES_STARTING_WITH = {  
+                                                        "S: \\* OK \\[PERMANENTFLAGS",
+                                                        "C: A22 LOGOUT",
+                                                        "S: \\* BYE Logging out", 
+                                                        "S: \\* OK Dovecot ready\\."};
+        private static final String[] IGNORE_LINES_CONTAINING = {
+                                        "OK Logout completed.",
+                                        "LOGIN imapuser password", 
+                                        "OK Logged in",
+                                        "LOGOUT"};
+        
+        private final CharBuffer lineBuffer = CharBuffer.allocate(4096);
         private boolean isClient = false;
         public void client() {
             lineBuffer.put("C: ");
@@ -1222,12 +1233,47 @@
         
         public void lineEnd() {
             lineBuffer.flip();
-            String line = lineBuffer.toString();
-            line = StringUtils.replace(line, "OK Create completed", "OK CREATE completed");
-            line = StringUtils.replace(line, "OK Fetch completed", "OK FETCH completed");
-            line = StringUtils.replace(line, "OK Append completed", "OK APPEND completed");
-            System.out.println(line);
+            final String text = lineBuffer.toString();
+            String[] lines = text.split("\r\n");
+            for (int i = 0; i < lines.length; i++) {
+                String line = StringUtils.chomp(lines[i]);    
+                if (!ignoreLine(line)) {
+                    line = StringUtils.replace(line, "OK Create completed", "OK CREATE completed");
+                    line = StringUtils.replace(line, "OK Fetch completed", "OK FETCH completed");
+                    line = StringUtils.replace(line, "OK Append completed", "OK APPEND completed");
+                    line = StringUtils.replace(line, "OK Delete completed", "OK DELETE completed");
+                    line = StringUtils.replace(line, "Select completed", "SELECT completed");
+                    line = StringUtils.replace(line, "\\\\Seen \\\\Draft", "\\\\Draft \\\\Seen");
+                    line = StringUtils.replace(line, "\\\\Flagged \\\\Deleted", "\\\\Deleted \\\\Flagged");
+                    line = StringUtils.replace(line, "\\\\Flagged \\\\Draft", "\\\\Draft \\\\Flagged");
+                    line = StringUtils.replace(line, "\\\\Seen \\\\Recent", "\\\\Recent \\\\Seen");
+                    line = StringUtils.replace(line, "\\] First unseen\\.", "\\](.)*");
+                    if (line.startsWith("S: \\* OK \\[UIDVALIDITY ")) {
+                        line = "S: \\* OK \\[UIDVALIDITY \\d+\\\\]";
+                    } else if (line.startsWith("S: \\* OK \\[UIDNEXT")) {
+                        line = "S: \\* OK \\[PERMANENTFLAGS \\(\\\\Answered \\\\Deleted \\\\Draft \\\\Flagged \\\\Seen\\)\\]";
+                    }
+                    System.out.println(line);
+                }
+            }
             lineBuffer.clear();
+        }
+
+        private boolean ignoreLine(String line) {
+            boolean result = false;
+            for (int i = 0; i < IGNORE_LINES_CONTAINING.length; i++) {
+                if (line.indexOf(IGNORE_LINES_CONTAINING[i]) > 0) {
+                    result = true;
+                    break;
+                }
+            }
+            for (int i = 0; i < IGNORE_LINES_STARTING_WITH.length && ! result; i++) {
+                if (line.startsWith(IGNORE_LINES_STARTING_WITH[i])) {
+                    result = true;
+                    break;
+                }
+            }
+            return result;
         }
     }
     

Added: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/TextPartialFetch
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/TextPartialFetch?rev=642705&view=auto
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/TextPartialFetch (added)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/TextPartialFetch Sun Mar 30 03:56:40 2008
@@ -0,0 +1,518 @@
+################################################################
+# 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.                                           #
+################################################################
+C: A2 CREATE testmailbox
+S: A2 OK CREATE completed\.
+C: A3 SELECT testmailbox
+S: \* FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)
+S: \* 0 EXISTS
+S: \* 0 RECENT
+S: \* OK \[UIDVALIDITY \d+\\]
+S: \* OK \[PERMANENTFLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)\]
+S: A3 OK \[READ-WRITE\] SELECT completed\.
+C: A4 APPEND testmailbox {1767+}
+C: From: Timothy Tayler <ti...@example.org>
+C: To: Samual Smith <sa...@example.org>
+C: Date: Thu, 14 Feb 2008 12:00:00 +0000 (GMT)
+C: Subject: A Multipart Email
+C: Content-Type: multipart/mixed;boundary=1729
+C: 
+C: Start with a preamble
+C: 
+C: --1729
+C: Content-Type: text/plain; charset=US-ASCII
+C: 
+C: Rhubarb!
+C: 
+C: --1729
+C: Content-Type: application/octet-stream
+C: Content-Transfer-Encoding: base64
+C: 
+C: 987654321AHPLA
+C: 
+C: --1729
+C: Content-Type: message/rfc822
+C: 
+C: From: Timothy Tayler <ti...@example.org>
+C: To: Samual Smith <sa...@example.org>
+C: Date: Thu, 14 Feb 2008 12:00:00 +0000 (GMT)
+C: Subject: A Multipart Alternative Email
+C: Content-Type: multipart/alternative;boundary=42
+C: 
+C: This message has a premable
+C: 
+C: --42
+C: Content-Type: text/plain; charset=US-ASCII
+C: 
+C: Custard!
+C: 
+C: --42
+C: Content-Type: application/octet-stream
+C: 
+C: CUSTARDCUSTARDCUSTARD
+C: 
+C: --42--
+C: 
+C: --1729
+C: Content-Type: multipart/mixed; boundary=4.66920160910299
+C: 
+C: --4.66920160910299
+C: Content-Type: image/gif
+C: Content-Transfer-Encoding: base64
+C: MIME-Version: 1.0
+C: Content-ID: 238478934723847238947892374
+C: Content-Description: Bogus Image Data
+C: 
+C: ABCDFEGHIJKLMNO
+C: 
+C: --4.66920160910299
+C: Content-Type: message/rfc822
+C: 
+C: From: Timothy Tayler <ti...@example.org>
+C: To: John Smith <jo...@example.org>
+C: Date: Sat, 16 Feb 2008 12:00:00 +0000 (GMT)
+C: Subject: Another Example Email
+C: Content-Type: multipart/mixed;boundary=2.50290787509
+C: 
+C: Yet another preamble
+C: 
+C: --2.50290787509
+C: Content-Type: text/plain
+C: 
+C: Rhubard AND Custard!
+C: 
+C: --2.50290787509
+C: Content-Type: multipart/alternative;boundary=3.243F6A8885A308D3
+C: 
+C: --3.243F6A8885A308D3
+C: Content-Type: text/plain
+C: 
+C: Rhubard?Custard?
+C: 
+C: --3.243F6A8885A308D3
+C: 
+C: Content-Type: text/richtext
+C: 
+C: Rhubard?Custard?
+C: 
+C: --3.243F6A8885A308D3--
+C: 
+C: --2.50290787509--
+C: 
+C: --4.66920160910299--
+C: --1729--
+C: 
+S: \* 1 EXISTS
+S: \* 1 RECENT
+S: A4 OK APPEND completed\.
+C: A5 SELECT testmailbox
+S: \* FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)
+S: \* 1 EXISTS
+S: \* 1 RECENT
+S: \* OK \[UNSEEN 1\](.)*
+S: \* OK \[UIDVALIDITY \d+\\]
+S: \* OK \[PERMANENTFLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)\]
+S: A5 OK \[READ-WRITE\] SELECT completed\.
+C: A6 FETCH 1 (BODY[TEXT]<0.0>)
+S: \* 1 FETCH \(FLAGS \(\\Recent \\Seen\) BODY\[TEXT\]<0> \{0\}
+S: \)
+S: A6 OK FETCH completed\.
+C: A7 FETCH 1 (BODY[TEXT]<0.16>)
+S: \* 1 FETCH \(BODY\[TEXT\]<0> \{16\}
+S: Start with a pre\)
+S: A7 OK FETCH completed\.
+C: A8 FETCH 1 (BODY[TEXT]<0.32>)
+S: \* 1 FETCH \(BODY\[TEXT\]<0> \{32\}
+S: Start with a preamble
+S: 
+S: --1729
+\)
+S: A8 OK FETCH completed\.
+C: A9 FETCH 1 (BODY[TEXT]<0.64>)
+S: \* 1 FETCH \(BODY\[TEXT\]<0> \{64\}
+S: Start with a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; chars\)
+S: A9 OK FETCH completed\.
+C: A10 FETCH 1 (BODY[TEXT]<0.128>)
+S: \* 1 FETCH \(BODY\[TEXT\]<0> \{128\}
+S: Start with a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Rhubarb!
+S: 
+S: --1729
+S: Content-Type: application/oct\)
+S: A10 OK FETCH completed\.
+C: A11 FETCH 1 (BODY[TEXT]<0.1024>)
+S: \* 1 FETCH \(BODY\[TEXT\]<0> \{1024\}
+S: Start with a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Rhubarb!
+S: 
+S: --1729
+S: Content-Type: application/octet-stream
+S: Content-Transfer-Encoding: base64
+S: 
+S: 987654321AHPLA
+S: 
+S: --1729
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: Samual Smith <samual@example\.org>
+S: Date: Thu, 14 Feb 2008 12:00:00 \+0000 \(GMT\)
+S: Subject: A Multipart Alternative Email
+S: Content-Type: multipart/alternative;boundary=42
+S: 
+S: This message has a premable
+S: 
+S: --42
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Custard!
+S: 
+S: --42
+S: Content-Type: application/octet-stream
+S: 
+S: CUSTARDCUSTARDCUSTARD
+S: 
+S: --42--
+S: 
+S: --1729
+S: Content-Type: multipart/mixed; boundary=4\.66920160910299
+S: 
+S: --4\.66920160910299
+S: Content-Type: image/gif
+S: Content-Transfer-Encoding: base64
+S: MIME-Version: 1\.0
+S: Content-ID: 238478934723847238947892374
+S: Content-Description: Bogus Image Data
+S: 
+S: ABCDFEGHIJKLMNO
+S: 
+S: --4\.66920160910299
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: John Smith <john@example\.\)
+S: A11 OK FETCH completed\.
+C: A12 FETCH 1 (BODY[TEXT]<0.2048>)
+S: \* 1 FETCH \(BODY\[TEXT\]<0> \{1564\}
+S: Start with a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Rhubarb!
+S: 
+S: --1729
+S: Content-Type: application/octet-stream
+S: Content-Transfer-Encoding: base64
+S: 
+S: 987654321AHPLA
+S: 
+S: --1729
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: Samual Smith <samual@example\.org>
+S: Date: Thu, 14 Feb 2008 12:00:00 \+0000 \(GMT\)
+S: Subject: A Multipart Alternative Email
+S: Content-Type: multipart/alternative;boundary=42
+S: 
+S: This message has a premable
+S: 
+S: --42
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Custard!
+S: 
+S: --42
+S: Content-Type: application/octet-stream
+S: 
+S: CUSTARDCUSTARDCUSTARD
+S: 
+S: --42--
+S: 
+S: --1729
+S: Content-Type: multipart/mixed; boundary=4\.66920160910299
+S: 
+S: --4\.66920160910299
+S: Content-Type: image/gif
+S: Content-Transfer-Encoding: base64
+S: MIME-Version: 1\.0
+S: Content-ID: 238478934723847238947892374
+S: Content-Description: Bogus Image Data
+S: 
+S: ABCDFEGHIJKLMNO
+S: 
+S: --4\.66920160910299
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: John Smith <john@example\.org>
+S: Date: Sat, 16 Feb 2008 12:00:00 \+0000 \(GMT\)
+S: Subject: Another Example Email
+S: Content-Type: multipart/mixed;boundary=2\.50290787509
+S: 
+S: Yet another preamble
+S: 
+S: --2\.50290787509
+S: Content-Type: text/plain
+S: 
+S: Rhubard AND Custard!
+S: 
+S: --2\.50290787509
+S: Content-Type: multipart/alternative;boundary=3\.243F6A8885A308D3
+S: 
+S: --3\.243F6A8885A308D3
+S: Content-Type: text/plain
+S: 
+S: Rhubard\?Custard\?
+S: 
+S: --3\.243F6A8885A308D3
+S: 
+S: Content-Type: text/richtext
+S: 
+S: Rhubard\?Custard\?
+S: 
+S: --3\.243F6A8885A308D3--
+S: 
+S: --2\.50290787509--
+S: 
+S: --4\.66920160910299--
+S: --1729--
+S: \)
+S: A12 OK FETCH completed\.
+C: A13 FETCH 1 (BODY[TEXT]<7.0>)
+S: \* 1 FETCH \(BODY\[TEXT\]<7> \{0\}
+S: \)
+S: A13 OK FETCH completed\.
+C: A14 FETCH 1 (BODY[TEXT]<7.16>)
+S: \* 1 FETCH \(BODY\[TEXT\]<7> \{16\}
+S: ith a preamble
+S: \)
+S: A14 OK FETCH completed\.
+C: A15 FETCH 1 (BODY[TEXT]<7.32>)
+S: \* 1 FETCH \(BODY\[TEXT\]<7> \{32\}
+S: ith a preamble
+S: 
+S: --1729
+S: Conten\)
+S: A15 OK FETCH completed\.
+C: A16 FETCH 1 (BODY[TEXT]<7.64>)
+S: \* 1 FETCH \(BODY\[TEXT\]<7> \{64\}
+S: ith a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; charset=US-A\)
+S: A16 OK FETCH completed\.
+C: A17 FETCH 1 (BODY[TEXT]<7.128>)
+S: \* 1 FETCH \(BODY\[TEXT\]<7> \{128\}
+S: ith a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Rhubarb!
+S: 
+S: --1729
+S: Content-Type: application/octet-stre\)
+S: A17 OK FETCH completed\.
+C: A18 FETCH 1 (BODY[TEXT]<7.1024>)
+S: \* 1 FETCH \(BODY\[TEXT\]<7> \{1024\}
+S: ith a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Rhubarb!
+S: 
+S: --1729
+S: Content-Type: application/octet-stream
+S: Content-Transfer-Encoding: base64
+S: 
+S: 987654321AHPLA
+S: 
+S: --1729
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: Samual Smith <samual@example\.org>
+S: Date: Thu, 14 Feb 2008 12:00:00 \+0000 \(GMT\)
+S: Subject: A Multipart Alternative Email
+S: Content-Type: multipart/alternative;boundary=42
+S: 
+S: This message has a premable
+S: 
+S: --42
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Custard!
+S: 
+S: --42
+S: Content-Type: application/octet-stream
+S: 
+S: CUSTARDCUSTARDCUSTARD
+S: 
+S: --42--
+S: 
+S: --1729
+S: Content-Type: multipart/mixed; boundary=4\.66920160910299
+S: 
+S: --4\.66920160910299
+S: Content-Type: image/gif
+S: Content-Transfer-Encoding: base64
+S: MIME-Version: 1\.0
+S: Content-ID: 238478934723847238947892374
+S: Content-Description: Bogus Image Data
+S: 
+S: ABCDFEGHIJKLMNO
+S: 
+S: --4\.66920160910299
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: John Smith <john@example\.org>
+S: D\)
+S: A18 OK FETCH completed\.
+C: A19 FETCH 1 (BODY[TEXT]<7.2048>)
+S: \* 1 FETCH \(BODY\[TEXT\]<7> \{1557\}
+S: ith a preamble
+S: 
+S: --1729
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Rhubarb!
+S: 
+S: --1729
+S: Content-Type: application/octet-stream
+S: Content-Transfer-Encoding: base64
+S: 
+S: 987654321AHPLA
+S: 
+S: --1729
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: Samual Smith <samual@example\.org>
+S: Date: Thu, 14 Feb 2008 12:00:00 \+0000 \(GMT\)
+S: Subject: A Multipart Alternative Email
+S: Content-Type: multipart/alternative;boundary=42
+S: 
+S: This message has a premable
+S: 
+S: --42
+S: Content-Type: text/plain; charset=US-ASCII
+S: 
+S: Custard!
+S: 
+S: --42
+S: Content-Type: application/octet-stream
+S: 
+S: CUSTARDCUSTARDCUSTARD
+S: 
+S: --42--
+S: 
+S: --1729
+S: Content-Type: multipart/mixed; boundary=4\.66920160910299
+S: 
+S: --4\.66920160910299
+S: Content-Type: image/gif
+S: Content-Transfer-Encoding: base64
+S: MIME-Version: 1\.0
+S: Content-ID: 238478934723847238947892374
+S: Content-Description: Bogus Image Data
+S: 
+S: ABCDFEGHIJKLMNO
+S: 
+S: --4\.66920160910299
+S: Content-Type: message/rfc822
+S: 
+S: From: Timothy Tayler <timothy@example\.org>
+S: To: John Smith <john@example\.org>
+S: Date: Sat, 16 Feb 2008 12:00:00 \+0000 \(GMT\)
+S: Subject: Another Example Email
+S: Content-Type: multipart/mixed;boundary=2\.50290787509
+S: 
+S: Yet another preamble
+S: 
+S: --2\.50290787509
+S: Content-Type: text/plain
+S: 
+S: Rhubard AND Custard!
+S: 
+S: --2\.50290787509
+S: Content-Type: multipart/alternative;boundary=3\.243F6A8885A308D3
+S: 
+S: --3\.243F6A8885A308D3
+S: Content-Type: text/plain
+S: 
+S: Rhubard\?Custard\?
+S: 
+S: --3\.243F6A8885A308D3
+S: 
+S: Content-Type: text/richtext
+S: 
+S: Rhubard\?Custard\?
+S: 
+S: --3\.243F6A8885A308D3--
+S: 
+S: --2\.50290787509--
+S: 
+S: --4\.66920160910299--
+S: --1729--
+S: \)
+S: A19 OK FETCH completed\.
+C: A20 FETCH 1 (BODY[TEXT]<10000.0>)
+S: \* 1 FETCH \(BODY\[TEXT\]<10000> \{0\}
+S: \)
+S: A20 OK FETCH completed\.
+C: A21 FETCH 1 (BODY[TEXT]<10000.16>)
+S: \* 1 FETCH \(BODY\[TEXT\]<10000> \{0\}
+S: \)
+S: A21 OK FETCH completed\.
+C: A22 FETCH 1 (BODY[TEXT]<10000.32>)
+S: \* 1 FETCH \(BODY\[TEXT\]<10000> \{0\}
+S: \)
+S: A22 OK FETCH completed\.
+C: A23 FETCH 1 (BODY[TEXT]<10000.64>)
+S: \* 1 FETCH \(BODY\[TEXT\]<10000> \{0\}
+S: \)
+S: A23 OK FETCH completed\.
+C: A24 FETCH 1 (BODY[TEXT]<10000.128>)
+S: \* 1 FETCH \(BODY\[TEXT\]<10000> \{0\}
+S: \)
+S: A24 OK FETCH completed\.
+C: A25 FETCH 1 (BODY[TEXT]<10000.1024>)
+S: \* 1 FETCH \(BODY\[TEXT\]<10000> \{0\}
+S: \)
+S: A25 OK FETCH completed\.
+C: A26 FETCH 1 (BODY[TEXT]<10000.2048>)
+S: \* 1 FETCH \(BODY\[TEXT\]<10000> \{0\}
+S: \)
+S: A26 OK FETCH completed\.
+C: A27 DELETE testmailbox
+S: A27 OK DELETE completed\.
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org