]> git.eshelyaron.com Git - emacs.git/commitdiff
Move test data for icalendar tests to separate files.
authorUlf Jasper <ulf.jasper@web.de>
Thu, 22 Oct 2020 15:45:59 +0000 (17:45 +0200)
committerUlf Jasper <ulf.jasper@web.de>
Thu, 22 Oct 2020 15:45:59 +0000 (17:45 +0200)
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--data-dir, icalendar-tests--get-file-contents):
New.
(icalendar-tests--test-import, icalendar-tests--do-test-import):
Read input and expected results from files.
(icalendar-import-non-recurring, icalendar-import-rrule)
(icalendar-import-duration, icalendar-import-bug-6766)
(icalendar-import-bug-24199, icalendar-import-bug-33277)
(icalendar-import-multiple-vcalendars, icalendar-import-with-uid)
(icalendar-import-with-timezone, icalendar-real-world): Move test
data (input and expected result) to separate files.

* test/calendar/icalendar/*
New files containing test data for icalendar tests.

142 files changed:
test/data/icalendar/import-bug-11473.diary-european [new file with mode: 0644]
test/data/icalendar/import-bug-11473.ics [new file with mode: 0644]
test/data/icalendar/import-bug-22092.diary-american [new file with mode: 0644]
test/data/icalendar/import-bug-22092.diary-european [new file with mode: 0644]
test/data/icalendar/import-bug-22092.diary-iso [new file with mode: 0644]
test/data/icalendar/import-bug-22092.ics [new file with mode: 0644]
test/data/icalendar/import-bug-24199.diary-american [new file with mode: 0644]
test/data/icalendar/import-bug-24199.diary-european [new file with mode: 0644]
test/data/icalendar/import-bug-24199.diary-iso [new file with mode: 0644]
test/data/icalendar/import-bug-24199.ics [new file with mode: 0644]
test/data/icalendar/import-bug-33277.diary-american [new file with mode: 0644]
test/data/icalendar/import-bug-33277.diary-european [new file with mode: 0644]
test/data/icalendar/import-bug-33277.diary-iso [new file with mode: 0644]
test/data/icalendar/import-bug-33277.ics [new file with mode: 0644]
test/data/icalendar/import-bug-6766.diary-american [new file with mode: 0644]
test/data/icalendar/import-bug-6766.diary-european [new file with mode: 0644]
test/data/icalendar/import-bug-6766.diary-iso [new file with mode: 0644]
test/data/icalendar/import-bug-6766.ics [new file with mode: 0644]
test/data/icalendar/import-duration-2.diary-american [new file with mode: 0644]
test/data/icalendar/import-duration-2.diary-european [new file with mode: 0644]
test/data/icalendar/import-duration-2.diary-iso [new file with mode: 0644]
test/data/icalendar/import-duration-2.ics [new file with mode: 0644]
test/data/icalendar/import-duration.diary-american [new file with mode: 0644]
test/data/icalendar/import-duration.diary-european [new file with mode: 0644]
test/data/icalendar/import-duration.diary-iso [new file with mode: 0644]
test/data/icalendar/import-duration.ics [new file with mode: 0644]
test/data/icalendar/import-multiple-vcalendars.diary-american [new file with mode: 0644]
test/data/icalendar/import-multiple-vcalendars.diary-european [new file with mode: 0644]
test/data/icalendar/import-multiple-vcalendars.diary-iso [new file with mode: 0644]
test/data/icalendar/import-multiple-vcalendars.ics [new file with mode: 0644]
test/data/icalendar/import-non-recurring-1.diary-american [new file with mode: 0644]
test/data/icalendar/import-non-recurring-1.diary-european [new file with mode: 0644]
test/data/icalendar/import-non-recurring-1.diary-iso [new file with mode: 0644]
test/data/icalendar/import-non-recurring-1.ics [new file with mode: 0644]
test/data/icalendar/import-non-recurring-all-day.diary-american [new file with mode: 0644]
test/data/icalendar/import-non-recurring-all-day.diary-european [new file with mode: 0644]
test/data/icalendar/import-non-recurring-all-day.diary-iso [new file with mode: 0644]
test/data/icalendar/import-non-recurring-all-day.ics [new file with mode: 0644]
test/data/icalendar/import-non-recurring-another-example.diary-american [new file with mode: 0644]
test/data/icalendar/import-non-recurring-another-example.diary-european [new file with mode: 0644]
test/data/icalendar/import-non-recurring-another-example.diary-iso [new file with mode: 0644]
test/data/icalendar/import-non-recurring-another-example.ics [new file with mode: 0644]
test/data/icalendar/import-non-recurring-block.diary-american [new file with mode: 0644]
test/data/icalendar/import-non-recurring-block.diary-european [new file with mode: 0644]
test/data/icalendar/import-non-recurring-block.diary-iso [new file with mode: 0644]
test/data/icalendar/import-non-recurring-block.ics [new file with mode: 0644]
test/data/icalendar/import-non-recurring-folded-summary.diary-american [new file with mode: 0644]
test/data/icalendar/import-non-recurring-folded-summary.diary-european [new file with mode: 0644]
test/data/icalendar/import-non-recurring-folded-summary.diary-iso [new file with mode: 0644]
test/data/icalendar/import-non-recurring-folded-summary.ics [new file with mode: 0644]
test/data/icalendar/import-non-recurring-long-summary.diary-american [new file with mode: 0644]
test/data/icalendar/import-non-recurring-long-summary.diary-european [new file with mode: 0644]
test/data/icalendar/import-non-recurring-long-summary.diary-iso [new file with mode: 0644]
test/data/icalendar/import-non-recurring-long-summary.ics [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-05-29.diary-american [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-05-29.diary-european [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-05-29.ics [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-06-18a.diary-american [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-06-18a.diary-european [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-06-18a.ics [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-06-18b.diary-american [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-06-18b.diary-european [new file with mode: 0644]
test/data/icalendar/import-real-world-2003-06-18b.ics [new file with mode: 0644]
test/data/icalendar/import-real-world-2004-11-19.diary-american [new file with mode: 0644]
test/data/icalendar/import-real-world-2004-11-19.diary-european [new file with mode: 0644]
test/data/icalendar/import-real-world-2004-11-19.ics [new file with mode: 0644]
test/data/icalendar/import-real-world-2005-02-07.diary-american [new file with mode: 0644]
test/data/icalendar/import-real-world-2005-02-07.diary-european [new file with mode: 0644]
test/data/icalendar/import-real-world-2005-02-07.ics [new file with mode: 0644]
test/data/icalendar/import-real-world-2005-03-01.diary-american [new file with mode: 0644]
test/data/icalendar/import-real-world-2005-03-01.diary-european [new file with mode: 0644]
test/data/icalendar/import-real-world-2005-03-01.ics [new file with mode: 0644]
test/data/icalendar/import-real-world-no-dst.diary-american [new file with mode: 0644]
test/data/icalendar/import-real-world-no-dst.diary-european [new file with mode: 0644]
test/data/icalendar/import-real-world-no-dst.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-anniversary.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-anniversary.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-anniversary.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-anniversary.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-count-bi-weekly.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-count-bi-weekly.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-count-bi-weekly.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-count-bi-weekly.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-long.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-long.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-long.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-long.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-short.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-short.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-short.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-count-daily-short.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-month.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-month.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-month.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-month.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-year.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-year.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-year.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-count-every-second-year.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-count-monthly.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-count-monthly.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-count-monthly.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-count-monthly.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-count-yearly.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-count-yearly.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-count-yearly.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-count-yearly.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-two-day.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-two-day.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-two-day.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-two-day.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-with-exceptions.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-with-exceptions.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-daily-with-exceptions.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-daily.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-daily.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-daily.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-daily.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-no-end.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-no-end.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-no-end.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-no-end.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-with-end.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-with-end.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-with-end.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-monthly-with-end.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-weekly.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-weekly.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-weekly.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-weekly.ics [new file with mode: 0644]
test/data/icalendar/import-rrule-yearly.diary-american [new file with mode: 0644]
test/data/icalendar/import-rrule-yearly.diary-european [new file with mode: 0644]
test/data/icalendar/import-rrule-yearly.diary-iso [new file with mode: 0644]
test/data/icalendar/import-rrule-yearly.ics [new file with mode: 0644]
test/data/icalendar/import-with-timezone.diary-iso [new file with mode: 0644]
test/data/icalendar/import-with-timezone.ics [new file with mode: 0644]
test/data/icalendar/import-with-uid.diary-american [new file with mode: 0644]
test/data/icalendar/import-with-uid.diary-european [new file with mode: 0644]
test/data/icalendar/import-with-uid.diary-iso [new file with mode: 0644]
test/data/icalendar/import-with-uid.ics [new file with mode: 0644]
test/lisp/calendar/icalendar-tests.el

diff --git a/test/data/icalendar/import-bug-11473.diary-european b/test/data/icalendar/import-bug-11473.diary-european
new file mode 100644 (file)
index 0000000..97348ae
--- /dev/null
@@ -0,0 +1,10 @@
+&15/5/2012 15:00-15:30 Query
+ Desc: 
+ Whassup?
+ Location: phone
+ Organizer: MAILTO:a.luser@foo.com
+ Status: CONFIRMED
+ Class: PUBLIC
+ UID: 040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000010000000575268034ECDB649A15349B1BF240F15
diff --git a/test/data/icalendar/import-bug-11473.ics b/test/data/icalendar/import-bug-11473.ics
new file mode 100644 (file)
index 0000000..bc3a6c6
--- /dev/null
@@ -0,0 +1,54 @@
+BEGIN:VCALENDAR
+METHOD:REQUEST
+PRODID:Microsoft Exchange Server 2007
+VERSION:2.0
+BEGIN:VTIMEZONE
+TZID:(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
+BEGIN:STANDARD
+DTSTART:16010101T030000
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T020000
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+ORGANIZER;CN="A. Luser":MAILTO:a.luser@foo.com
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Luser, Oth
+ er":MAILTO:other.luser@foo.com
+DESCRIPTION;LANGUAGE=en-US:\nWhassup?\n\n
+SUMMARY;LANGUAGE=en-US:Query
+DTSTART;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
+ :20120515T150000
+DTEND;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna":2
+ 0120515T153000
+UID:040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000
+ 010000000575268034ECDB649A15349B1BF240F15
+RECURRENCE-ID;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, V
+ ienna":20120515T170000
+CLASS:PUBLIC
+PRIORITY:5
+DTSTAMP:20120514T153645Z
+TRANSP:OPAQUE
+STATUS:CONFIRMED
+SEQUENCE:15
+LOCATION;LANGUAGE=en-US:phone
+X-MICROSOFT-CDO-APPT-SEQUENCE:15
+X-MICROSOFT-CDO-OWNERAPPTID:1907632092
+X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-INSTTYPE:3
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:REMINDER
+TRIGGER;RELATED=START:-PT15M
+END:VALARM
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/data/icalendar/import-bug-22092.diary-american b/test/data/icalendar/import-bug-22092.diary-american
new file mode 100644 (file)
index 0000000..392345f
--- /dev/null
@@ -0,0 +1,6 @@
+&12/8/2014 18:30-22:55 Norwegian til Tromsoe-Langnes - 
+ Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390
+ Location: Stavanger-Sola
+ Organizer: noreply@norwegian.no
+ Class: PUBLIC
+ UID: RFCALITEM1
diff --git a/test/data/icalendar/import-bug-22092.diary-european b/test/data/icalendar/import-bug-22092.diary-european
new file mode 100644 (file)
index 0000000..6a64cf6
--- /dev/null
@@ -0,0 +1,6 @@
+&8/12/2014 18:30-22:55 Norwegian til Tromsoe-Langnes - 
+ Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390
+ Location: Stavanger-Sola
+ Organizer: noreply@norwegian.no
+ Class: PUBLIC
+ UID: RFCALITEM1
diff --git a/test/data/icalendar/import-bug-22092.diary-iso b/test/data/icalendar/import-bug-22092.diary-iso
new file mode 100644 (file)
index 0000000..e0fadbf
--- /dev/null
@@ -0,0 +1,6 @@
+&2014/12/8 18:30-22:55 Norwegian til Tromsoe-Langnes - 
+ Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390
+ Location: Stavanger-Sola
+ Organizer: noreply@norwegian.no
+ Class: PUBLIC
+ UID: RFCALITEM1
diff --git a/test/data/icalendar/import-bug-22092.ics b/test/data/icalendar/import-bug-22092.ics
new file mode 100644 (file)
index 0000000..4a4c679
--- /dev/null
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR\r
+PRODID:-//www.norwegian.no//iCalendar MIMEDIR//EN\r
+VERSION:2.0\r
+METHOD:REQUEST\r
+BEGIN:VEVENT\r
+UID:RFCALITEM1\r
+SEQUENCE:1512040950\r
+DTSTAMP:20141204T095043Z\r
+ORGANIZER:noreply@norwegian.no\r
+DTSTART:20141208T173000Z\r
+
+DTEND:20141208T215500Z\r
+
+LOCATION:Stavanger-Sola\r
+
+DESCRIPTION:Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390\r
+
+X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><html><head><META NAME="Generator" CONTENT="MS Exchange Server version 08.00.0681.000"><title></title></head><body><b><font face="Calibri" size="3">Reisereferanse</p></body></html>
+SUMMARY:Norwegian til Tromsoe-Langnes - \r
+
+CATEGORIES:Appointment\r
+
+
+PRIORITY:5\r
+
+CLASS:PUBLIC\r
+
+TRANSP:OPAQUE\r
+END:VEVENT\r
+END:VCALENDAR
diff --git a/test/data/icalendar/import-bug-24199.diary-american b/test/data/icalendar/import-bug-24199.diary-american
new file mode 100644 (file)
index 0000000..b3308f1
--- /dev/null
@@ -0,0 +1,5 @@
+&%%(and (not (diary-date 1 6 2016)) (not (diary-date 2 3 2016)) (not (diary-date 3 2 2016)) (not (diary-date 5 4 2016)) (not (diary-date 6 1 2016)) (diary-float t 3 1) (diary-block 12 2 2015 1 1 9999)) 12:46-16:00 Summary
+ Desc: Desc
+ Location: Loc
+ Class: DEFAULT
+ UID: 9188710a-08a7-4061-bae3-d4cf4972599a
diff --git a/test/data/icalendar/import-bug-24199.diary-european b/test/data/icalendar/import-bug-24199.diary-european
new file mode 100644 (file)
index 0000000..acba714
--- /dev/null
@@ -0,0 +1,5 @@
+&%%(and (not (diary-date 6 1 2016)) (not (diary-date 3 2 2016)) (not (diary-date 2 3 2016)) (not (diary-date 4 5 2016)) (not (diary-date 1 6 2016)) (diary-float t 3 1) (diary-block 2 12 2015 1 1 9999)) 12:46-16:00 Summary
+ Desc: Desc
+ Location: Loc
+ Class: DEFAULT
+ UID: 9188710a-08a7-4061-bae3-d4cf4972599a
diff --git a/test/data/icalendar/import-bug-24199.diary-iso b/test/data/icalendar/import-bug-24199.diary-iso
new file mode 100644 (file)
index 0000000..2c18395
--- /dev/null
@@ -0,0 +1,5 @@
+&%%(and (not (diary-date 2016 1 6)) (not (diary-date 2016 2 3)) (not (diary-date 2016 3 2)) (not (diary-date 2016 5 4)) (not (diary-date 2016 6 1)) (diary-float t 3 1) (diary-block 2015 12 2 9999 1 1)) 12:46-16:00 Summary
+ Desc: Desc
+ Location: Loc
+ Class: DEFAULT
+ UID: 9188710a-08a7-4061-bae3-d4cf4972599a
diff --git a/test/data/icalendar/import-bug-24199.ics b/test/data/icalendar/import-bug-24199.ics
new file mode 100644 (file)
index 0000000..a307c2d
--- /dev/null
@@ -0,0 +1,25 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:Summary
+DESCRIPTION:Desc
+LOCATION:Loc
+DTSTART:20151202T124600
+DTEND:20151202T160000
+RRULE:FREQ=MONTHLY;BYDAY=1WE;INTERVAL=1
+EXDATE:20160106T114600Z
+EXDATE:20160203T114600Z
+EXDATE:20160302T114600Z
+EXDATE:20160504T104600Z
+EXDATE:20160601T104600Z
+CLASS:DEFAULT
+TRANSP:OPAQUE
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;VALUE=DURATION:-PT3H
+END:VALARM
+LAST-MODIFIED:20160805T191040Z
+UID:9188710a-08a7-4061-bae3-d4cf4972599a
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-bug-33277.diary-american b/test/data/icalendar/import-bug-33277.diary-american
new file mode 100644 (file)
index 0000000..c546fa9
--- /dev/null
@@ -0,0 +1 @@
+&11/5/2018 21:00 event with same start/end time
diff --git a/test/data/icalendar/import-bug-33277.diary-european b/test/data/icalendar/import-bug-33277.diary-european
new file mode 100644 (file)
index 0000000..28e5396
--- /dev/null
@@ -0,0 +1 @@
+&5/11/2018 21:00 event with same start/end time
diff --git a/test/data/icalendar/import-bug-33277.diary-iso b/test/data/icalendar/import-bug-33277.diary-iso
new file mode 100644 (file)
index 0000000..faa7aea
--- /dev/null
@@ -0,0 +1 @@
+&2018/11/5 21:00 event with same start/end time
diff --git a/test/data/icalendar/import-bug-33277.ics b/test/data/icalendar/import-bug-33277.ics
new file mode 100644 (file)
index 0000000..a4122a2
--- /dev/null
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART:20181105T200000Z
+DTSTAMP:20181105T181652Z
+DESCRIPTION:
+LAST-MODIFIED:20181105T181646Z
+LOCATION:
+SEQUENCE:0
+SUMMARY:event with same start/end time
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-bug-6766.diary-american b/test/data/icalendar/import-bug-6766.diary-american
new file mode 100644 (file)
index 0000000..30deea9
--- /dev/null
@@ -0,0 +1,7 @@
+&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 4 21 2010)) 11:30-12:00 Scrum
+ Status: CONFIRMED
+ Class: PUBLIC
+ UID: 8814e3f9-7482-408f-996c-3bfe486a1262
+&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 4 22 2010)) Tues + Thurs thinking
+ Class: PUBLIC
+ UID: 8814e3f9-7482-408f-996c-3bfe486a1263
diff --git a/test/data/icalendar/import-bug-6766.diary-european b/test/data/icalendar/import-bug-6766.diary-european
new file mode 100644 (file)
index 0000000..ba16c02
--- /dev/null
@@ -0,0 +1,7 @@
+&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 21 4 2010)) 11:30-12:00 Scrum
+ Status: CONFIRMED
+ Class: PUBLIC
+ UID: 8814e3f9-7482-408f-996c-3bfe486a1262
+&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 22 4 2010)) Tues + Thurs thinking
+ Class: PUBLIC
+ UID: 8814e3f9-7482-408f-996c-3bfe486a1263
diff --git a/test/data/icalendar/import-bug-6766.diary-iso b/test/data/icalendar/import-bug-6766.diary-iso
new file mode 100644 (file)
index 0000000..7794e58
--- /dev/null
@@ -0,0 +1,7 @@
+&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 2010 4 21)) 11:30-12:00 Scrum
+ Status: CONFIRMED
+ Class: PUBLIC
+ UID: 8814e3f9-7482-408f-996c-3bfe486a1262
+&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 2010 4 22)) Tues + Thurs thinking
+ Class: PUBLIC
+ UID: 8814e3f9-7482-408f-996c-3bfe486a1263
diff --git a/test/data/icalendar/import-bug-6766.ics b/test/data/icalendar/import-bug-6766.ics
new file mode 100644 (file)
index 0000000..451391b
--- /dev/null
@@ -0,0 +1,28 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+CLASS:PUBLIC
+DTEND;TZID=America/New_York:20100421T120000
+DTSTAMP:20100525T141214Z
+DTSTART;TZID=America/New_York:20100421T113000
+RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,TH,FR
+SEQUENCE:1
+STATUS:CONFIRMED
+SUMMARY:Scrum
+TRANSP:OPAQUE
+UID:8814e3f9-7482-408f-996c-3bfe486a1262
+END:VEVENT
+BEGIN:VEVENT
+CLASS:PUBLIC
+DTSTAMP:20100525T141214Z
+DTSTART;VALUE=DATE:20100422
+DTEND;VALUE=DATE:20100423
+RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU,TH
+SEQUENCE:1
+SUMMARY:Tues + Thurs thinking
+TRANSP:OPAQUE
+UID:8814e3f9-7482-408f-996c-3bfe486a1263
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-duration-2.diary-american b/test/data/icalendar/import-duration-2.diary-american
new file mode 100644 (file)
index 0000000..56f41d6
--- /dev/null
@@ -0,0 +1,3 @@
+&%%(and (diary-cyclic 1 12 21 2001) (diary-block 12 21 2001 12 29 2001))  Urlaub
+ Class: PUBLIC
+ UID: 20041127T183329Z-18215-1001-4536-49109@andromeda
diff --git a/test/data/icalendar/import-duration-2.diary-european b/test/data/icalendar/import-duration-2.diary-european
new file mode 100644 (file)
index 0000000..999102a
--- /dev/null
@@ -0,0 +1,3 @@
+&%%(and (diary-cyclic 1 21 12 2001) (diary-block 21 12 2001 29 12 2001))  Urlaub
+ Class: PUBLIC
+ UID: 20041127T183329Z-18215-1001-4536-49109@andromeda
diff --git a/test/data/icalendar/import-duration-2.diary-iso b/test/data/icalendar/import-duration-2.diary-iso
new file mode 100644 (file)
index 0000000..393937e
--- /dev/null
@@ -0,0 +1,3 @@
+&%%(and (diary-cyclic 1 2001 12 21) (diary-block 2001 12 21 2001 12 29))  Urlaub
+ Class: PUBLIC
+ UID: 20041127T183329Z-18215-1001-4536-49109@andromeda
diff --git a/test/data/icalendar/import-duration-2.ics b/test/data/icalendar/import-duration-2.ics
new file mode 100644 (file)
index 0000000..eb8a03b
--- /dev/null
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+UID:20041127T183329Z-18215-1001-4536-49109@andromeda
+DTSTAMP:20041127T183315Z
+LAST-MODIFIED:20041127T183329
+SUMMARY:Urlaub
+DTSTART;VALUE=DATE:20011221
+DTEND;VALUE=DATE:20011221
+RRULE:FREQ=DAILY;UNTIL=20011229;INTERVAL=1;WKST=SU
+CLASS:PUBLIC
+SEQUENCE:1
+CREATED:20041127T183329
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-duration.diary-american b/test/data/icalendar/import-duration.diary-american
new file mode 100644 (file)
index 0000000..268736a
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-block 2 17 2005 2 23 2005)) duration
diff --git a/test/data/icalendar/import-duration.diary-european b/test/data/icalendar/import-duration.diary-european
new file mode 100644 (file)
index 0000000..7d852dd
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-block 17 2 2005 23 2 2005)) duration
diff --git a/test/data/icalendar/import-duration.diary-iso b/test/data/icalendar/import-duration.diary-iso
new file mode 100644 (file)
index 0000000..5d3a714
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-block 2005 2 17 2005 2 23)) duration
diff --git a/test/data/icalendar/import-duration.ics b/test/data/icalendar/import-duration.ics
new file mode 100644 (file)
index 0000000..67f5c73
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20050217
+SUMMARY:duration
+DURATION:P7D
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-american b/test/data/icalendar/import-multiple-vcalendars.diary-american
new file mode 100644 (file)
index 0000000..d1b1992
--- /dev/null
@@ -0,0 +1,4 @@
+&7/23/2011 event-1
+&7/24/2011 event-2
+&7/25/2011 event-3a
+&7/25/2011 event-3b
diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-european b/test/data/icalendar/import-multiple-vcalendars.diary-european
new file mode 100644 (file)
index 0000000..f068354
--- /dev/null
@@ -0,0 +1,4 @@
+&23/7/2011 event-1
+&24/7/2011 event-2
+&25/7/2011 event-3a
+&25/7/2011 event-3b
diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-iso b/test/data/icalendar/import-multiple-vcalendars.diary-iso
new file mode 100644 (file)
index 0000000..5685e47
--- /dev/null
@@ -0,0 +1,4 @@
+&2011/7/23 event-1
+&2011/7/24 event-2
+&2011/7/25 event-3a
+&2011/7/25 event-3b
diff --git a/test/data/icalendar/import-multiple-vcalendars.ics b/test/data/icalendar/import-multiple-vcalendars.ics
new file mode 100644 (file)
index 0000000..69a02c0
--- /dev/null
@@ -0,0 +1,21 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20110723
+SUMMARY:event-1
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20110724
+SUMMARY:event-2
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20110725
+SUMMARY:event-3a
+END:VEVENT
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20110725
+SUMMARY:event-3b
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-non-recurring-1.diary-american b/test/data/icalendar/import-non-recurring-1.diary-american
new file mode 100644 (file)
index 0000000..780e3a8
--- /dev/null
@@ -0,0 +1 @@
+&9/19/2003 09:00-11:30 non-recurring
diff --git a/test/data/icalendar/import-non-recurring-1.diary-european b/test/data/icalendar/import-non-recurring-1.diary-european
new file mode 100644 (file)
index 0000000..7e0cd21
--- /dev/null
@@ -0,0 +1 @@
+&19/9/2003 09:00-11:30 non-recurring
diff --git a/test/data/icalendar/import-non-recurring-1.diary-iso b/test/data/icalendar/import-non-recurring-1.diary-iso
new file mode 100644 (file)
index 0000000..c731128
--- /dev/null
@@ -0,0 +1 @@
+&2003/9/19 09:00-11:30 non-recurring
diff --git a/test/data/icalendar/import-non-recurring-1.ics b/test/data/icalendar/import-non-recurring-1.ics
new file mode 100644 (file)
index 0000000..cd471ef
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:non-recurring
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-american b/test/data/icalendar/import-non-recurring-all-day.diary-american
new file mode 100644 (file)
index 0000000..1d4bb6a
--- /dev/null
@@ -0,0 +1 @@
+&9/19/2003 non-recurring allday
diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-european b/test/data/icalendar/import-non-recurring-all-day.diary-european
new file mode 100644 (file)
index 0000000..b56c7f4
--- /dev/null
@@ -0,0 +1 @@
+&19/9/2003 non-recurring allday
diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-iso b/test/data/icalendar/import-non-recurring-all-day.diary-iso
new file mode 100644 (file)
index 0000000..f1c70ab
--- /dev/null
@@ -0,0 +1 @@
+&2003/9/19 non-recurring allday
diff --git a/test/data/icalendar/import-non-recurring-all-day.ics b/test/data/icalendar/import-non-recurring-all-day.ics
new file mode 100644 (file)
index 0000000..4efa8ff
--- /dev/null
@@ -0,0 +1,9 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:non-recurring allday
+DTSTART;VALUE=DATE-TIME:20030919
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-american b/test/data/icalendar/import-non-recurring-another-example.diary-american
new file mode 100644 (file)
index 0000000..2eb8c0a
--- /dev/null
@@ -0,0 +1,4 @@
+&11/23/2004 14:45-15:45 another example
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 6161a312-3902-11d9-b512-f764153bb28b
diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-european b/test/data/icalendar/import-non-recurring-another-example.diary-european
new file mode 100644 (file)
index 0000000..394eae8
--- /dev/null
@@ -0,0 +1,4 @@
+&23/11/2004 14:45-15:45 another example
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 6161a312-3902-11d9-b512-f764153bb28b
diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-iso b/test/data/icalendar/import-non-recurring-another-example.diary-iso
new file mode 100644 (file)
index 0000000..5e8bdf4
--- /dev/null
@@ -0,0 +1,4 @@
+&2004/11/23 14:45-15:45 another example
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 6161a312-3902-11d9-b512-f764153bb28b
diff --git a/test/data/icalendar/import-non-recurring-another-example.ics b/test/data/icalendar/import-non-recurring-another-example.ics
new file mode 100644 (file)
index 0000000..b145e41
--- /dev/null
@@ -0,0 +1,23 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+UID
+ :6161a312-3902-11d9-b512-f764153bb28b
+SUMMARY
+ :another example
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+DTSTART
+ :20041123T144500
+DTEND
+ :20041123T154500
+DTSTAMP
+ :20041118T013641Z
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-non-recurring-block.diary-american b/test/data/icalendar/import-non-recurring-block.diary-american
new file mode 100644 (file)
index 0000000..b222342
--- /dev/null
@@ -0,0 +1,4 @@
+&%%(and (diary-block 7 19 2004 8 27 2004)) Sommerferien
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
diff --git a/test/data/icalendar/import-non-recurring-block.diary-european b/test/data/icalendar/import-non-recurring-block.diary-european
new file mode 100644 (file)
index 0000000..8043482
--- /dev/null
@@ -0,0 +1,4 @@
+&%%(and (diary-block 19 7 2004 27 8 2004)) Sommerferien
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
diff --git a/test/data/icalendar/import-non-recurring-block.diary-iso b/test/data/icalendar/import-non-recurring-block.diary-iso
new file mode 100644 (file)
index 0000000..e0f1896
--- /dev/null
@@ -0,0 +1,4 @@
+&%%(and (diary-block 2004 7 19 2004 8 27)) Sommerferien
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
diff --git a/test/data/icalendar/import-non-recurring-block.ics b/test/data/icalendar/import-non-recurring-block.ics
new file mode 100644 (file)
index 0000000..0c52ba3
--- /dev/null
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+UID:748f2da0-0d9b-11d8-97af-b4ec8686ea61
+SUMMARY:Sommerferien
+STATUS:TENTATIVE
+CLASS:PRIVATE
+X-MOZILLA-ALARM-DEFAULT-UNITS:Minuten
+X-MOZILLA-RECUR-DEFAULT-INTERVAL:0
+DTSTART;VALUE=DATE:20040719
+DTEND;VALUE=DATE:20040828
+DTSTAMP:20031103T011641Z
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-american b/test/data/icalendar/import-non-recurring-folded-summary.diary-american
new file mode 100644 (file)
index 0000000..2954d0c
--- /dev/null
@@ -0,0 +1,4 @@
+&11/23/2004 14:00-14:30 folded summary
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 04979712-3902-11d9-93dd-8f9f4afe08da
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-european b/test/data/icalendar/import-non-recurring-folded-summary.diary-european
new file mode 100644 (file)
index 0000000..7745fc8
--- /dev/null
@@ -0,0 +1,4 @@
+&23/11/2004 14:00-14:30 folded summary
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 04979712-3902-11d9-93dd-8f9f4afe08da
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-iso b/test/data/icalendar/import-non-recurring-folded-summary.diary-iso
new file mode 100644 (file)
index 0000000..8c19a95
--- /dev/null
@@ -0,0 +1,4 @@
+&2004/11/23 14:00-14:30 folded summary
+ Status: TENTATIVE
+ Class: PRIVATE
+ UID: 04979712-3902-11d9-93dd-8f9f4afe08da
diff --git a/test/data/icalendar/import-non-recurring-folded-summary.ics b/test/data/icalendar/import-non-recurring-folded-summary.ics
new file mode 100644 (file)
index 0000000..e3ecee9
--- /dev/null
@@ -0,0 +1,25 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+UID
+ :04979712-3902-11d9-93dd-8f9f4afe08da
+SUMMARY
+ :folded summary
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+DTSTART
+ :20041123T140000
+DTEND
+ :20041123T143000
+DTSTAMP
+ :20041118T013430Z
+LAST-MODIFIED
+ :20041118T013640Z
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-american b/test/data/icalendar/import-non-recurring-long-summary.diary-american
new file mode 100644 (file)
index 0000000..84cd464
--- /dev/null
@@ -0,0 +1 @@
+&9/19/2003 long summary
diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-european b/test/data/icalendar/import-non-recurring-long-summary.diary-european
new file mode 100644 (file)
index 0000000..5d65242
--- /dev/null
@@ -0,0 +1 @@
+&19/9/2003 long summary
diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-iso b/test/data/icalendar/import-non-recurring-long-summary.diary-iso
new file mode 100644 (file)
index 0000000..d230052
--- /dev/null
@@ -0,0 +1 @@
+&2003/9/19 long summary
diff --git a/test/data/icalendar/import-non-recurring-long-summary.ics b/test/data/icalendar/import-non-recurring-long-summary.ics
new file mode 100644 (file)
index 0000000..39ae02f
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:long 
+ summary
+DTSTART;VALUE=DATE:20030919
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-real-world-2003-05-29.diary-american b/test/data/icalendar/import-real-world-2003-05-29.diary-american
new file mode 100644 (file)
index 0000000..e6c8712
--- /dev/null
@@ -0,0 +1,6 @@
+&5/9/2003 07:00-12:00 On-Site Interview
+ Desc: 10:30am - Blah
+ Location: Cccc
+ Organizer: MAILTO:aaaaaaa@aaaaaaa.com
+ Status: CONFIRMED
+ UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9
diff --git a/test/data/icalendar/import-real-world-2003-05-29.diary-european b/test/data/icalendar/import-real-world-2003-05-29.diary-european
new file mode 100644 (file)
index 0000000..cecca07
--- /dev/null
@@ -0,0 +1,6 @@
+&9/5/2003 07:00-12:00 On-Site Interview
+ Desc: 10:30am - Blah
+ Location: Cccc
+ Organizer: MAILTO:aaaaaaa@aaaaaaa.com
+ Status: CONFIRMED
+ UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9
diff --git a/test/data/icalendar/import-real-world-2003-05-29.ics b/test/data/icalendar/import-real-world-2003-05-29.ics
new file mode 100644 (file)
index 0000000..decc8df
--- /dev/null
@@ -0,0 +1,54 @@
+BEGIN:VCALENDAR
+METHOD:REQUEST
+PRODID:Microsoft CDO for Microsoft Exchange
+VERSION:2.0
+BEGIN:VTIMEZONE
+TZID:Kolkata, Chennai, Mumbai, New Delhi
+X-MICROSOFT-CDO-TZID:23
+BEGIN:STANDARD
+DTSTART:16010101T000000
+TZOFFSETFROM:+0530
+TZOFFSETTO:+0530
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T000000
+TZOFFSETFROM:+0530
+TZOFFSETTO:+0530
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20030509T043439Z
+DTSTART;TZID="Kolkata, Chennai, Mumbai, New Delhi":20030509T103000
+SUMMARY:On-Site Interview
+UID:040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000
+ 010000000DB823520692542408ED02D7023F9DFF9
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Xxxxx
+ xxx Xxxxxxxxxxxx":MAILTO:xxxxxxxx@xxxxxxx.com
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Yyyyyyy Y
+ yyyy":MAILTO:yyyyyyy@yyyyyyy.com
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Zzzz Zzzz
+ zz":MAILTO:zzzzzz@zzzzzzz.com
+ORGANIZER;CN="Aaaaaa Aaaaa":MAILTO:aaaaaaa@aaaaaaa.com
+LOCATION:Cccc
+DTEND;TZID="Kolkata, Chennai, Mumbai, New Delhi":20030509T153000
+DESCRIPTION:10:30am - Blah
+SEQUENCE:0
+PRIORITY:5
+CLASS:
+CREATED:20030509T043439Z
+LAST-MODIFIED:20030509T043459Z
+STATUS:CONFIRMED
+TRANSP:OPAQUE
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-OWNERAPPTID:126441427
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:REMINDER
+TRIGGER;RELATED=START:-PT00H15M00S
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2003-06-18a.diary-american b/test/data/icalendar/import-real-world-2003-06-18a.diary-american
new file mode 100644 (file)
index 0000000..f2c9141
--- /dev/null
@@ -0,0 +1,6 @@
+&6/23/2003 11:00-12:00 Dress Rehearsal for XXXX-XXXX
+ Desc: 753 Zeichen hier radiert
+ Location: 555 or TN 555-5555 ID 5555 & NochWas (see below)
+ Organizer: MAILTO:xxx@xxxxx.com
+ Status: CONFIRMED
+ UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18a.diary-european b/test/data/icalendar/import-real-world-2003-06-18a.diary-european
new file mode 100644 (file)
index 0000000..89cff58
--- /dev/null
@@ -0,0 +1,6 @@
+&23/6/2003 11:00-12:00 Dress Rehearsal for XXXX-XXXX
+ Desc: 753 Zeichen hier radiert
+ Location: 555 or TN 555-5555 ID 5555 & NochWas (see below)
+ Organizer: MAILTO:xxx@xxxxx.com
+ Status: CONFIRMED
+ UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18a.ics b/test/data/icalendar/import-real-world-2003-06-18a.ics
new file mode 100644 (file)
index 0000000..6bb5b05
--- /dev/null
@@ -0,0 +1,36 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20030618T195512Z
+DTSTART;TZID="Mountain Time (US & Canada)":20030623T110000
+SUMMARY:Dress Rehearsal for XXXX-XXXX
+UID:040000008200E00074C5B7101A82E00800000000608AA7DA9835C301000000000000000
+ 0100000007C3A6D65EE726E40B7F3D69A23BD567E
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="AAAAA,AAA
+ AA (A-AAAAAAA,ex1)":MAILTO:aaaaa_aaaaa@aaaaa.com
+ORGANIZER;CN="ABCD,TECHTRAINING
+ (A-Americas,exgen1)":MAILTO:xxx@xxxxx.com
+LOCATION:555 or TN 555-5555 ID 5555 & NochWas (see below)
+DTEND;TZID="Mountain Time (US & Canada)":20030623T120000
+DESCRIPTION:753 Zeichen hier radiert
+SEQUENCE:0
+PRIORITY:5
+CLASS:
+CREATED:20030618T195518Z
+LAST-MODIFIED:20030618T195527Z
+STATUS:CONFIRMED
+TRANSP:OPAQUE
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-OWNERAPPTID:1022519251
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:REMINDER
+TRIGGER;RELATED=START:-PT00H15M00S
+END:VALARM
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2003-06-18b.diary-american b/test/data/icalendar/import-real-world-2003-06-18b.diary-american
new file mode 100644 (file)
index 0000000..2c0774c
--- /dev/null
@@ -0,0 +1,6 @@
+&6/23/2003 17:00-18:00 Updated: Dress Rehearsal for ABC01-15
+ Desc: Viele Zeichen standen hier früher
+ Location: 123 or TN 123-1234 ID abcd & SonstWo (see below)
+ Organizer: MAILTO:bbb@bbbbb.com
+ Status: CONFIRMED
+ UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18b.diary-european b/test/data/icalendar/import-real-world-2003-06-18b.diary-european
new file mode 100644 (file)
index 0000000..95aac16
--- /dev/null
@@ -0,0 +1,6 @@
+&23/6/2003 17:00-18:00 Updated: Dress Rehearsal for ABC01-15
+ Desc: Viele Zeichen standen hier früher
+ Location: 123 or TN 123-1234 ID abcd & SonstWo (see below)
+ Organizer: MAILTO:bbb@bbbbb.com
+ Status: CONFIRMED
+ UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
diff --git a/test/data/icalendar/import-real-world-2003-06-18b.ics b/test/data/icalendar/import-real-world-2003-06-18b.ics
new file mode 100644 (file)
index 0000000..1523135
--- /dev/null
@@ -0,0 +1,55 @@
+BEGIN:VCALENDAR
+METHOD:REQUEST
+PRODID:Microsoft CDO for Microsoft Exchange
+VERSION:2.0
+BEGIN:VTIMEZONE
+TZID:Mountain Time (US & Canada)
+X-MICROSOFT-CDO-TZID:12
+BEGIN:STANDARD
+DTSTART:16010101T020000
+TZOFFSETFROM:-0600
+TZOFFSETTO:-0700
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T020000
+TZOFFSETFROM:-0700
+TZOFFSETTO:-0600
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=4;BYDAY=1SU
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20030618T230323Z
+DTSTART;TZID="Mountain Time (US & Canada)":20030623T090000
+SUMMARY:Updated: Dress Rehearsal for ABC01-15
+UID:040000008200E00074C5B7101A82E00800000000608AA7DA9835C301000000000000000
+ 0100000007C3A6D65EE726E40B7F3D69A23BD567E
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;X-REPLYTIME=20030618T20
+ 0700Z;RSVP=TRUE;CN="AAAAA,AAAAAA
+\(A-AAAAAAA,ex1)":MAILTO:aaaaaa_aaaaa@aaaaa
+ .com
+ORGANIZER;CN="ABCD,TECHTRAINING
+\(A-Americas,exgen1)":MAILTO:bbb@bbbbb.com
+LOCATION:123 or TN 123-1234 ID abcd & SonstWo (see below)
+DTEND;TZID="Mountain Time (US & Canada)":20030623T100000
+DESCRIPTION:Viele Zeichen standen hier früher
+SEQUENCE:0
+PRIORITY:5
+CLASS:
+CREATED:20030618T230326Z
+LAST-MODIFIED:20030618T230335Z
+STATUS:CONFIRMED
+TRANSP:OPAQUE
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-INSTTYPE:0
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-CDO-OWNERAPPTID:1022519251
+BEGIN:VALARM
+ACTION:DISPLAY
+DESCRIPTION:REMINDER
+TRIGGER;RELATED=START:-PT00H15M00S
+END:VALARM
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/data/icalendar/import-real-world-2004-11-19.diary-american b/test/data/icalendar/import-real-world-2004-11-19.diary-american
new file mode 100644 (file)
index 0000000..a986f70
--- /dev/null
@@ -0,0 +1,19 @@
+&11/23/2004 14:00-14:30 Jjjjj & Wwwww
+ Status: TENTATIVE
+ Class: PRIVATE
+&11/23/2004 14:45-15:45 BB Aaaaaaaa Bbbbb
+ Status: TENTATIVE
+ Class: PRIVATE
+&11/23/2004 11:00-12:00 Hhhhhhhh
+ Status: TENTATIVE
+ Class: PRIVATE
+&%%(and (diary-cyclic 14 11 12 2004)) 14:00-18:30 MMM Aaaaaaaaa
+ Status: TENTATIVE
+ Class: PRIVATE
+&%%(and (diary-block 11 19 2004 11 19 2004)) Rrrr/Cccccc ii Aaaaaaaa
+ Desc: Vvvvv Rrrr aaa Cccccc
+ Status: TENTATIVE
+ Class: PRIVATE
+&%%(and (diary-cyclic 7 11 1 2004)) Wwww aa hhhh
+ Status: TENTATIVE
+ Class: PRIVATE
diff --git a/test/data/icalendar/import-real-world-2004-11-19.diary-european b/test/data/icalendar/import-real-world-2004-11-19.diary-european
new file mode 100644 (file)
index 0000000..cbfe99e
--- /dev/null
@@ -0,0 +1,19 @@
+&23/11/2004 14:00-14:30 Jjjjj & Wwwww
+ Status: TENTATIVE
+ Class: PRIVATE
+&23/11/2004 14:45-15:45 BB Aaaaaaaa Bbbbb
+ Status: TENTATIVE
+ Class: PRIVATE
+&23/11/2004 11:00-12:00 Hhhhhhhh
+ Status: TENTATIVE
+ Class: PRIVATE
+&%%(and (diary-cyclic 14 12 11 2004)) 14:00-18:30 MMM Aaaaaaaaa
+ Status: TENTATIVE
+ Class: PRIVATE
+&%%(and (diary-block 19 11 2004 19 11 2004)) Rrrr/Cccccc ii Aaaaaaaa
+ Desc: Vvvvv Rrrr aaa Cccccc
+ Status: TENTATIVE
+ Class: PRIVATE
+&%%(and (diary-cyclic 7 1 11 2004)) Wwww aa hhhh
+ Status: TENTATIVE
+ Class: PRIVATE
diff --git a/test/data/icalendar/import-real-world-2004-11-19.ics b/test/data/icalendar/import-real-world-2004-11-19.ics
new file mode 100644 (file)
index 0000000..9edb682
--- /dev/null
@@ -0,0 +1,120 @@
+BEGIN:VCALENDAR
+VERSION
+ :2.0
+PRODID
+ :-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN
+BEGIN:VEVENT
+SUMMARY
+ :Jjjjj & Wwwww
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+DTSTART
+ :20041123T140000
+DTEND
+ :20041123T143000
+DTSTAMP
+ :20041118T013430Z
+LAST-MODIFIED
+ :20041118T013640Z
+END:VEVENT
+BEGIN:VEVENT
+SUMMARY
+ :BB Aaaaaaaa Bbbbb
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+DTSTART
+ :20041123T144500
+DTEND
+ :20041123T154500
+DTSTAMP
+ :20041118T013641Z
+END:VEVENT
+BEGIN:VEVENT
+SUMMARY
+ :Hhhhhhhh
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+DTSTART
+ :20041123T110000
+DTEND
+ :20041123T120000
+DTSTAMP
+ :20041118T013831Z
+END:VEVENT
+BEGIN:VEVENT
+SUMMARY
+ :MMM Aaaaaaaaa
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+X-MOZILLA-RECUR-DEFAULT-INTERVAL
+ :2
+RRULE
+ :FREQ=WEEKLY;INTERVAL=2;BYDAY=FR
+DTSTART
+ :20041112T140000
+DTEND
+ :20041112T183000
+DTSTAMP
+ :20041118T014117Z
+END:VEVENT
+BEGIN:VEVENT
+SUMMARY
+ :Rrrr/Cccccc ii Aaaaaaaa
+DESCRIPTION
+ :Vvvvv Rrrr aaa Cccccc
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+DTSTART
+ ;VALUE=DATE
+ :20041119
+DTEND
+ ;VALUE=DATE
+ :20041120
+DTSTAMP
+ :20041118T013107Z
+LAST-MODIFIED
+ :20041118T014203Z
+END:VEVENT
+BEGIN:VEVENT
+SUMMARY
+ :Wwww aa hhhh
+STATUS
+ :TENTATIVE
+CLASS
+ :PRIVATE
+X-MOZILLA-ALARM-DEFAULT-LENGTH
+ :0
+RRULE
+ :FREQ=WEEKLY;INTERVAL=1;BYDAY=MO
+DTSTART
+ ;VALUE=DATE
+ :20041101
+DTEND
+ ;VALUE=DATE
+ :20041102
+DTSTAMP
+ :20041118T014045Z
+LAST-MODIFIED
+ :20041118T023846Z
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2005-02-07.diary-american b/test/data/icalendar/import-real-world-2005-02-07.diary-american
new file mode 100644 (file)
index 0000000..ce7d835
--- /dev/null
@@ -0,0 +1,5 @@
+&%%(and (diary-block 2 6 2005 2 6 2005)) Waitangi Day
+ Desc: abcdef
+ Status: CONFIRMED
+ Class: PRIVATE
+ UID: b60d398e-1dd1-11b2-a159-cf8cb05139f4
diff --git a/test/data/icalendar/import-real-world-2005-02-07.diary-european b/test/data/icalendar/import-real-world-2005-02-07.diary-european
new file mode 100644 (file)
index 0000000..3a52b0a
--- /dev/null
@@ -0,0 +1,5 @@
+&%%(and (diary-block 6 2 2005 6 2 2005)) Waitangi Day
+ Desc: abcdef
+ Status: CONFIRMED
+ Class: PRIVATE
+ UID: b60d398e-1dd1-11b2-a159-cf8cb05139f4
diff --git a/test/data/icalendar/import-real-world-2005-02-07.ics b/test/data/icalendar/import-real-world-2005-02-07.ics
new file mode 100644 (file)
index 0000000..9eec71f
--- /dev/null
@@ -0,0 +1,26 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+UID
+ :b60d398e-1dd1-11b2-a159-cf8cb05139f4
+SUMMARY
+ :Waitangi Day
+DESCRIPTION
+ :abcdef
+CATEGORIES
+ :Public Holiday
+STATUS
+ :CONFIRMED
+CLASS
+ :PRIVATE
+DTSTART
+ ;VALUE=DATE
+ :20050206
+DTEND
+ ;VALUE=DATE
+ :20050207
+DTSTAMP
+ :20050128T011209Z
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-2005-03-01.diary-american b/test/data/icalendar/import-real-world-2005-03-01.diary-american
new file mode 100644 (file)
index 0000000..23c93d4
--- /dev/null
@@ -0,0 +1,2 @@
+&%%(and (diary-block 2 17 2005 2 23 2005)) Hhhhhh Aaaaa ii Aaaaaaaa
+ UID: 6AFA7558-6994-11D9-8A3A-000A95A0E830-RID
diff --git a/test/data/icalendar/import-real-world-2005-03-01.diary-european b/test/data/icalendar/import-real-world-2005-03-01.diary-european
new file mode 100644 (file)
index 0000000..106e9f3
--- /dev/null
@@ -0,0 +1,2 @@
+&%%(and (diary-block 17 2 2005 23 2 2005)) Hhhhhh Aaaaa ii Aaaaaaaa
+ UID: 6AFA7558-6994-11D9-8A3A-000A95A0E830-RID
diff --git a/test/data/icalendar/import-real-world-2005-03-01.ics b/test/data/icalendar/import-real-world-2005-03-01.ics
new file mode 100644 (file)
index 0000000..ed9faa9
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20050217
+SUMMARY:Hhhhhh Aaaaa ii Aaaaaaaa
+UID:6AFA7558-6994-11D9-8A3A-000A95A0E830-RID
+DTSTAMP:20050118T210335Z
+DURATION:P7D
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-real-world-no-dst.diary-american b/test/data/icalendar/import-real-world-no-dst.diary-american
new file mode 100644 (file)
index 0000000..290edb8
--- /dev/null
@@ -0,0 +1,4 @@
+&11/16/2014 04:30-05:30 NoDST
+ Desc: Test event from timezone without DST
+ Location: Everywhere
+ UID: 20141116T171439Z-678877132@marudot.com
diff --git a/test/data/icalendar/import-real-world-no-dst.diary-european b/test/data/icalendar/import-real-world-no-dst.diary-european
new file mode 100644 (file)
index 0000000..c56b7a6
--- /dev/null
@@ -0,0 +1,4 @@
+&16/11/2014 04:30-05:30 NoDST
+ Desc: Test event from timezone without DST
+ Location: Everywhere
+ UID: 20141116T171439Z-678877132@marudot.com
diff --git a/test/data/icalendar/import-real-world-no-dst.ics b/test/data/icalendar/import-real-world-no-dst.ics
new file mode 100644 (file)
index 0000000..5f147af
--- /dev/null
@@ -0,0 +1,26 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//www.marudot.com//iCal Event Maker
+X-WR-CALNAME:Test
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Asia/Tehran
+TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Tehran
+X-LIC-LOCATION:Asia/Tehran
+BEGIN:STANDARD
+TZOFFSETFROM:+0330
+TZOFFSETTO:+0330
+TZNAME:IRST
+DTSTART:19700101T000000
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20141116T171439Z
+UID:20141116T171439Z-678877132@marudot.com
+DTSTART;TZID="Asia/Tehran":20141116T070000
+DTEND;TZID="Asia/Tehran":20141116T080000
+SUMMARY:NoDST
+DESCRIPTION:Test event from timezone without DST
+LOCATION:Everywhere
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/data/icalendar/import-rrule-anniversary.diary-american b/test/data/icalendar/import-rrule-anniversary.diary-american
new file mode 100644 (file)
index 0000000..7b86b55
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-anniversary 8 15 2004))  Maria Himmelfahrt
diff --git a/test/data/icalendar/import-rrule-anniversary.diary-european b/test/data/icalendar/import-rrule-anniversary.diary-european
new file mode 100644 (file)
index 0000000..3b82ec0
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-anniversary 15 8 2004))  Maria Himmelfahrt
diff --git a/test/data/icalendar/import-rrule-anniversary.diary-iso b/test/data/icalendar/import-rrule-anniversary.diary-iso
new file mode 100644 (file)
index 0000000..7fc9947
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-anniversary 2004 8 15))  Maria Himmelfahrt
diff --git a/test/data/icalendar/import-rrule-anniversary.ics b/test/data/icalendar/import-rrule-anniversary.ics
new file mode 100644 (file)
index 0000000..2996f49
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART;VALUE=DATE:20040815
+DTEND;VALUE=DATE:20040816
+SUMMARY:Maria Himmelfahrt
+RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=8
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-american b/test/data/icalendar/import-rrule-count-bi-weekly.diary-american
new file mode 100644 (file)
index 0000000..84b6d10
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 14 9 19 2003) (diary-block 9 19 2003 10 31 2003)) 09:00-11:30 rrule count bi-weekly 3 times
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-european b/test/data/icalendar/import-rrule-count-bi-weekly.diary-european
new file mode 100644 (file)
index 0000000..0bebdf8
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 14 19 9 2003) (diary-block 19 9 2003 31 10 2003)) 09:00-11:30 rrule count bi-weekly 3 times
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-iso b/test/data/icalendar/import-rrule-count-bi-weekly.diary-iso
new file mode 100644 (file)
index 0000000..1142908
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 14 2003 9 19) (diary-block 2003 9 19 2003 10 31)) 09:00-11:30 rrule count bi-weekly 3 times
diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.ics b/test/data/icalendar/import-rrule-count-bi-weekly.ics
new file mode 100644 (file)
index 0000000..888b85b
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule count bi-weekly 3 times
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=WEEKLY;COUNT=3;INTERVAL=2
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-american b/test/data/icalendar/import-rrule-count-daily-long.diary-american
new file mode 100644 (file)
index 0000000..23fe9fc
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 9 19 2003) (diary-block 9 19 2003 10 2 2003)) 09:00-11:30 rrule count daily long
diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-european b/test/data/icalendar/import-rrule-count-daily-long.diary-european
new file mode 100644 (file)
index 0000000..0d4ab66
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 19 9 2003) (diary-block 19 9 2003 2 10 2003)) 09:00-11:30 rrule count daily long
diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-iso b/test/data/icalendar/import-rrule-count-daily-long.diary-iso
new file mode 100644 (file)
index 0000000..8cecda5
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 2003 9 19) (diary-block 2003 9 19 2003 10 2)) 09:00-11:30 rrule count daily long
diff --git a/test/data/icalendar/import-rrule-count-daily-long.ics b/test/data/icalendar/import-rrule-count-daily-long.ics
new file mode 100644 (file)
index 0000000..73df19a
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule count daily long
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=DAILY;COUNT=14;INTERVAL=1
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-american b/test/data/icalendar/import-rrule-count-daily-short.diary-american
new file mode 100644 (file)
index 0000000..d69bb08
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 9 19 2003) (diary-block 9 19 2003 9 19 2003)) 09:00-11:30 rrule count daily short
diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-european b/test/data/icalendar/import-rrule-count-daily-short.diary-european
new file mode 100644 (file)
index 0000000..33a1ce4
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 19 9 2003) (diary-block 19 9 2003 19 9 2003)) 09:00-11:30 rrule count daily short
diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-iso b/test/data/icalendar/import-rrule-count-daily-short.diary-iso
new file mode 100644 (file)
index 0000000..a06bcba
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 2003 9 19) (diary-block 2003 9 19 2003 9 19)) 09:00-11:30 rrule count daily short
diff --git a/test/data/icalendar/import-rrule-count-daily-short.ics b/test/data/icalendar/import-rrule-count-daily-short.ics
new file mode 100644 (file)
index 0000000..92ffe8b
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule count daily short
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=DAILY;COUNT=1;INTERVAL=1
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-american b/test/data/icalendar/import-rrule-count-every-second-month.diary-american
new file mode 100644 (file)
index 0000000..4ce8ef8
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t 19 t) (diary-block 9 19 2003 5 19 2004)) 09:00-11:30 rrule count every second month
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-european b/test/data/icalendar/import-rrule-count-every-second-month.diary-european
new file mode 100644 (file)
index 0000000..09ec375
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 5 2004)) 09:00-11:30 rrule count every second month
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-iso b/test/data/icalendar/import-rrule-count-every-second-month.diary-iso
new file mode 100644 (file)
index 0000000..ae6feb7
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t t 19) (diary-block 2003 9 19 2004 5 19)) 09:00-11:30 rrule count every second month
diff --git a/test/data/icalendar/import-rrule-count-every-second-month.ics b/test/data/icalendar/import-rrule-count-every-second-month.ics
new file mode 100644 (file)
index 0000000..3b27b66
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule count every second month
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=5
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-american b/test/data/icalendar/import-rrule-count-every-second-year.diary-american
new file mode 100644 (file)
index 0000000..99543aa
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 9 19 t) (diary-block 9 19 2003 9 19 2011)) 09:00-11:30 rrule count every second year
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-european b/test/data/icalendar/import-rrule-count-every-second-year.diary-european
new file mode 100644 (file)
index 0000000..3b33088
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 19 9 t) (diary-block 19 9 2003 19 9 2011)) 09:00-11:30 rrule count every second year
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-iso b/test/data/icalendar/import-rrule-count-every-second-year.diary-iso
new file mode 100644 (file)
index 0000000..16af52e
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t 9 19) (diary-block 2003 9 19 2011 9 19)) 09:00-11:30 rrule count every second year
diff --git a/test/data/icalendar/import-rrule-count-every-second-year.ics b/test/data/icalendar/import-rrule-count-every-second-year.ics
new file mode 100644 (file)
index 0000000..ce21c34
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule count every second year
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=5
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-american b/test/data/icalendar/import-rrule-count-monthly.diary-american
new file mode 100644 (file)
index 0000000..ad5ca0b
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t 19 t) (diary-block 9 19 2003 1 19 2004)) 09:00-11:30 rrule count monthly
diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-european b/test/data/icalendar/import-rrule-count-monthly.diary-european
new file mode 100644 (file)
index 0000000..709de3a
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 1 2004)) 09:00-11:30 rrule count monthly
diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-iso b/test/data/icalendar/import-rrule-count-monthly.diary-iso
new file mode 100644 (file)
index 0000000..9fc2a2d
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t t 19) (diary-block 2003 9 19 2004 1 19)) 09:00-11:30 rrule count monthly
diff --git a/test/data/icalendar/import-rrule-count-monthly.ics b/test/data/icalendar/import-rrule-count-monthly.ics
new file mode 100644 (file)
index 0000000..3391ca2
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule count monthly
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=MONTHLY;INTERVAL=1;COUNT=5
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-american b/test/data/icalendar/import-rrule-count-yearly.diary-american
new file mode 100644 (file)
index 0000000..8c1f95b
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 9 19 t) (diary-block 9 19 2003 9 19 2007)) 09:00-11:30 rrule count yearly
diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-european b/test/data/icalendar/import-rrule-count-yearly.diary-european
new file mode 100644 (file)
index 0000000..e216e22
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 19 9 t) (diary-block 19 9 2003 19 9 2007)) 09:00-11:30 rrule count yearly
diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-iso b/test/data/icalendar/import-rrule-count-yearly.diary-iso
new file mode 100644 (file)
index 0000000..3801192
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t 9 19) (diary-block 2003 9 19 2007 9 19)) 09:00-11:30 rrule count yearly
diff --git a/test/data/icalendar/import-rrule-count-yearly.ics b/test/data/icalendar/import-rrule-count-yearly.ics
new file mode 100644 (file)
index 0000000..d856993
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule count yearly
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=YEARLY;INTERVAL=1;COUNT=5
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-american b/test/data/icalendar/import-rrule-daily-two-day.diary-american
new file mode 100644 (file)
index 0000000..495fca5
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 2 9 19 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-european b/test/data/icalendar/import-rrule-daily-two-day.diary-european
new file mode 100644 (file)
index 0000000..61db14a
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 2 19 9 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-iso b/test/data/icalendar/import-rrule-daily-two-day.diary-iso
new file mode 100644 (file)
index 0000000..0e0a4b1
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 2 2003 9 19)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily-two-day.ics b/test/data/icalendar/import-rrule-daily-two-day.ics
new file mode 100644 (file)
index 0000000..8c9cb3b
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule daily
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=DAILY;INTERVAL=2
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-american b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-american
new file mode 100644 (file)
index 0000000..83e5f58
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (not (diary-date 9 25 2003)) (not (diary-date 9 21 2003)) (diary-cyclic 2 9 19 2003)) 09:00-11:30 rrule daily with exceptions
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-european b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-european
new file mode 100644 (file)
index 0000000..a3c7fdd
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (not (diary-date 25 9 2003)) (not (diary-date 21 9 2003)) (diary-cyclic 2 19 9 2003)) 09:00-11:30 rrule daily with exceptions
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso b/test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso
new file mode 100644 (file)
index 0000000..88b4c89
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (not (diary-date 2003 9 25)) (not (diary-date 2003 9 21)) (diary-cyclic 2 2003 9 19)) 09:00-11:30 rrule daily with exceptions
diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.ics b/test/data/icalendar/import-rrule-daily-with-exceptions.ics
new file mode 100644 (file)
index 0000000..5284bf4
--- /dev/null
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule daily with exceptions
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=DAILY;INTERVAL=2
+EXDATE:20030921,20030925
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-daily.diary-american b/test/data/icalendar/import-rrule-daily.diary-american
new file mode 100644 (file)
index 0000000..9213270
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 9 19 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily.diary-european b/test/data/icalendar/import-rrule-daily.diary-european
new file mode 100644 (file)
index 0000000..2c70cd7
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 19 9 2003)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily.diary-iso b/test/data/icalendar/import-rrule-daily.diary-iso
new file mode 100644 (file)
index 0000000..b201cb4
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 1 2003 9 19)) 09:00-11:30 rrule daily
diff --git a/test/data/icalendar/import-rrule-daily.ics b/test/data/icalendar/import-rrule-daily.ics
new file mode 100644 (file)
index 0000000..6d013b0
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule daily
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=DAILY;
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-american b/test/data/icalendar/import-rrule-monthly-no-end.diary-american
new file mode 100644 (file)
index 0000000..bc5453f
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t 19 t) (diary-block 9 19 2003 1 1 9999)) 09:00-11:30 rrule monthly no end
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-european b/test/data/icalendar/import-rrule-monthly-no-end.diary-european
new file mode 100644 (file)
index 0000000..f071519
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 19 t t) (diary-block 19 9 2003 1 1 9999)) 09:00-11:30 rrule monthly no end
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-iso b/test/data/icalendar/import-rrule-monthly-no-end.diary-iso
new file mode 100644 (file)
index 0000000..3709e93
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t t 19) (diary-block 2003 9 19 9999 1 1)) 09:00-11:30 rrule monthly no end
diff --git a/test/data/icalendar/import-rrule-monthly-no-end.ics b/test/data/icalendar/import-rrule-monthly-no-end.ics
new file mode 100644 (file)
index 0000000..b871658
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule monthly no end
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=MONTHLY;
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-american b/test/data/icalendar/import-rrule-monthly-with-end.diary-american
new file mode 100644 (file)
index 0000000..638ab8b
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t 19 t) (diary-block 9 19 2003 8 19 2005)) 09:00-11:30 rrule monthly with end
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-european b/test/data/icalendar/import-rrule-monthly-with-end.diary-european
new file mode 100644 (file)
index 0000000..c70cde2
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 8 2005)) 09:00-11:30 rrule monthly with end
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-iso b/test/data/icalendar/import-rrule-monthly-with-end.diary-iso
new file mode 100644 (file)
index 0000000..ee51a21
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-date t t 19) (diary-block 2003 9 19 2005 8 19)) 09:00-11:30 rrule monthly with end
diff --git a/test/data/icalendar/import-rrule-monthly-with-end.ics b/test/data/icalendar/import-rrule-monthly-with-end.ics
new file mode 100644 (file)
index 0000000..d8a1fe2
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule monthly with end
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=MONTHLY;UNTIL=20050819;
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-weekly.diary-american b/test/data/icalendar/import-rrule-weekly.diary-american
new file mode 100644 (file)
index 0000000..d8bf2eb
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 7 9 19 2003)) 09:00-11:30 rrule weekly
diff --git a/test/data/icalendar/import-rrule-weekly.diary-european b/test/data/icalendar/import-rrule-weekly.diary-european
new file mode 100644 (file)
index 0000000..e368fde
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 7 19 9 2003)) 09:00-11:30 rrule weekly
diff --git a/test/data/icalendar/import-rrule-weekly.diary-iso b/test/data/icalendar/import-rrule-weekly.diary-iso
new file mode 100644 (file)
index 0000000..49cd9d8
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-cyclic 7 2003 9 19)) 09:00-11:30 rrule weekly
diff --git a/test/data/icalendar/import-rrule-weekly.ics b/test/data/icalendar/import-rrule-weekly.ics
new file mode 100644 (file)
index 0000000..c3f0b8a
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule weekly
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=WEEKLY;
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-rrule-yearly.diary-american b/test/data/icalendar/import-rrule-yearly.diary-american
new file mode 100644 (file)
index 0000000..a54780b
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-anniversary 9 19 2003)) 09:00-11:30 rrule yearly
diff --git a/test/data/icalendar/import-rrule-yearly.diary-european b/test/data/icalendar/import-rrule-yearly.diary-european
new file mode 100644 (file)
index 0000000..a4bd81d
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-anniversary 19 9 2003)) 09:00-11:30 rrule yearly
diff --git a/test/data/icalendar/import-rrule-yearly.diary-iso b/test/data/icalendar/import-rrule-yearly.diary-iso
new file mode 100644 (file)
index 0000000..65a7abe
--- /dev/null
@@ -0,0 +1 @@
+&%%(and (diary-anniversary 2003 9 19)) 09:00-11:30 rrule yearly
diff --git a/test/data/icalendar/import-rrule-yearly.ics b/test/data/icalendar/import-rrule-yearly.ics
new file mode 100644 (file)
index 0000000..21cca09
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:rrule yearly
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+RRULE:FREQ=YEARLY;INTERVAL=2
+END:VEVENT
+END:VCALENDAR
+
diff --git a/test/data/icalendar/import-with-timezone.diary-iso b/test/data/icalendar/import-with-timezone.diary-iso
new file mode 100644 (file)
index 0000000..f99b592
--- /dev/null
@@ -0,0 +1,2 @@
+&2012/1/15 15:00-15:30 standardtime
+&2012/12/15 11:00-11:30 daylightsavingtime
diff --git a/test/data/icalendar/import-with-timezone.ics b/test/data/icalendar/import-with-timezone.ics
new file mode 100644 (file)
index 0000000..110a983
--- /dev/null
@@ -0,0 +1,27 @@
+BEGIN:VCALENDAR
+BEGIN:VTIMEZONE
+TZID:fictional, nonexistent, arbitrary
+BEGIN:STANDARD
+DTSTART:20100101T000000
+TZOFFSETFROM:+0200
+TZOFFSETTO:-0200
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=01
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20101201T000000
+TZOFFSETFROM:-0200
+TZOFFSETTO:+0200
+RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+SUMMARY:standardtime
+DTSTART;TZID="fictional, nonexistent, arbitrary":20120115T120000
+DTEND;TZID="fictional, nonexistent, arbitrary":20120115T123000
+END:VEVENT
+BEGIN:VEVENT
+SUMMARY:daylightsavingtime
+DTSTART;TZID="fictional, nonexistent, arbitrary":20121215T120000
+DTEND;TZID="fictional, nonexistent, arbitrary":20121215T123000
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/icalendar/import-with-uid.diary-american b/test/data/icalendar/import-with-uid.diary-american
new file mode 100644 (file)
index 0000000..9b2f06a
--- /dev/null
@@ -0,0 +1,2 @@
+&9/19/2003 09:00-11:30 non-recurring
+ UID: 1234567890uid
diff --git a/test/data/icalendar/import-with-uid.diary-european b/test/data/icalendar/import-with-uid.diary-european
new file mode 100644 (file)
index 0000000..95db4d4
--- /dev/null
@@ -0,0 +1,2 @@
+&19/9/2003 09:00-11:30 non-recurring
+ UID: 1234567890uid
diff --git a/test/data/icalendar/import-with-uid.diary-iso b/test/data/icalendar/import-with-uid.diary-iso
new file mode 100644 (file)
index 0000000..d372e5a
--- /dev/null
@@ -0,0 +1,2 @@
+&2003/9/19 09:00-11:30 non-recurring
+ UID: 1234567890uid
diff --git a/test/data/icalendar/import-with-uid.ics b/test/data/icalendar/import-with-uid.ics
new file mode 100644 (file)
index 0000000..db412d9
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN:VCALENDAR
+PRODID:-//Emacs//NONSGML icalendar.el//EN
+VERSION:2.0
+BEGIN:VEVENT
+UID:1234567890uid
+SUMMARY:non-recurring
+DTSTART;VALUE=DATE-TIME:20030919T090000
+DTEND;VALUE=DATE-TIME:20030919T113000
+END:VEVENT
+END:VCALENDAR
index bce7de769e0c024b26729c45c2c27c7f3749c499..5143c78632a5bfaf5cf963e635720ba6750b6f12 100644 (file)
   (replace-regexp-in-string "[ \t\n]+\\'" ""
                             (replace-regexp-in-string "\\`[ \t\n]+" "" string)))
 
+(defconst icalendar-tests--data-dir
+  (expand-file-name "test/data/icalendar" source-directory))
+
+(defun icalendar-tests--get-file-contents (filename)
+  "Return contents of file in test data directory named FILENAME."
+  (with-temp-buffer
+    (let ((f1 (expand-file-name filename icalendar-tests--data-dir))
+          (f2 (expand-file-name filename "../../data/icalendar"))
+          (coding-system-for-read 'raw-text)
+          (inhibit-eol-conversion t))
+      (insert-file-contents-literally
+       (if (file-exists-p f1) f1 f2))
+      (buffer-string))))
+
 ;; ======================================================================
 ;; Tests of functions
 ;; ======================================================================
@@ -963,13 +977,16 @@ END:VALARM
 ;; Import tests
 ;; ======================================================================
 
-(defun icalendar-tests--test-import (input expected-iso expected-european
-                                          expected-american)
+(defun icalendar-tests--test-import (filename expected-iso expected-european
+                                             expected-american)
   "Perform import test.
-Argument INPUT icalendar event string.
-Argument EXPECTED-ISO expected iso style diary string.
-Argument EXPECTED-EUROPEAN expected european style diary string.
-Argument EXPECTED-AMERICAN expected american style diary string.
+Argument FILENAME ics file to import.
+Argument EXPECTED-ISO diary-file containing expected
+iso-calendar-style result.
+Argument EXPECTED-EUROPEAN diary-file containing expected
+european-calendar-style result.
+Argument EXPECTED-AMERICAN diary-file containing expected
+american-calendar-style result.
 During import test the timezone is set to Central European Time."
   (let ((timezone (getenv "TZ")))
     (unwind-protect
@@ -978,14 +995,7 @@ During import test the timezone is set to Central European Time."
          ;; Eg hydra.nixos.org.
          (setenv "TZ" "CET-1CEST,M3.5.0/2,M10.5.0/3")
          (with-temp-buffer
-           (if (string-match "^BEGIN:VCALENDAR" input)
-               (insert input)
-             (insert "BEGIN:VCALENDAR\nPRODID:-//Emacs//NONSGML icalendar.el//EN\n")
-             (insert "VERSION:2.0\nBEGIN:VEVENT\n")
-             (insert input)
-             (unless (eq (char-before) ?\n)
-               (insert "\n"))
-             (insert "END:VEVENT\nEND:VCALENDAR\n"))
+           (insert (icalendar-tests--get-file-contents filename))
            (let ((icalendar-import-format "%s%d%l%o%t%u%c%U")
                  (icalendar-import-format-summary "%s")
                  (icalendar-import-format-location "\n Location: %s")
@@ -998,26 +1008,29 @@ During import test the timezone is set to Central European Time."
                  calendar-date-style)
              (when expected-iso
                (setq calendar-date-style 'iso)
-               (icalendar-tests--do-test-import input expected-iso))
+               (icalendar-tests--do-test-import
+                 (icalendar-tests--get-file-contents expected-iso)))
              (when expected-european
                (setq calendar-date-style 'european)
-               (icalendar-tests--do-test-import input expected-european))
+               (icalendar-tests--do-test-import
+                 (icalendar-tests--get-file-contents expected-european)))
              (when expected-american
                (setq calendar-date-style 'american)
-               (icalendar-tests--do-test-import input expected-american)))))
+               (icalendar-tests--do-test-import
+                 (icalendar-tests--get-file-contents expected-american))))))
       (setenv "TZ" timezone))))
 
-(defun icalendar-tests--do-test-import (_input expected-output)
+(defun icalendar-tests--do-test-import (expected-output)
   "Actually perform import test.
-Argument INPUT input icalendar string.
-Argument EXPECTED-OUTPUT expected diary string."
+Argument EXPECTED-OUTPUT file containing expected diary string."
   (let ((temp-file (make-temp-file "icalendar-test-diary")))
     ;; Test the Catch-the-mysterious-coding-header logic below.
     ;; Ruby-mode adds an after-save-hook which inserts the header!
     ;; (save-excursion
     ;;   (find-file temp-file)
     ;;   (ruby-mode))
-    (icalendar-import-buffer temp-file t t)
+    (let ((coding-system-for-write 'raw-text))
+      (icalendar-import-buffer temp-file t t))
     (save-excursion
       (find-file temp-file)
       ;; Check for the mysterious "# coding: ..." header, remove it
@@ -1045,452 +1058,135 @@ Argument EXPECTED-OUTPUT expected diary string."
 
 (ert-deftest icalendar-import-non-recurring ()
   "Perform standard import tests."
-  (icalendar-tests--test-import
-   "SUMMARY:non-recurring
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000"
-   "&2003/9/19 09:00-11:30 non-recurring\n"
-   "&19/9/2003 09:00-11:30 non-recurring\n"
-   "&9/19/2003 09:00-11:30 non-recurring\n")
-  (icalendar-tests--test-import
-   "SUMMARY:non-recurring allday
-DTSTART;VALUE=DATE-TIME:20030919"
-   "&2003/9/19 non-recurring allday\n"
-   "&19/9/2003 non-recurring allday\n"
-   "&9/19/2003 non-recurring allday\n")
-  (icalendar-tests--test-import
-   ;; Checkdoc removes trailing blanks.  Therefore: format!
-   (format "%s\n%s\n%s" "SUMMARY:long " " summary"
-           "DTSTART;VALUE=DATE:20030919")
-   "&2003/9/19 long summary\n"
-   "&19/9/2003 long summary\n"
-   "&9/19/2003 long summary\n")
-  (icalendar-tests--test-import
-   "UID:748f2da0-0d9b-11d8-97af-b4ec8686ea61
-SUMMARY:Sommerferien
-STATUS:TENTATIVE
-CLASS:PRIVATE
-X-MOZILLA-ALARM-DEFAULT-UNITS:Minuten
-X-MOZILLA-RECUR-DEFAULT-INTERVAL:0
-DTSTART;VALUE=DATE:20040719
-DTEND;VALUE=DATE:20040828
-DTSTAMP:20031103T011641Z
-"
-   "&%%(and (diary-block 2004 7 19 2004 8 27)) Sommerferien
- Status: TENTATIVE
- Class: PRIVATE
- UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
-"
-   "&%%(and (diary-block 19 7 2004 27 8 2004)) Sommerferien
- Status: TENTATIVE
- Class: PRIVATE
- UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
-"
-   "&%%(and (diary-block 7 19 2004 8 27 2004)) Sommerferien
- Status: TENTATIVE
- Class: PRIVATE
- UID: 748f2da0-0d9b-11d8-97af-b4ec8686ea61
-")
-  (icalendar-tests--test-import
-   "UID
- :04979712-3902-11d9-93dd-8f9f4afe08da
-SUMMARY
- :folded summary
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-DTSTART
- :20041123T140000
-DTEND
- :20041123T143000
-DTSTAMP
- :20041118T013430Z
-LAST-MODIFIED
- :20041118T013640Z
-"
-   "&2004/11/23 14:00-14:30 folded summary
- Status: TENTATIVE
- Class: PRIVATE
- UID: 04979712-3902-11d9-93dd-8f9f4afe08da\n"
-   "&23/11/2004 14:00-14:30 folded summary
- Status: TENTATIVE
- Class: PRIVATE
- UID: 04979712-3902-11d9-93dd-8f9f4afe08da\n"
-   "&11/23/2004 14:00-14:30 folded summary
- Status: TENTATIVE
- Class: PRIVATE
- UID: 04979712-3902-11d9-93dd-8f9f4afe08da\n")
-
-  (icalendar-tests--test-import
-   "UID
- :6161a312-3902-11d9-b512-f764153bb28b
-SUMMARY
- :another example
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-DTSTART
- :20041123T144500
-DTEND
- :20041123T154500
-DTSTAMP
- :20041118T013641Z
-"
-   "&2004/11/23 14:45-15:45 another example
- Status: TENTATIVE
- Class: PRIVATE
- UID: 6161a312-3902-11d9-b512-f764153bb28b\n"
-   "&23/11/2004 14:45-15:45 another example
- Status: TENTATIVE
- Class: PRIVATE
- UID: 6161a312-3902-11d9-b512-f764153bb28b\n"
-   "&11/23/2004 14:45-15:45 another example
- Status: TENTATIVE
- Class: PRIVATE
- UID: 6161a312-3902-11d9-b512-f764153bb28b\n"))
+  (icalendar-tests--test-import "import-non-recurring-1.ics"
+                                "import-non-recurring-1.diary-iso"
+                                "import-non-recurring-1.diary-european"
+                                "import-non-recurring-1.diary-american")
+  (icalendar-tests--test-import "import-non-recurring-all-day.ics"
+                                "import-non-recurring-all-day.diary-iso"
+                                "import-non-recurring-all-day.diary-european"
+                                "import-non-recurring-all-day.diary-american")
+  (icalendar-tests--test-import "import-non-recurring-long-summary.ics"
+                                "import-non-recurring-long-summary.diary-iso"
+                                "import-non-recurring-long-summary.diary-european"
+                                "import-non-recurring-long-summary.diary-american")
+  (icalendar-tests--test-import "import-non-recurring-block.ics"
+                                "import-non-recurring-block.diary-iso"
+                                "import-non-recurring-block.diary-european"
+                                "import-non-recurring-block.diary-american")
+  (icalendar-tests--test-import "import-non-recurring-folded-summary.ics"
+                                "import-non-recurring-folded-summary.diary-iso"
+                                "import-non-recurring-folded-summary.diary-european"
+                                "import-non-recurring-folded-summary.diary-american")
+  (icalendar-tests--test-import "import-non-recurring-another-example.ics"
+                                "import-non-recurring-another-example.diary-iso"
+                                "import-non-recurring-another-example.diary-european"
+                                "import-non-recurring-another-example.diary-american"))
+
 
 (ert-deftest icalendar-import-rrule ()
-  (icalendar-tests--test-import
-   "SUMMARY:rrule daily
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=DAILY;
-"
-   "&%%(and (diary-cyclic 1 2003 9 19)) 09:00-11:30 rrule daily\n"
-   "&%%(and (diary-cyclic 1 19 9 2003)) 09:00-11:30 rrule daily\n"
-   "&%%(and (diary-cyclic 1 9 19 2003)) 09:00-11:30 rrule daily\n")
-  ;; RRULE examples
-  (icalendar-tests--test-import
-   "SUMMARY:rrule daily
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=DAILY;INTERVAL=2
-"
-   "&%%(and (diary-cyclic 2 2003 9 19)) 09:00-11:30 rrule daily\n"
-   "&%%(and (diary-cyclic 2 19 9 2003)) 09:00-11:30 rrule daily\n"
-   "&%%(and (diary-cyclic 2 9 19 2003)) 09:00-11:30 rrule daily\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule daily with exceptions
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=DAILY;INTERVAL=2
-EXDATE:20030921,20030925
-"
-   "&%%(and (not (diary-date 2003 9 25)) (not (diary-date 2003 9 21)) (diary-cyclic 2 2003 9 19)) 09:00-11:30 rrule daily with exceptions\n"
-   "&%%(and (not (diary-date 25 9 2003)) (not (diary-date 21 9 2003)) (diary-cyclic 2 19 9 2003)) 09:00-11:30 rrule daily with exceptions\n"
-   "&%%(and (not (diary-date 9 25 2003)) (not (diary-date 9 21 2003)) (diary-cyclic 2 9 19 2003)) 09:00-11:30 rrule daily with exceptions\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule weekly
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=WEEKLY;
-"
-   "&%%(and (diary-cyclic 7 2003 9 19)) 09:00-11:30 rrule weekly\n"
-   "&%%(and (diary-cyclic 7 19 9 2003)) 09:00-11:30 rrule weekly\n"
-   "&%%(and (diary-cyclic 7 9 19 2003)) 09:00-11:30 rrule weekly\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule monthly no end
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=MONTHLY;
-"
-   "&%%(and (diary-date t t 19) (diary-block 2003 9 19 9999 1 1)) 09:00-11:30 rrule monthly no end\n"
-   "&%%(and (diary-date 19 t t) (diary-block 19 9 2003 1 1 9999)) 09:00-11:30 rrule monthly no end\n"
-   "&%%(and (diary-date t 19 t) (diary-block 9 19 2003 1 1 9999)) 09:00-11:30 rrule monthly no end\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule monthly with end
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=MONTHLY;UNTIL=20050819;
-"
-   "&%%(and (diary-date t t 19) (diary-block 2003 9 19 2005 8 19)) 09:00-11:30 rrule monthly with end\n"
-   "&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 8 2005)) 09:00-11:30 rrule monthly with end\n"
-   "&%%(and (diary-date t 19 t) (diary-block 9 19 2003 8 19 2005)) 09:00-11:30 rrule monthly with end\n")
-  (icalendar-tests--test-import
-   "DTSTART;VALUE=DATE:20040815
-DTEND;VALUE=DATE:20040816
-SUMMARY:Maria Himmelfahrt
-RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=8
-"
-   "&%%(and (diary-anniversary 2004 8 15))  Maria Himmelfahrt\n"
-   "&%%(and (diary-anniversary 15 8 2004))  Maria Himmelfahrt\n"
-   "&%%(and (diary-anniversary 8 15 2004))  Maria Himmelfahrt\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule yearly
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=YEARLY;INTERVAL=2
-"
-   "&%%(and (diary-anniversary 2003 9 19)) 09:00-11:30 rrule yearly\n" ;FIXME
-   "&%%(and (diary-anniversary 19 9 2003)) 09:00-11:30 rrule yearly\n" ;FIXME
-   "&%%(and (diary-anniversary 9 19 2003)) 09:00-11:30 rrule yearly\n") ;FIXME
-  (icalendar-tests--test-import
-   "SUMMARY:rrule count daily short
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=DAILY;COUNT=1;INTERVAL=1
-"
-   "&%%(and (diary-cyclic 1 2003 9 19) (diary-block 2003 9 19 2003 9 19)) 09:00-11:30 rrule count daily short\n"
-   "&%%(and (diary-cyclic 1 19 9 2003) (diary-block 19 9 2003 19 9 2003)) 09:00-11:30 rrule count daily short\n"
-   "&%%(and (diary-cyclic 1 9 19 2003) (diary-block 9 19 2003 9 19 2003)) 09:00-11:30 rrule count daily short\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule count daily long
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=DAILY;COUNT=14;INTERVAL=1
-"
-   "&%%(and (diary-cyclic 1 2003 9 19) (diary-block 2003 9 19 2003 10 2)) 09:00-11:30 rrule count daily long\n"
-   "&%%(and (diary-cyclic 1 19 9 2003) (diary-block 19 9 2003 2 10 2003)) 09:00-11:30 rrule count daily long\n"
-   "&%%(and (diary-cyclic 1 9 19 2003) (diary-block 9 19 2003 10 2 2003)) 09:00-11:30 rrule count daily long\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule count bi-weekly 3 times
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=WEEKLY;COUNT=3;INTERVAL=2
-"
-   "&%%(and (diary-cyclic 14 2003 9 19) (diary-block 2003 9 19 2003 10 31)) 09:00-11:30 rrule count bi-weekly 3 times\n"
-   "&%%(and (diary-cyclic 14 19 9 2003) (diary-block 19 9 2003 31 10 2003)) 09:00-11:30 rrule count bi-weekly 3 times\n"
-   "&%%(and (diary-cyclic 14 9 19 2003) (diary-block 9 19 2003 10 31 2003)) 09:00-11:30 rrule count bi-weekly 3 times\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule count monthly
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=MONTHLY;INTERVAL=1;COUNT=5
-"
-   "&%%(and (diary-date t t 19) (diary-block 2003 9 19 2004 1 19)) 09:00-11:30 rrule count monthly\n"
-   "&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 1 2004)) 09:00-11:30 rrule count monthly\n"
-   "&%%(and (diary-date t 19 t) (diary-block 9 19 2003 1 19 2004)) 09:00-11:30 rrule count monthly\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule count every second month
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=5
-"
-   "&%%(and (diary-date t t 19) (diary-block 2003 9 19 2004 5 19)) 09:00-11:30 rrule count every second month\n" ;FIXME
-   "&%%(and (diary-date 19 t t) (diary-block 19 9 2003 19 5 2004)) 09:00-11:30 rrule count every second month\n" ;FIXME
-   "&%%(and (diary-date t 19 t) (diary-block 9 19 2003 5 19 2004)) 09:00-11:30 rrule count every second month\n") ;FIXME
-  (icalendar-tests--test-import
-   "SUMMARY:rrule count yearly
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=YEARLY;INTERVAL=1;COUNT=5
-"
-   "&%%(and (diary-date t 9 19) (diary-block 2003 9 19 2007 9 19)) 09:00-11:30 rrule count yearly\n"
-   "&%%(and (diary-date 19 9 t) (diary-block 19 9 2003 19 9 2007)) 09:00-11:30 rrule count yearly\n"
-   "&%%(and (diary-date 9 19 t) (diary-block 9 19 2003 9 19 2007)) 09:00-11:30 rrule count yearly\n")
-  (icalendar-tests--test-import
-   "SUMMARY:rrule count every second year
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000
-RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=5
-"
-   "&%%(and (diary-date t 9 19) (diary-block 2003 9 19 2011 9 19)) 09:00-11:30 rrule count every second year\n" ;FIXME!!!
-   "&%%(and (diary-date 19 9 t) (diary-block 19 9 2003 19 9 2011)) 09:00-11:30 rrule count every second year\n" ;FIXME!!!
-   "&%%(and (diary-date 9 19 t) (diary-block 9 19 2003 9 19 2011)) 09:00-11:30 rrule count every second year\n") ;FIXME!!!
-)
+  (icalendar-tests--test-import "import-rrule-daily.ics"
+                                "import-rrule-daily.diary-iso"
+                                "import-rrule-daily.diary-european"
+                                "import-rrule-daily.diary-american")
+  (icalendar-tests--test-import "import-rrule-daily-two-day.ics"
+                                "import-rrule-daily-two-day.diary-iso"
+                                "import-rrule-daily-two-day.diary-european"
+                                "import-rrule-daily-two-day.diary-american")
+  (icalendar-tests--test-import "import-rrule-daily-with-exceptions.ics"
+                                "import-rrule-daily-with-exceptions.diary-iso"
+                                "import-rrule-daily-with-exceptions.diary-european"
+                                "import-rrule-daily-with-exceptions.diary-american")
+  (icalendar-tests--test-import "import-rrule-weekly.ics"
+                                "import-rrule-weekly.diary-iso"
+                                "import-rrule-weekly.diary-european"
+                                "import-rrule-weekly.diary-american")
+  (icalendar-tests--test-import "import-rrule-monthly-no-end.ics"
+                                "import-rrule-monthly-no-end.diary-iso"
+                                "import-rrule-monthly-no-end.diary-european"
+                                "import-rrule-monthly-no-end.diary-american")
+  (icalendar-tests--test-import "import-rrule-monthly-with-end.ics"
+                                "import-rrule-monthly-with-end.diary-iso"
+                                "import-rrule-monthly-with-end.diary-european"
+                                "import-rrule-monthly-with-end.diary-american")
+  (icalendar-tests--test-import "import-rrule-anniversary.ics"
+                                "import-rrule-anniversary.diary-iso"
+                                "import-rrule-anniversary.diary-european"
+                                "import-rrule-anniversary.diary-american")
+  (icalendar-tests--test-import "import-rrule-yearly.ics"
+                                "import-rrule-yearly.diary-iso"
+                                "import-rrule-yearly.diary-european"
+                                "import-rrule-yearly.diary-american")
+  (icalendar-tests--test-import "import-rrule-count-daily-short.ics"
+                                "import-rrule-count-daily-short.diary-iso"
+                                "import-rrule-count-daily-short.diary-european"
+                                "import-rrule-count-daily-short.diary-american")
+  (icalendar-tests--test-import "import-rrule-count-daily-long.ics"
+                                "import-rrule-count-daily-long.diary-iso"
+                                "import-rrule-count-daily-long.diary-european"
+                                "import-rrule-count-daily-long.diary-american")
+  (icalendar-tests--test-import "import-rrule-count-monthly.ics"
+                                "import-rrule-count-monthly.diary-iso"
+                                "import-rrule-count-monthly.diary-european"
+                                "import-rrule-count-monthly.diary-american")
+  (icalendar-tests--test-import "import-rrule-count-every-second-month.ics"
+                                "import-rrule-count-every-second-month.diary-iso"
+                                "import-rrule-count-every-second-month.diary-european"
+                                "import-rrule-count-every-second-month.diary-american")
+  (icalendar-tests--test-import "import-rrule-count-yearly.ics"
+                                "import-rrule-count-yearly.diary-iso"
+                                "import-rrule-count-yearly.diary-european"
+                                "import-rrule-count-yearly.diary-american")
+  (icalendar-tests--test-import "import-rrule-count-every-second-year.ics"
+                                "import-rrule-count-every-second-year.diary-iso"
+                                "import-rrule-count-every-second-year.diary-european"
+                                "import-rrule-count-every-second-year.diary-american")
+  )
 
 (ert-deftest icalendar-import-duration ()
-  ;; duration
-  (icalendar-tests--test-import
-   "DTSTART;VALUE=DATE:20050217
-SUMMARY:duration
-DURATION:P7D
-"
-   "&%%(and (diary-block 2005 2 17 2005 2 23)) duration\n"
-   "&%%(and (diary-block 17 2 2005 23 2 2005)) duration\n"
-   "&%%(and (diary-block 2 17 2005 2 23 2005)) duration\n")
-  (icalendar-tests--test-import
-   "UID:20041127T183329Z-18215-1001-4536-49109@andromeda
-DTSTAMP:20041127T183315Z
-LAST-MODIFIED:20041127T183329
-SUMMARY:Urlaub
-DTSTART;VALUE=DATE:20011221
-DTEND;VALUE=DATE:20011221
-RRULE:FREQ=DAILY;UNTIL=20011229;INTERVAL=1;WKST=SU
-CLASS:PUBLIC
-SEQUENCE:1
-CREATED:20041127T183329
-"
-   "&%%(and (diary-cyclic 1 2001 12 21) (diary-block 2001 12 21 2001 12 29))  Urlaub
- Class: PUBLIC
- UID: 20041127T183329Z-18215-1001-4536-49109@andromeda\n"
-   "&%%(and (diary-cyclic 1 21 12 2001) (diary-block 21 12 2001 29 12 2001))  Urlaub
- Class: PUBLIC
- UID: 20041127T183329Z-18215-1001-4536-49109@andromeda\n"
-   "&%%(and (diary-cyclic 1 12 21 2001) (diary-block 12 21 2001 12 29 2001))  Urlaub
- Class: PUBLIC
- UID: 20041127T183329Z-18215-1001-4536-49109@andromeda\n"))
+  (icalendar-tests--test-import "import-duration.ics"
+                                "import-duration.diary-iso"
+                                "import-duration.diary-european"
+                                "import-duration.diary-american")
+  ;; duration-2: this is actually an rrule test
+  (icalendar-tests--test-import "import-duration-2.ics"
+                                "import-duration-2.diary-iso"
+                                "import-duration-2.diary-european"
+                                "import-duration-2.diary-american"))
 
 (ert-deftest icalendar-import-bug-6766 ()
   ;;bug#6766 -- multiple byday values in a weekly rrule
-  (icalendar-tests--test-import
-"CLASS:PUBLIC
-DTEND;TZID=America/New_York:20100421T120000
-DTSTAMP:20100525T141214Z
-DTSTART;TZID=America/New_York:20100421T113000
-RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,TH,FR
-SEQUENCE:1
-STATUS:CONFIRMED
-SUMMARY:Scrum
-TRANSP:OPAQUE
-UID:8814e3f9-7482-408f-996c-3bfe486a1262
-END:VEVENT
-BEGIN:VEVENT
-CLASS:PUBLIC
-DTSTAMP:20100525T141214Z
-DTSTART;VALUE=DATE:20100422
-DTEND;VALUE=DATE:20100423
-RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU,TH
-SEQUENCE:1
-SUMMARY:Tues + Thurs thinking
-TRANSP:OPAQUE
-UID:8814e3f9-7482-408f-996c-3bfe486a1263
-"
-"&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 2010 4 21)) 11:30-12:00 Scrum
- Status: CONFIRMED
- Class: PUBLIC
- UID: 8814e3f9-7482-408f-996c-3bfe486a1262
-&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 2010 4 22)) Tues + Thurs thinking
- Class: PUBLIC
- UID: 8814e3f9-7482-408f-996c-3bfe486a1263
-"
-"&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 21 4 2010)) 11:30-12:00 Scrum
- Status: CONFIRMED
- Class: PUBLIC
- UID: 8814e3f9-7482-408f-996c-3bfe486a1262
-&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 22 4 2010)) Tues + Thurs thinking
- Class: PUBLIC
- UID: 8814e3f9-7482-408f-996c-3bfe486a1263
-"
-"&%%(and (memq (calendar-day-of-week date) '(1 3 4 5)) (diary-cyclic 1 4 21 2010)) 11:30-12:00 Scrum
- Status: CONFIRMED
- Class: PUBLIC
- UID: 8814e3f9-7482-408f-996c-3bfe486a1262
-&%%(and (memq (calendar-day-of-week date) '(2 4)) (diary-cyclic 1 4 22 2010)) Tues + Thurs thinking
- Class: PUBLIC
- UID: 8814e3f9-7482-408f-996c-3bfe486a1263
-"))
+  (icalendar-tests--test-import "import-bug-6766.ics"
+                                "import-bug-6766.diary-iso"
+                                "import-bug-6766.diary-european"
+                                "import-bug-6766.diary-american"))
 
 (ert-deftest icalendar-import-bug-24199 ()
   ;;bug#24199 -- monthly rule with byday-clause
-  (icalendar-tests--test-import
-"
-SUMMARY:Summary
-DESCRIPTION:Desc
-LOCATION:Loc
-DTSTART:20151202T124600
-DTEND:20151202T160000
-RRULE:FREQ=MONTHLY;BYDAY=1WE;INTERVAL=1
-EXDATE:20160106T114600Z
-EXDATE:20160203T114600Z
-EXDATE:20160302T114600Z
-EXDATE:20160504T104600Z
-EXDATE:20160601T104600Z
-CLASS:DEFAULT
-TRANSP:OPAQUE
-BEGIN:VALARM
-ACTION:DISPLAY
-TRIGGER;VALUE=DURATION:-PT3H
-END:VALARM
-LAST-MODIFIED:20160805T191040Z
-UID:9188710a-08a7-4061-bae3-d4cf4972599a
-"
-"&%%(and (not (diary-date 2016 1 6)) (not (diary-date 2016 2 3)) (not (diary-date 2016 3 2)) (not (diary-date 2016 5 4)) (not (diary-date 2016 6 1)) (diary-float t 3 1) (diary-block 2015 12 2 9999 1 1)) 12:46-16:00 Summary
- Desc: Desc
- Location: Loc
- Class: DEFAULT
- UID: 9188710a-08a7-4061-bae3-d4cf4972599a
-"
-"&%%(and (not (diary-date 6 1 2016)) (not (diary-date 3 2 2016)) (not (diary-date 2 3 2016)) (not (diary-date 4 5 2016)) (not (diary-date 1 6 2016)) (diary-float t 3 1) (diary-block 2 12 2015 1 1 9999)) 12:46-16:00 Summary
- Desc: Desc
- Location: Loc
- Class: DEFAULT
- UID: 9188710a-08a7-4061-bae3-d4cf4972599a
-"
-"&%%(and (not (diary-date 1 6 2016)) (not (diary-date 2 3 2016)) (not (diary-date 3 2 2016)) (not (diary-date 5 4 2016)) (not (diary-date 6 1 2016)) (diary-float t 3 1) (diary-block 12 2 2015 1 1 9999)) 12:46-16:00 Summary
- Desc: Desc
- Location: Loc
- Class: DEFAULT
- UID: 9188710a-08a7-4061-bae3-d4cf4972599a
-"
-))
+  (icalendar-tests--test-import "import-bug-24199.ics"
+                                "import-bug-24199.diary-iso"
+                                "import-bug-24199.diary-european"
+                                "import-bug-24199.diary-american"))
 
 (ert-deftest icalendar-import-bug-33277 ()
   ;;bug#33277 -- start time equals end time
-  (icalendar-tests--test-import
-   "DTSTART:20181105T200000Z
-DTSTAMP:20181105T181652Z
-DESCRIPTION:
-LAST-MODIFIED:20181105T181646Z
-LOCATION:
-SEQUENCE:0
-SUMMARY:event with same start/end time
-TRANSP:OPAQUE
-"
-
-   "&2018/11/5 21:00 event with same start/end time\n"
-   "&5/11/2018 21:00 event with same start/end time\n"
-   "&11/5/2018 21:00 event with same start/end time\n"
-   ))
+  (icalendar-tests--test-import "import-bug-33277.ics"
+                                "import-bug-33277.diary-iso"
+                                "import-bug-33277.diary-european"
+                                "import-bug-33277.diary-american"))
 
 (ert-deftest icalendar-import-multiple-vcalendars ()
-  (icalendar-tests--test-import
-   "DTSTART;VALUE=DATE:20110723
-SUMMARY:event-1
-"
-   "&2011/7/23 event-1\n"
-   "&23/7/2011 event-1\n"
-   "&7/23/2011 event-1\n")
-
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR
-PRODID:-//Emacs//NONSGML icalendar.el//EN
-VERSION:2.0\nBEGIN:VEVENT
-DTSTART;VALUE=DATE:20110723
-SUMMARY:event-1
-END:VEVENT
-END:VCALENDAR
-BEGIN:VCALENDAR
-PRODID:-//Emacs//NONSGML icalendar.el//EN
-VERSION:2.0
-BEGIN:VEVENT
-DTSTART;VALUE=DATE:20110724
-SUMMARY:event-2
-END:VEVENT
-END:VCALENDAR
-BEGIN:VCALENDAR
-PRODID:-//Emacs//NONSGML icalendar.el//EN
-VERSION:2.0
-BEGIN:VEVENT
-DTSTART;VALUE=DATE:20110725
-SUMMARY:event-3a
-END:VEVENT
-BEGIN:VEVENT
-DTSTART;VALUE=DATE:20110725
-SUMMARY:event-3b
-END:VEVENT
-END:VCALENDAR
-"
-   "&2011/7/23 event-1\n&2011/7/24 event-2\n&2011/7/25 event-3a\n&2011/7/25 event-3b\n"
-   "&23/7/2011 event-1\n&24/7/2011 event-2\n&25/7/2011 event-3a\n&25/7/2011 event-3b\n"
-   "&7/23/2011 event-1\n&7/24/2011 event-2\n&7/25/2011 event-3a\n&7/25/2011 event-3b\n"))
+  (icalendar-tests--test-import "import-multiple-vcalendars.ics"
+                                "import-multiple-vcalendars.diary-iso"
+                                "import-multiple-vcalendars.diary-european"
+                                "import-multiple-vcalendars.diary-american"))
 
 (ert-deftest icalendar-import-with-uid ()
   "Perform import test with uid."
-  (icalendar-tests--test-import
-   "UID:1234567890uid
-SUMMARY:non-recurring
-DTSTART;VALUE=DATE-TIME:20030919T090000
-DTEND;VALUE=DATE-TIME:20030919T113000"
-   "&2003/9/19 09:00-11:30 non-recurring\n UID: 1234567890uid\n"
-   "&19/9/2003 09:00-11:30 non-recurring\n UID: 1234567890uid\n"
-   "&9/19/2003 09:00-11:30 non-recurring\n UID: 1234567890uid\n"))
+  (icalendar-tests--test-import "import-with-uid.ics"
+                                "import-with-uid.diary-iso"
+                                "import-with-uid.diary-european"
+                                "import-with-uid.diary-american"))
 
 (ert-deftest icalendar-import-with-timezone ()
   ;; This is known to fail on MS-Windows, because the test assumes
@@ -1499,42 +1195,13 @@ DTEND;VALUE=DATE-TIME:20030919T113000"
                        :failed
                      :passed)
   ;; bug#11473
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR
-BEGIN:VTIMEZONE
-TZID:fictional, nonexistent, arbitrary
-BEGIN:STANDARD
-DTSTART:20100101T000000
-TZOFFSETFROM:+0200
-TZOFFSETTO:-0200
-RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=01
-END:STANDARD
-BEGIN:DAYLIGHT
-DTSTART:20101201T000000
-TZOFFSETFROM:-0200
-TZOFFSETTO:+0200
-RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
-END:DAYLIGHT
-END:VTIMEZONE
-BEGIN:VEVENT
-SUMMARY:standardtime
-DTSTART;TZID=\"fictional, nonexistent, arbitrary\":20120115T120000
-DTEND;TZID=\"fictional, nonexistent, arbitrary\":20120115T123000
-END:VEVENT
-BEGIN:VEVENT
-SUMMARY:daylightsavingtime
-DTSTART;TZID=\"fictional, nonexistent, arbitrary\":20121215T120000
-DTEND;TZID=\"fictional, nonexistent, arbitrary\":20121215T123000
-END:VEVENT
-END:VCALENDAR"
-   ;; "standardtime" begins first sunday in january and is 4 hours behind CET
-   ;; "daylightsavingtime" begins first sunday in november and is 1 hour before CET
-   "&2012/1/15 15:00-15:30 standardtime
-&2012/12/15 11:00-11:30 daylightsavingtime
-"
-   nil
-   nil)
-  )
+  ;; "standardtime" begins first sunday in january and is 4 hours behind CET
+  ;; "daylightsavingtime" begins first sunday in november and is 1 hour before CET
+  (icalendar-tests--test-import "import-with-timezone.ics"
+                                "import-with-timezone.diary-iso"
+                                nil
+                                nil))
+
 ;; ======================================================================
 ;; Cycle
 ;; ======================================================================
@@ -1632,237 +1299,27 @@ SUMMARY:and diary-anniversary
                        :failed
                      :passed)
   ;; 2003-05-29
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR
-METHOD:REQUEST
-PRODID:Microsoft CDO for Microsoft Exchange
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:Kolkata, Chennai, Mumbai, New Delhi
-X-MICROSOFT-CDO-TZID:23
-BEGIN:STANDARD
-DTSTART:16010101T000000
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0530
-END:STANDARD
-BEGIN:DAYLIGHT
-DTSTART:16010101T000000
-TZOFFSETFROM:+0530
-TZOFFSETTO:+0530
-END:DAYLIGHT
-END:VTIMEZONE
-BEGIN:VEVENT
-DTSTAMP:20030509T043439Z
-DTSTART;TZID=\"Kolkata, Chennai, Mumbai, New Delhi\":20030509T103000
-SUMMARY:On-Site Interview
-UID:040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000
- 010000000DB823520692542408ED02D7023F9DFF9
-ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"Xxxxx
- xxx Xxxxxxxxxxxx\":MAILTO:xxxxxxxx@xxxxxxx.com
-ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"Yyyyyyy Y
- yyyy\":MAILTO:yyyyyyy@yyyyyyy.com
-ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"Zzzz Zzzz
- zz\":MAILTO:zzzzzz@zzzzzzz.com
-ORGANIZER;CN=\"Aaaaaa Aaaaa\":MAILTO:aaaaaaa@aaaaaaa.com
-LOCATION:Cccc
-DTEND;TZID=\"Kolkata, Chennai, Mumbai, New Delhi\":20030509T153000
-DESCRIPTION:10:30am - Blah
-SEQUENCE:0
-PRIORITY:5
-CLASS:
-CREATED:20030509T043439Z
-LAST-MODIFIED:20030509T043459Z
-STATUS:CONFIRMED
-TRANSP:OPAQUE
-X-MICROSOFT-CDO-BUSYSTATUS:BUSY
-X-MICROSOFT-CDO-INSTTYPE:0
-X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
-X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
-X-MICROSOFT-CDO-IMPORTANCE:1
-X-MICROSOFT-CDO-OWNERAPPTID:126441427
-BEGIN:VALARM
-ACTION:DISPLAY
-DESCRIPTION:REMINDER
-TRIGGER;RELATED=START:-PT00H15M00S
-END:VALARM
-END:VEVENT
-END:VCALENDAR"
-   nil
-   "&9/5/2003 07:00-12:00 On-Site Interview
- Desc: 10:30am - Blah
- Location: Cccc
- Organizer: MAILTO:aaaaaaa@aaaaaaa.com
- Status: CONFIRMED
- UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9
-"
-   "&5/9/2003 07:00-12:00 On-Site Interview
- Desc: 10:30am - Blah
- Location: Cccc
- Organizer: MAILTO:aaaaaaa@aaaaaaa.com
- Status: CONFIRMED
- UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9
-")
+  (icalendar-tests--test-import "import-real-world-2003-05-29.ics"
+                                nil
+                                "import-real-world-2003-05-29.diary-european"
+                                "import-real-world-2003-05-29.diary-american")
 
   ;; created with http://apps.marudot.com/ical/
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//www.marudot.com//iCal Event Maker
-X-WR-CALNAME:Test
-CALSCALE:GREGORIAN
-BEGIN:VTIMEZONE
-TZID:Asia/Tehran
-TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Tehran
-X-LIC-LOCATION:Asia/Tehran
-BEGIN:STANDARD
-TZOFFSETFROM:+0330
-TZOFFSETTO:+0330
-TZNAME:IRST
-DTSTART:19700101T000000
-END:STANDARD
-END:VTIMEZONE
-BEGIN:VEVENT
-DTSTAMP:20141116T171439Z
-UID:20141116T171439Z-678877132@marudot.com
-DTSTART;TZID=\"Asia/Tehran\":20141116T070000
-DTEND;TZID=\"Asia/Tehran\":20141116T080000
-SUMMARY:NoDST
-DESCRIPTION:Test event from timezone without DST
-LOCATION:Everywhere
-END:VEVENT
-END:VCALENDAR"
-   nil
-   "&16/11/2014 04:30-05:30 NoDST
- Desc: Test event from timezone without DST
- Location: Everywhere
- UID: 20141116T171439Z-678877132@marudot.com
-"
-   "&11/16/2014 04:30-05:30 NoDST
- Desc: Test event from timezone without DST
- Location: Everywhere
- UID: 20141116T171439Z-678877132@marudot.com
-")
-
+  (icalendar-tests--test-import "import-real-world-no-dst.ics"
+                                nil
+                                "import-real-world-no-dst.diary-european"
+                                "import-real-world-no-dst.diary-american")
 
   ;; 2003-06-18 a
-  (icalendar-tests--test-import
-   "DTSTAMP:20030618T195512Z
-DTSTART;TZID=\"Mountain Time (US & Canada)\":20030623T110000
-SUMMARY:Dress Rehearsal for XXXX-XXXX
-UID:040000008200E00074C5B7101A82E00800000000608AA7DA9835C301000000000000000
- 0100000007C3A6D65EE726E40B7F3D69A23BD567E
-ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"AAAAA,AAA
- AA (A-AAAAAAA,ex1)\":MAILTO:aaaaa_aaaaa@aaaaa.com
-ORGANIZER;CN=\"ABCD,TECHTRAINING
- (A-Americas,exgen1)\":MAILTO:xxx@xxxxx.com
-LOCATION:555 or TN 555-5555 ID 5555 & NochWas (see below)
-DTEND;TZID=\"Mountain Time (US & Canada)\":20030623T120000
-DESCRIPTION:753 Zeichen hier radiert
-SEQUENCE:0
-PRIORITY:5
-CLASS:
-CREATED:20030618T195518Z
-LAST-MODIFIED:20030618T195527Z
-STATUS:CONFIRMED
-TRANSP:OPAQUE
-X-MICROSOFT-CDO-BUSYSTATUS:BUSY
-X-MICROSOFT-CDO-INSTTYPE:0
-X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
-X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
-X-MICROSOFT-CDO-IMPORTANCE:1
-X-MICROSOFT-CDO-OWNERAPPTID:1022519251
-BEGIN:VALARM
-ACTION:DISPLAY
-DESCRIPTION:REMINDER
-TRIGGER;RELATED=START:-PT00H15M00S
-END:VALARM"
-   nil
-   "&23/6/2003 11:00-12:00 Dress Rehearsal for XXXX-XXXX
- Desc: 753 Zeichen hier radiert
- Location: 555 or TN 555-5555 ID 5555 & NochWas (see below)
- Organizer: MAILTO:xxx@xxxxx.com
- Status: CONFIRMED
- UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
-"
-   "&6/23/2003 11:00-12:00 Dress Rehearsal for XXXX-XXXX
- Desc: 753 Zeichen hier radiert
- Location: 555 or TN 555-5555 ID 5555 & NochWas (see below)
- Organizer: MAILTO:xxx@xxxxx.com
- Status: CONFIRMED
- UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
-")
+  (icalendar-tests--test-import "import-real-world-2003-06-18a.ics"
+                                nil
+                                "import-real-world-2003-06-18a.diary-european"
+                                "import-real-world-2003-06-18a.diary-american")
   ;; 2003-06-18 b -- uses timezone
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR
-METHOD:REQUEST
-PRODID:Microsoft CDO for Microsoft Exchange
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:Mountain Time (US & Canada)
-X-MICROSOFT-CDO-TZID:12
-BEGIN:STANDARD
-DTSTART:16010101T020000
-TZOFFSETFROM:-0600
-TZOFFSETTO:-0700
-RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-DTSTART:16010101T020000
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0600
-RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-END:VTIMEZONE
-BEGIN:VEVENT
-DTSTAMP:20030618T230323Z
-DTSTART;TZID=\"Mountain Time (US & Canada)\":20030623T090000
-SUMMARY:Updated: Dress Rehearsal for ABC01-15
-UID:040000008200E00074C5B7101A82E00800000000608AA7DA9835C301000000000000000
- 0100000007C3A6D65EE726E40B7F3D69A23BD567E
-ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;X-REPLYTIME=20030618T20
- 0700Z;RSVP=TRUE;CN=\"AAAAA,AAAAAA
-\(A-AAAAAAA,ex1)\":MAILTO:aaaaaa_aaaaa@aaaaa
- .com
-ORGANIZER;CN=\"ABCD,TECHTRAINING
-\(A-Americas,exgen1)\":MAILTO:bbb@bbbbb.com
-LOCATION:123 or TN 123-1234 ID abcd & SonstWo (see below)
-DTEND;TZID=\"Mountain Time (US & Canada)\":20030623T100000
-DESCRIPTION:Viele Zeichen standen hier früher
-SEQUENCE:0
-PRIORITY:5
-CLASS:
-CREATED:20030618T230326Z
-LAST-MODIFIED:20030618T230335Z
-STATUS:CONFIRMED
-TRANSP:OPAQUE
-X-MICROSOFT-CDO-BUSYSTATUS:BUSY
-X-MICROSOFT-CDO-INSTTYPE:0
-X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
-X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
-X-MICROSOFT-CDO-IMPORTANCE:1
-X-MICROSOFT-CDO-OWNERAPPTID:1022519251
-BEGIN:VALARM
-ACTION:DISPLAY
-DESCRIPTION:REMINDER
-TRIGGER;RELATED=START:-PT00H15M00S
-END:VALARM
-END:VEVENT
-END:VCALENDAR"
-   nil
-   "&23/6/2003 17:00-18:00 Updated: Dress Rehearsal for ABC01-15
- Desc: Viele Zeichen standen hier früher
- Location: 123 or TN 123-1234 ID abcd & SonstWo (see below)
- Organizer: MAILTO:bbb@bbbbb.com
- Status: CONFIRMED
- UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
-"
-   "&6/23/2003 17:00-18:00 Updated: Dress Rehearsal for ABC01-15
- Desc: Viele Zeichen standen hier früher
- Location: 123 or TN 123-1234 ID abcd & SonstWo (see below)
- Organizer: MAILTO:bbb@bbbbb.com
- Status: CONFIRMED
- UID: 040000008200E00074C5B7101A82E00800000000608AA7DA9835C3010000000000000000100000007C3A6D65EE726E40B7F3D69A23BD567E
-")
+  (icalendar-tests--test-import "import-real-world-2003-06-18b.ics"
+                                nil
+                                "import-real-world-2003-06-18b.diary-european"
+                                "import-real-world-2003-06-18b.diary-american")
   ;; export 2004-10-28 block entries
   (icalendar-tests--test-export
    nil
@@ -2078,169 +1535,10 @@ DTEND;VALUE=DATE-TIME:20041012T150000
 SUMMARY:Tue: [2004-10-12] q1")
 
   ;; 2004-11-19
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR
-VERSION
- :2.0
-PRODID
- :-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN
-BEGIN:VEVENT
-SUMMARY
- :Jjjjj & Wwwww
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-DTSTART
- :20041123T140000
-DTEND
- :20041123T143000
-DTSTAMP
- :20041118T013430Z
-LAST-MODIFIED
- :20041118T013640Z
-END:VEVENT
-BEGIN:VEVENT
-SUMMARY
- :BB Aaaaaaaa Bbbbb
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-DTSTART
- :20041123T144500
-DTEND
- :20041123T154500
-DTSTAMP
- :20041118T013641Z
-END:VEVENT
-BEGIN:VEVENT
-SUMMARY
- :Hhhhhhhh
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-DTSTART
- :20041123T110000
-DTEND
- :20041123T120000
-DTSTAMP
- :20041118T013831Z
-END:VEVENT
-BEGIN:VEVENT
-SUMMARY
- :MMM Aaaaaaaaa
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-X-MOZILLA-RECUR-DEFAULT-INTERVAL
- :2
-RRULE
- :FREQ=WEEKLY;INTERVAL=2;BYDAY=FR
-DTSTART
- :20041112T140000
-DTEND
- :20041112T183000
-DTSTAMP
- :20041118T014117Z
-END:VEVENT
-BEGIN:VEVENT
-SUMMARY
- :Rrrr/Cccccc ii Aaaaaaaa
-DESCRIPTION
- :Vvvvv Rrrr aaa Cccccc
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-DTSTART
- ;VALUE=DATE
- :20041119
-DTEND
- ;VALUE=DATE
- :20041120
-DTSTAMP
- :20041118T013107Z
-LAST-MODIFIED
- :20041118T014203Z
-END:VEVENT
-BEGIN:VEVENT
-SUMMARY
- :Wwww aa hhhh
-STATUS
- :TENTATIVE
-CLASS
- :PRIVATE
-X-MOZILLA-ALARM-DEFAULT-LENGTH
- :0
-RRULE
- :FREQ=WEEKLY;INTERVAL=1;BYDAY=MO
-DTSTART
- ;VALUE=DATE
- :20041101
-DTEND
- ;VALUE=DATE
- :20041102
-DTSTAMP
- :20041118T014045Z
-LAST-MODIFIED
- :20041118T023846Z
-END:VEVENT
-END:VCALENDAR
-"
-   nil
-   "&23/11/2004 14:00-14:30 Jjjjj & Wwwww
- Status: TENTATIVE
- Class: PRIVATE
-&23/11/2004 14:45-15:45 BB Aaaaaaaa Bbbbb
- Status: TENTATIVE
- Class: PRIVATE
-&23/11/2004 11:00-12:00 Hhhhhhhh
- Status: TENTATIVE
- Class: PRIVATE
-&%%(and (diary-cyclic 14 12 11 2004)) 14:00-18:30 MMM Aaaaaaaaa
- Status: TENTATIVE
- Class: PRIVATE
-&%%(and (diary-block 19 11 2004 19 11 2004)) Rrrr/Cccccc ii Aaaaaaaa
- Desc: Vvvvv Rrrr aaa Cccccc
- Status: TENTATIVE
- Class: PRIVATE
-&%%(and (diary-cyclic 7 1 11 2004)) Wwww aa hhhh
- Status: TENTATIVE
- Class: PRIVATE
-"
-   "&11/23/2004 14:00-14:30 Jjjjj & Wwwww
- Status: TENTATIVE
- Class: PRIVATE
-&11/23/2004 14:45-15:45 BB Aaaaaaaa Bbbbb
- Status: TENTATIVE
- Class: PRIVATE
-&11/23/2004 11:00-12:00 Hhhhhhhh
- Status: TENTATIVE
- Class: PRIVATE
-&%%(and (diary-cyclic 14 11 12 2004)) 14:00-18:30 MMM Aaaaaaaaa
- Status: TENTATIVE
- Class: PRIVATE
-&%%(and (diary-block 11 19 2004 11 19 2004)) Rrrr/Cccccc ii Aaaaaaaa
- Desc: Vvvvv Rrrr aaa Cccccc
- Status: TENTATIVE
- Class: PRIVATE
-&%%(and (diary-cyclic 7 11 1 2004)) Wwww aa hhhh
- Status: TENTATIVE
- Class: PRIVATE
-")
+  (icalendar-tests--test-import "import-real-world-2004-11-19.ics"
+                                nil
+                                "import-real-world-2004-11-19.diary-european"
+                                "import-real-world-2004-11-19.diary-american")
 
   ;; 2004-09-09 pg
   (icalendar-tests--test-export
@@ -2270,53 +1568,16 @@ DTEND;VALUE=DATE-TIME:20041102T163000
 SUMMARY:Zahnarzt")
 
   ;; 2005-02-07 lt
-  (icalendar-tests--test-import
-   "UID
- :b60d398e-1dd1-11b2-a159-cf8cb05139f4
-SUMMARY
- :Waitangi Day
-DESCRIPTION
- :abcdef
-CATEGORIES
- :Public Holiday
-STATUS
- :CONFIRMED
-CLASS
- :PRIVATE
-DTSTART
- ;VALUE=DATE
- :20050206
-DTEND
- ;VALUE=DATE
- :20050207
-DTSTAMP
- :20050128T011209Z"
-   nil
-   "&%%(and (diary-block 6 2 2005 6 2 2005)) Waitangi Day
- Desc: abcdef
- Status: CONFIRMED
- Class: PRIVATE
- UID: b60d398e-1dd1-11b2-a159-cf8cb05139f4
-"
-   "&%%(and (diary-block 2 6 2005 2 6 2005)) Waitangi Day
- Desc: abcdef
- Status: CONFIRMED
- Class: PRIVATE
- UID: b60d398e-1dd1-11b2-a159-cf8cb05139f4
-")
+  (icalendar-tests--test-import "import-real-world-2005-02-07.ics"
+                                nil
+                                "import-real-world-2005-02-07.diary-european"
+                                "import-real-world-2005-02-07.diary-american")
 
   ;; 2005-03-01 lt
-  (icalendar-tests--test-import
-   "DTSTART;VALUE=DATE:20050217
-SUMMARY:Hhhhhh Aaaaa ii Aaaaaaaa
-UID:6AFA7558-6994-11D9-8A3A-000A95A0E830-RID
-DTSTAMP:20050118T210335Z
-DURATION:P7D"
-   nil
-   "&%%(and (diary-block 17 2 2005 23 2 2005)) Hhhhhh Aaaaa ii Aaaaaaaa
- UID: 6AFA7558-6994-11D9-8A3A-000A95A0E830-RID\n"
-   "&%%(and (diary-block 2 17 2005 2 23 2005)) Hhhhhh Aaaaa ii Aaaaaaaa
- UID: 6AFA7558-6994-11D9-8A3A-000A95A0E830-RID\n")
+  (icalendar-tests--test-import "import-real-world-2005-03-01.ics"
+                                nil
+                                "import-real-world-2005-03-01.diary-european"
+                                "import-real-world-2005-03-01.diary-american")
 
   ;; 2005-03-23 lt
   (icalendar-tests--test-export
@@ -2343,132 +1604,24 @@ SUMMARY:NNN Wwwwwwww Wwwww - Aaaaaa Pppppppp rrrrrr ddd oo Nnnnnnnn 30
 ")
 
   ;; bug#11473
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR
-METHOD:REQUEST
-PRODID:Microsoft Exchange Server 2007
-VERSION:2.0
-BEGIN:VTIMEZONE
-TZID:(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
-BEGIN:STANDARD
-DTSTART:16010101T030000
-TZOFFSETFROM:+0200
-TZOFFSETTO:+0100
-RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
-END:STANDARD
-BEGIN:DAYLIGHT
-DTSTART:16010101T020000
-TZOFFSETFROM:+0100
-TZOFFSETTO:+0200
-RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
-END:DAYLIGHT
-END:VTIMEZONE
-BEGIN:VEVENT
-ORGANIZER;CN=\"A. Luser\":MAILTO:a.luser@foo.com
-ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"Luser, Oth
- er\":MAILTO:other.luser@foo.com
-DESCRIPTION;LANGUAGE=en-US:\nWhassup?\n\n
-SUMMARY;LANGUAGE=en-US:Query
-DTSTART;TZID=\"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna\"
- :20120515T150000
-DTEND;TZID=\"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna\":2
- 0120515T153000
-UID:040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000
- 010000000575268034ECDB649A15349B1BF240F15
-RECURRENCE-ID;TZID=\"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, V
- ienna\":20120515T170000
-CLASS:PUBLIC
-PRIORITY:5
-DTSTAMP:20120514T153645Z
-TRANSP:OPAQUE
-STATUS:CONFIRMED
-SEQUENCE:15
-LOCATION;LANGUAGE=en-US:phone
-X-MICROSOFT-CDO-APPT-SEQUENCE:15
-X-MICROSOFT-CDO-OWNERAPPTID:1907632092
-X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
-X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
-X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
-X-MICROSOFT-CDO-IMPORTANCE:1
-X-MICROSOFT-CDO-INSTTYPE:3
-BEGIN:VALARM
-ACTION:DISPLAY
-DESCRIPTION:REMINDER
-TRIGGER;RELATED=START:-PT15M
-END:VALARM
-END:VEVENT
-END:VCALENDAR"
-   nil
-   "&15/5/2012 15:00-15:30 Query
- Location: phone
- Organizer: MAILTO:a.luser@foo.com
- Status: CONFIRMED
- Class: PUBLIC
- UID: 040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000010000000575268034ECDB649A15349B1BF240F15
-"     nil)
+  (icalendar-tests--test-import "import-bug-11473.ics"
+                                nil
+                                "import-bug-11473.diary-european"
+                                nil)
 
   ;; 2015-12-05, mixed line endings and empty lines, see Bug#22092.
-  (icalendar-tests--test-import
-   "BEGIN:VCALENDAR\r
-PRODID:-//www.norwegian.no//iCalendar MIMEDIR//EN\r
-VERSION:2.0\r
-METHOD:REQUEST\r
-BEGIN:VEVENT\r
-UID:RFCALITEM1\r
-SEQUENCE:1512040950\r
-DTSTAMP:20141204T095043Z\r
-ORGANIZER:noreply@norwegian.no\r
-DTSTART:20141208T173000Z\r
-
-DTEND:20141208T215500Z\r
-
-LOCATION:Stavanger-Sola\r
-
-DESCRIPTION:Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390\r
-
-X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"><html><head><META NAME=\"Generator\" CONTENT=\"MS Exchange Server version 08.00.0681.000\"><title></title></head><body><b><font face=\"Calibri\" size=\"3\">Reisereferanse</p></body></html>
-SUMMARY:Norwegian til Tromsoe-Langnes -\r
-
-CATEGORIES:Appointment\r
-
-
-PRIORITY:5\r
-
-CLASS:PUBLIC\r
-
-TRANSP:OPAQUE\r
-END:VEVENT\r
-END:VCALENDAR
-"
-"&2014/12/8 18:30-22:55 Norwegian til Tromsoe-Langnes -
- Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390
- Location: Stavanger-Sola
- Organizer: noreply@norwegian.no
- Class: PUBLIC
- UID: RFCALITEM1
-"
-"&8/12/2014 18:30-22:55 Norwegian til Tromsoe-Langnes -
- Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390
- Location: Stavanger-Sola
- Organizer: noreply@norwegian.no
- Class: PUBLIC
- UID: RFCALITEM1
-"
-"&12/8/2014 18:30-22:55 Norwegian til Tromsoe-Langnes -
- Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 8. des 2014 21:00, DY390
- Location: Stavanger-Sola
- Organizer: noreply@norwegian.no
- Class: PUBLIC
- UID: RFCALITEM1
-"
-)
-  )
+  (icalendar-tests--test-import "import-bug-22092.ics"
+                                "import-bug-22092.diary-iso"
+                                "import-bug-22092.diary-european"
+                                "import-bug-22092.diary-american"))
 
 (defun icalendar-test--format (string &optional day zone)
+  "Decode and format STRING with DAY and ZONE."
   (let ((time (icalendar--decode-isodatetime string day zone)))
     (format-time-string "%FT%T%z" (encode-time time) 0)))
 
 (defun icalendar-tests--decode-isodatetime (_ical-string)
+  "Test icalendar--decode-isodatetime."
   (should (equal (icalendar-test--format "20040917T050910-0200")
                  "2004-09-17T03:09:10+0000"))
   (should (equal (icalendar-test--format "20040917T050910")