2009-01-04 09:21:50 -05:00
|
|
|
package davmail.exchange;
|
|
|
|
|
|
|
|
import junit.framework.TestCase;
|
|
|
|
|
|
|
|
import java.io.StringReader;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Test ICSBufferedReader
|
|
|
|
*/
|
|
|
|
public class TestICSBufferedReader extends TestCase {
|
|
|
|
public void testSimpleRead() throws IOException {
|
|
|
|
String value = "test\nmultiline\nstring";
|
|
|
|
ICSBufferedReader reader = new ICSBufferedReader(new StringReader(value));
|
|
|
|
assertEquals("test", reader.readLine());
|
|
|
|
assertEquals("multiline", reader.readLine());
|
|
|
|
assertEquals("string", reader.readLine());
|
|
|
|
assertNull(reader.readLine());
|
|
|
|
}
|
|
|
|
|
|
|
|
public void testContinuationRead() throws IOException {
|
|
|
|
String value = "test\nmultiline\n string";
|
|
|
|
ICSBufferedReader reader = new ICSBufferedReader(new StringReader(value));
|
|
|
|
assertEquals("test", reader.readLine());
|
|
|
|
assertEquals("multilinestring", reader.readLine());
|
|
|
|
assertNull(reader.readLine());
|
|
|
|
}
|
2009-04-29 18:54:05 -04:00
|
|
|
|
|
|
|
public void testEventWithEmptyLine() throws IOException {
|
|
|
|
String value = "BEGIN:VCALENDAR\n" +
|
|
|
|
"CALSCALE:GREGORIAN\n" +
|
|
|
|
"METHOD:REQUEST\n" +
|
|
|
|
"PRODID:Microsoft CDO for Microsoft Exchange\n" +
|
|
|
|
"VERSION:2.0\n" +
|
|
|
|
"BEGIN:VTIMEZONE\n" +
|
|
|
|
"TZID:Africa/Lagos\n" +
|
|
|
|
"X-MICROSOFT-CDO-TZID:69\n" +
|
|
|
|
"BEGIN:STANDARD\n" +
|
|
|
|
"DTSTART:16010101T000000\n" +
|
|
|
|
"TZOFFSETFROM:+0100\n" +
|
|
|
|
"TZOFFSETTO:+0100\n" +
|
|
|
|
"END:STANDARD\n" +
|
|
|
|
"BEGIN:DAYLIGHT\n" +
|
|
|
|
"DTSTART:16010101T000000\n" +
|
|
|
|
"TZOFFSETFROM:+0100\n" +
|
|
|
|
"TZOFFSETTO:+0100\n" +
|
|
|
|
"END:DAYLIGHT\n" +
|
|
|
|
"END:VTIMEZONE\n" +
|
|
|
|
"BEGIN:VEVENT\n" +
|
|
|
|
"DTSTART;TZID=\"Africa/Lagos\":20070326T070000\n" +
|
|
|
|
"DTEND;TZID=\"Africa/Lagos\":20070326T083000\n" +
|
|
|
|
"DTSTAMP:20070217T231150Z\n" +
|
|
|
|
"SUMMARY:My meeting\n" +
|
|
|
|
"CATEGORIES:Groupcal,iCal:user\n" +
|
|
|
|
"UID:com.apple.syncservices:5C1BCD60-8C8E-4FCE-B2CA-C99DE0BE81EB\n" +
|
|
|
|
"RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,FR\n" +
|
|
|
|
"ORGANIZER:MAILTO:user@domain\n" +
|
|
|
|
"\n" +
|
|
|
|
"X-GROUPCAL-ALARM:PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0\n" +
|
|
|
|
"NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElTVCAxLjAvL0VOI\n" +
|
|
|
|
"iAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+CjxwbGlz\n" +
|
|
|
|
"dCB2ZXJzaW9uPSIxLjAiPgo8YXJyYXkvPgo8L3BsaXN0Pgo=\n" +
|
|
|
|
"CLASS:\n" +
|
|
|
|
"STATUS:TENTATIVE\n" +
|
|
|
|
"TRANSP:OPAQUE\n" +
|
|
|
|
"X-MICROSOFT-CDO-BUSYSTATUS:OOF\n" +
|
|
|
|
"X-MICROSOFT-CDO-INSTTYPE:1\n" +
|
|
|
|
"X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\n" +
|
|
|
|
"X-MICROSOFT-CDO-ALLDAYEVENT:FALSE\n" +
|
|
|
|
"X-MICROSOFT-CDO-IMPORTANCE:1\n" +
|
|
|
|
"X-MICROSOFT-CDO-OWNERAPPTID:-1\n" +
|
|
|
|
"END:VEVENT\n" +
|
|
|
|
"END:VCALENDAR";
|
|
|
|
ICSBufferedReader reader = new ICSBufferedReader(new StringReader(value));
|
|
|
|
String line;
|
|
|
|
String lastLine = null;
|
|
|
|
while ((line =reader.readLine())!= null) {
|
|
|
|
lastLine = line;
|
|
|
|
}
|
|
|
|
assertEquals("END:VCALENDAR", lastLine);
|
|
|
|
}
|
2013-05-14 18:39:26 -04:00
|
|
|
|
|
|
|
public void testBrokenAttendee() throws IOException {
|
|
|
|
String itemBody = "BEGIN:VCALENDAR\n" +
|
|
|
|
"BEGIN:VEVENT\n" +
|
|
|
|
"ATTENDEE;CN=\"Daniel " +
|
|
|
|
"William Doe\";PARTSTAT=ACCEPTED;RSVP=TRUE:MAILTO:email@company.com\n" +
|
|
|
|
"END:VEVENT\n" +
|
|
|
|
"END:VCALENDAR";
|
|
|
|
VObject vcalendar = new VCalendar(new ICSBufferedReader(new StringReader(itemBody)), "email@company.com", null);
|
|
|
|
System.out.println(vcalendar);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void testBrokenTask() throws IOException {
|
|
|
|
String value = "BEGIN:VCALENDAR\n" +
|
|
|
|
"BEGIN:VTIMEZONE\n" +
|
|
|
|
"TZID:Central Standard Time\n" +
|
|
|
|
"BEGIN:STANDARD\n" +
|
|
|
|
"DTSTART:16010101T020000\n" +
|
|
|
|
"TZOFFSETFROM:-0500\n" +
|
|
|
|
"TZOFFSETTO:-0600\n" +
|
|
|
|
"RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11\n" +
|
|
|
|
"END:STANDARD\n" +
|
|
|
|
"BEGIN:DAYLIGHT\n" +
|
|
|
|
"DTSTART:16010101T020000\n" +
|
|
|
|
"TZOFFSETFROM:-0600\n" +
|
|
|
|
"TZOFFSETTO:-0500\n" +
|
|
|
|
"RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3\n" +
|
|
|
|
"END:DAYLIGHT\n" +
|
|
|
|
"END:VTIMEZONE\n" +
|
|
|
|
"BEGIN:VTODO\n" +
|
|
|
|
"LAST-MODIFIED:20110606T080802Z\n" +
|
|
|
|
"CREATED:20110527T085302Z\n" +
|
|
|
|
"UID:AAMkADQwOGRjMjIyLTQwNDUtNDE5OS05YWExLWZlOTM5Yjc2NTg0YgBGAAAAAAAi3Ph1JgynT\n" +
|
|
|
|
" ILoGH8BTtfjBwAzPlOmuBONTIJTcNQH4CUkAAAAAACEAABeoDOEjEPERLNIwtCsV4KdAAABv75hA\n" +
|
|
|
|
" AA=\n" +
|
|
|
|
"SUMMARY:Get everyone view the videos\n" +
|
|
|
|
"DESCRIPTION:They are on local dev server. Update on-boarding correspondingly\n" +
|
|
|
|
" \\n\n" +
|
|
|
|
"PERCENT-COMPLETE:100\n" +
|
|
|
|
"STATUS:COMPLETED\n" +
|
|
|
|
"DUE;VALUE=DATE:20110527\n" +
|
|
|
|
"DTSTART;VALUE=DATE:20110527\n" +
|
|
|
|
"COMPLETED;VALUE=DATE:20110605\n" +
|
|
|
|
"END:VTODO\n" +
|
|
|
|
"END:VCALENDAR";
|
|
|
|
ICSBufferedReader reader = new ICSBufferedReader(new StringReader(value));
|
|
|
|
String line;
|
|
|
|
String lastLine = null;
|
|
|
|
while ((line =reader.readLine())!= null) {
|
|
|
|
System.out.println(line);
|
|
|
|
lastLine = line;
|
|
|
|
}
|
|
|
|
assertEquals("END:VCALENDAR", lastLine);
|
|
|
|
new VCalendar(value, null, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void testVCard() throws IOException {
|
|
|
|
String itemBody = "BEGIN:VCARD\n" +
|
|
|
|
"VERSION:3.0\n" +
|
|
|
|
"PRODID:-//Inverse inc.//SOGo Connector 1.0//EN\n" +
|
|
|
|
"UID:C54E78FE-98B0-0001-2339-1D761540DA50\n" +
|
|
|
|
"N:bb;aa\n" +
|
|
|
|
"FN:aa bb\n" +
|
|
|
|
"X-MOZILLA-HTML:FALSE\n" +
|
|
|
|
"REV:20120713T130308Z\n" +
|
|
|
|
"END:VCARD\n" +
|
|
|
|
"\n";
|
|
|
|
VObject vcard = new VObject(new ICSBufferedReader(new StringReader(itemBody)));
|
|
|
|
}
|
2009-01-04 09:21:50 -05:00
|
|
|
}
|