From 0be8a499fa29e860e984cad61a721be9ad28026e Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Fri, 20 Dec 2019 12:29:51 +0100 Subject: Move code for testing to submodule Signed-off-by: Matthias Beyer --- src/testing/data.rs | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 src/testing/data.rs (limited to 'src/testing/data.rs') diff --git a/src/testing/data.rs b/src/testing/data.rs new file mode 100644 index 0000000..9237889 --- /dev/null +++ b/src/testing/data.rs @@ -0,0 +1,304 @@ +// from https://tools.ietf.org/html/rfc5545#section-3.6.1 +pub static TEST_EVENT_MULTIDAY_ALLDAY: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:20070423T123432Z-541111@example.com + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + DTEND;VALUE=DATE:20070709 + SUMMARY:Festival International de Jazz de Montreal + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_EVENT_MULTIDAY: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:20070423T123432Z-541111@example.com + DTSTAMP:20070423T123432Z + DTSTART:20070628T132900 + DTEND:20070709T072900 + SUMMARY:Festival International de Jazz de Montreal + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_EVENT_MULTIDAY_LASTMODIFIED: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:20070423T123432Z-541111@example.com + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628T132900 + DTEND;VALUE=DATE:20070709T072900 + SUMMARY:Festival International de Jazz de Montreal + LAST-MODIFIED:20070423T123432Z + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_DTSTART_ONLY_DATE: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:20070423T123432Z-541111@example.com + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + SUMMARY:Festival International de Jazz de Montreal + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_DTSTART_ONLY_DATETIME: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:20070423T123432Z-541111@example.com + DTSTAMP:20070423T123432Z + DTSTART:20070628T132900 + SUMMARY:Festival International de Jazz de Montreal + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_EVENT_EMPTY_SUMMARY: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:20070423T123432Z-541111@example.com + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + DTEND;VALUE=DATE:20070709 + SUMMARY: + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_EVENT_NO_UID: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + DTEND;VALUE=DATE:20070709 + SUMMARY:Festival International de Jazz de Montreal + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_EVENT_NO_PRODID: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + BEGIN:VEVENT + UID:20070423T123432Z-541111@example.com + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + DTEND;VALUE=DATE:20070709 + SUMMARY:Festival International de Jazz de Montreal + LOCATION:LDB Lobby + TRANSP:TRANSPARENT + END:VEVENT + END:VCALENDAR +" +); + +// from https://tools.ietf.org/html/rfc5545#section-4 +pub static TEST_EVENT_ONE_MEETING: &str = indoc!( + r" + BEGIN:VCALENDAR + METHOD:xyz + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + DTSTAMP:19970324T120000Z + SEQUENCE:0 + UID:uid3@example.com + ORGANIZER:mailto:jdoe@example.com + ATTENDEE;RSVP=TRUE:mailto:jsmith@example.com + DTSTART:19970324T123000Z + DTEND:19970324T210000Z + CATEGORIES:MEETING,PROJECT + CLASS:PUBLIC + SUMMARY:Calendaring Interoperability Planning Meeting + DESCRIPTION:Discuss how we can test c&s interoperability\n + using iCalendar and other IETF standards. + LOCATION:LDB Lobby + ATTACH;FMTTYPE=application/postscript:ftp://example.com/pub/conf/bkgrnd.ps + END:VEVENT + END:VCALENDAR + +" +); + +pub static TEST_EVENT_RECUR: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:autocryptthursday + DTSTART;VALUE=DATE:20181011 + DURATION:P2D + SUMMARY:Autocrypt Thursdays + RRULE:FREQ=WEEKLY;COUNT=10 + END:VEVENT + END:VCALENDAR + +" +); + +pub static TEST_EVENT_WITH_TIMEZONE_COMPONENT: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//PIMUTILS.ORG//NONSGML khal / icalendar //EN + BEGIN:VTIMEZONE + TZID:Europe/Berlin + BEGIN:DAYLIGHT + DTSTART;VALUE=DATE-TIME:20180325T030000 + TZNAME:CEST + TZOFFSETFROM:+0100 + TZOFFSETTO:+0200 + END:DAYLIGHT + BEGIN:STANDARD + DTSTART;VALUE=DATE-TIME:20181028T020000 + TZNAME:CET + TZOFFSETFROM:+0200 + TZOFFSETTO:+0100 + END:STANDARD + END:VTIMEZONE + BEGIN:VEVENT + SUMMARY:Some Event + DTSTART;TZID=Europe/Berlin;VALUE=DATE-TIME:20181026T133000 + DTEND;TZID=Europe/Berlin;VALUE=DATE-TIME:20181026T160000 + DTSTAMP;VALUE=DATE-TIME:20181022T145405Z + UID:O2G1SKNFDGC1OZ1675I1A9OFQOFZXTNONYNO + SEQUENCE:1 + LOCATION:Some Location + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_MULTIPLE_EVENTS: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:uid1 + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + SUMMARY:First Event + END:VEVENT + BEGIN:VEVENT + UID:uid2 + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + SUMMARY:Second Event + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_NO_DTSTART: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:uid3 + DTSTAMP:20070423T123432Z + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_NO_SUMMARY: &str = indoc!( + " + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:uid3 + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + END:VEVENT + END:VCALENDAR +" +); + +pub static TEST_BARE_EVENT: &str = indoc!( + " + BEGIN:VEVENT + UID:uid4 + DTSTAMP:20070423T123432Z + DTSTART;VALUE=DATE:20070628 + END:VEVENT +" +); + +pub static TEST_EVENT_WITH_X_LIC_ERROR: &str = indoc!( + " + BEGIN:VCALENDAR + PRODID:CommuniGate Pro 6.2.5 + VERSION:2.0 + BEGIN:VEVENT + DTSTAMP:20180821T103922Z + UID:1 + SUMMARY:Summary + DTSTART:20180516T093000Z + DTEND:20180516T110000Z + X-MICROSOFT-CDO-BUSYSTATUS:BUSY + LAST-MODIFIED:20180821T103105Z + CREATED:20180404T130941Z + PRIORITY:5 + STATUS:CONFIRMED + X-LIC-ERROR:No value for LOCATION property. Removing entire property: + END:VEVENT + END:VCALENDAR +" +); + +use chrono::{DateTime, TimeZone, Utc}; +lazy_static! { + pub static ref NOW_TEST: DateTime = Utc.ymd(2013, 01, 01).and_hms(1, 2, 3); +} -- cgit v1.2.3