Gracefully handle all day events in iCal imports

Do not create two events when importing an event that lasts an entire
day.

Reported-by: Jörn Tillmanns <tillmanns@tuxzone.org>
Reported-by: Håkan Jerning <jerning@home.se>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer
2014-08-18 12:16:42 +02:00
parent bcc820ea74
commit f3fe3c818c
3 changed files with 74 additions and 12 deletions

23
test/data/ical-005.ical Normal file
View File

@@ -0,0 +1,23 @@
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
SUMMARY:All day
DTSTART;VALUE=DATE:20131003
DTEND;VALUE=DATE:20131004
END:VEVENT
BEGIN:VEVENT
SUMMARY:Two days
DTSTART;VALUE=DATE:20131003
DTEND;VALUE=DATE:20131005
END:VEVENT
BEGIN:VEVENT
SUMMARY:On day 1
DTSTART;VALUE=DATE:20131003
DTEND;VALUE=DATE:20131004
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
SUMMARY:On day 2
DTSTART;VALUE=DATE:20131003
END:VEVENT
END:VCALENDAR

26
test/ical-005.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/sh
. "${TEST_INIT:-./test-init.sh}"
if [ "$1" = 'actual' ]; then
mkdir .calcurse || exit 1
cp "$DATA_DIR/conf" .calcurse || exit 1
"$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-005.ical"
"$CALCURSE" -D "$PWD/.calcurse" -s10/03/2013 -r3
rm -rf .calcurse || exit 1
elif [ "$1" = 'expected' ]; then
cat <<EOD
Import process report: 0030 lines read
0 apps / 4 events / 0 todos / 0 skipped
10/03/13:
* Two days
* All day
* On day 1
* On day 2
10/04/13:
* Two days
EOD
else
./run-test "$0"
fi