aboutsummaryrefslogtreecommitdiffstats
path: root/test/ical-003.sh
diff options
context:
space:
mode:
authorLars Henriksen <LarsHenriksen@get2net.dk>2020-05-27 21:49:36 +0200
committerLukas Fleischer <lfleischer@calcurse.org>2020-06-13 10:56:15 -0400
commitd2791b046a28c232573f4d55fbeca5a6912dd635 (patch)
tree9e100b5569c02898d1a2cfb5cd087eef0bce3342 /test/ical-003.sh
parentd8c1c48e78bd6cdfbee922c6bda4022c7d7cb9dd (diff)
downloadcalcurse-d2791b046a28c232573f4d55fbeca5a6912dd635.tar.gz
calcurse-d2791b046a28c232573f4d55fbeca5a6912dd635.zip
Update import of basic recurrence rules
Conversion of COUNT to UNTIL was a simple calculation which assumed one repetiton per period (day, week, month or year); it does not take exception days and invalid dates into account. Solved by a new function which returns the n'th occurrence of a recurrence rule. In calcurse UNTIL is interpreted as a day (DATE), in RFC 5545 as a time of day (DATE-TIME). This has implications when a recurrence rule has an occurrence on the UNTIL day, see comment in ical.c An "Import:" note is added when a multi-day event is imported and turned into a calcurse all-day event. Icalendar quotes in comments have been updated to RFC 5545. Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
Diffstat (limited to 'test/ical-003.sh')
-rwxr-xr-xtest/ical-003.sh77
1 files changed, 75 insertions, 2 deletions
diff --git a/test/ical-003.sh b/test/ical-003.sh
index a0734ce..69cb4c3 100755
--- a/test/ical-003.sh
+++ b/test/ical-003.sh
@@ -1,4 +1,5 @@
#!/bin/sh
+# Recurrence rules.
. "${TEST_INIT:-./test-init.sh}"
@@ -7,11 +8,13 @@ if [ "$1" = 'actual' ]; then
cp "$DATA_DIR/conf" .calcurse || exit 1
"$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-003.ical"
"$CALCURSE" -D "$PWD/.calcurse" -s01/01/2000 -r365
+ "$CALCURSE" -D "$PWD/.calcurse" -s05/01/2020 --to 01/01/2022
+ cat "$PWD/.calcurse/notes"/*
rm -rf .calcurse || exit 1
elif [ "$1" = 'expected' ]; then
cat <<EOD
-Import process report: 0025 lines read
-3 apps / 0 events / 0 todos / 0 skipped
+Import process report: 0052 lines read
+6 apps / 1 event / 0 todos / 0 skipped
01/01/00:
- 00:00 -> 01:30
Recurring appointment
@@ -131,6 +134,76 @@ Import process report: 0025 lines read
02/29/00:
- 00:00 -> 01:30
Recurring appointment
+05/02/20:
+ * First weekend in May
+
+05/03/20:
+ * First weekend in May
+
+05/26/20:
+ - 12:00 -> 13:17
+ until May 29 2020, 11:00
+ - 12:00 -> 13:17
+ until May 29 2020, 13:00
+
+05/27/20:
+ - 12:00 -> 13:17
+ until May 29 2020, 11:00
+ - 12:00 -> 13:17
+ until May 29 2020, 13:00
+
+05/28/20:
+ - 12:00 -> 13:17
+ until May 29 2020, 11:00
+ - 12:00 -> 13:17
+ until May 29 2020, 13:00
+
+05/29/20:
+ - 12:00 -> 13:17
+ until May 29 2020, 13:00
+
+05/31/20:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+08/31/20:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+10/31/20:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+12/31/20:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+03/31/21:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+05/31/21:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+07/31/21:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+08/31/21:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+10/31/21:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+
+12/31/21:
+ - 21:45 -> 22:00
+ monthly on 31th, count 10, exceptions 31/7/2020 and 31/1/2021
+The first weekend in May is a two-day event.
+--
+Import: multi-day event changed to one-day event
EOD
else
./run-test "$0"