KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > ristretto > imap > parser > IMAPHeaderParserTest


1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * The contents of this file are subject to the Mozilla Public License Version
5  * 1.1 (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS" basis,
10  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11  * for the specific language governing rights and limitations under the
12  * License.
13  *
14  * The Original Code is Ristretto Mail API.
15  *
16  * The Initial Developers of the Original Code are
17  * Timo Stich and Frederik Dietz.
18  * Portions created by the Initial Developers are Copyright (C) 2004
19  * All Rights Reserved.
20  *
21  * Contributor(s):
22  *
23  * Alternatively, the contents of this file may be used under the terms of
24  * either the GNU General Public License Version 2 or later (the "GPL"), or
25  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
26  * in which case the provisions of the GPL or the LGPL are applicable instead
27  * of those above. If you wish to allow use of your version of this file only
28  * under the terms of either the GPL or the LGPL, and not to allow others to
29  * use your version of this file under the terms of the MPL, indicate your
30  * decision by deleting the provisions above and replace them with the notice
31  * and other provisions required by the GPL or the LGPL. If you do not delete
32  * the provisions above, a recipient may use your version of this file under
33  * the terms of any one of the MPL, the GPL or the LGPL.
34  *
35  * ***** END LICENSE BLOCK ***** */

36 package org.columba.ristretto.imap.parser;
37
38 import junit.framework.Assert;
39 import junit.framework.TestCase;
40
41 import org.columba.ristretto.imap.IMAPHeader;
42 import org.columba.ristretto.imap.IMAPResponse;
43 import org.columba.ristretto.io.CharSequenceSource;
44 import org.columba.ristretto.io.Source;
45 import org.columba.ristretto.message.Header;
46
47 /**
48  * @author frd
49  *
50  * To change the template for this generated type comment go to
51  * Window>Preferences>Java>Code Generation>Code and Comments
52  */

53 public class IMAPHeaderParserTest extends TestCase {
54
55     /**
56      * Constructor for HeaderParserTest.
57      * @param arg0
58      */

59     public IMAPHeaderParserTest(String JavaDoc arg0) {
60         super(arg0);
61     }
62
63     // uw-imapd, cyrus-imapd
64
public void testParse() throws Exception JavaDoc {
65         String JavaDoc testData =
66             "* 23 FETCH (UID 24 BODY[HEADER.FIELDS (Subject From To Cc Date Size Message-Id In-Reply-To References Content-Type)] {0}\r\n";
67
68         Source literal = new CharSequenceSource( "Message-ID: <dhrxkxm9.yzodjv3japay@frd>\n"
69                 + "From: frederikdietz@web.de\n"
70                 + "Date: Sat, 05 Jul 03 20:07:03 CEST\n"
71                 + "To: schwutte%deswahnsinns.de@deswahnsinns.de\n"
72                 + "Subject: test-email\n"
73                 + "\n" );
74
75         IMAPResponse r = IMAPResponseParser.parse(testData);
76         r.appendResponseText(")");
77         r.addLiteral( literal );
78
79         IMAPHeader imapHeader =
80             IMAPHeaderParser.parse(r);
81     
82         Header header = imapHeader.getHeader();
83         
84         assertTrue(imapHeader.getUid().intValue() == 24);
85
86         // now test if all headerfields were parsed correctly
87
Assert.assertEquals(
88             header.get("Message-Id"),
89             "<dhrxkxm9.yzodjv3japay@frd>");
90         Assert.assertEquals(header.get("From"), "frederikdietz@web.de");
91         Assert.assertEquals(header.get("Date"), "Sat, 05 Jul 03 20:07:03 CEST");
92         Assert.assertEquals(
93             header.get("To"),
94             "schwutte%deswahnsinns.de@deswahnsinns.de");
95         Assert.assertEquals(header.get("Subject"), "test-email");
96     }
97
98     // this is basically the same message as above
99
// but note that "UID 17" is at the end, instead
100
//
101
// Communigate Pro Server
102
public void testParse2() throws Exception JavaDoc {
103         String JavaDoc testData =
104             "* 23 FETCH (BODY[HEADER.FIELDS (Subject From To Cc Date Size Message-Id In-Reply-To References Content-Type)] {0}\r\n";
105
106         Source literal = new CharSequenceSource( "Message-ID: <dhrxkxm9.yzodjv3japay@frd>\n"
107                 + "From: frederikdietz@web.de\n"
108                 + "Date: Sat, 05 Jul 03 20:07:03 CEST\n"
109                 + "To: schwutte%deswahnsinns.de@deswahnsinns.de\n"
110                 + "Subject: test-email\n"
111                 + "\n" );
112
113         IMAPResponse r = IMAPResponseParser.parse(testData);
114         r.appendResponseText("UID 24)");
115         r.addLiteral( literal );
116
117         IMAPHeader imapHeader =
118             IMAPHeaderParser.parse(r);
119
120         Header header = imapHeader.getHeader();
121         
122         assertTrue(imapHeader.getUid().intValue() == 24 );
123
124         // now test if all headerfields were parsed correctly
125
Assert.assertEquals(
126             header.get("Message-Id"),
127             "<dhrxkxm9.yzodjv3japay@frd>");
128         Assert.assertEquals(header.get("From"), "frederikdietz@web.de");
129         Assert.assertEquals(header.get("Date"), "Sat, 05 Jul 03 20:07:03 CEST");
130         Assert.assertEquals(
131             header.get("To"),
132             "schwutte%deswahnsinns.de@deswahnsinns.de");
133         Assert.assertEquals(header.get("Subject"), "test-email");
134     }
135 }
136
Popular Tags