summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@calcurse.org>2017-02-07 17:52:14 +0100
committerLukas Fleischer <lfleischer@calcurse.org>2017-02-07 21:54:05 +0100
commite4e2e0eb20794972b8d4c89dcfeb6c257c45c3a1 (patch)
treebee6a06be507aad5105b32610eb55b85d99a2ccd /test
parent3375fddb4e594badf7a7ab0cc722dc33a3af1131 (diff)
downloadcalcurse-e4e2e0eb20794972b8d4c89dcfeb6c257c45c3a1.zip
Gracefully parse iCal parameters with colons
According to RFC 5545, iCalendar content lines can have optional parameters, which can be quoted strings containing colons (":"). Make sure that such colons are not interpreted as delimiters marking the start of the value string. Also, add a test case that covers this corner case. Reported-by: HÃ¥kan Jerning <jerning@home.se> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am1
-rw-r--r--test/data/ical-008.ical12
-rwxr-xr-xtest/ical-008.sh28
3 files changed, 41 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index f8d6088..b59a1a8 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -49,6 +49,7 @@ TESTS = \
ical-005.sh \
ical-006.sh \
ical-007.sh \
+ ical-008.sh \
next-001.sh \
search-001.sh \
bug-002.sh \
diff --git a/test/data/ical-008.ical b/test/data/ical-008.ical
new file mode 100644
index 0000000..51625d5
--- /dev/null
+++ b/test/data/ical-008.ical
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien":19800101T000100
+DURATION:P1DT9H17M0S
+SUMMARY:Calibrator's
+END:VEVENT
+BEGIN:VTODO
+PRIORITY:1
+SUMMARY:Nary parabled Louvre's fleetest mered
+END:VTODO
+END:VCALENDAR
diff --git a/test/ical-008.sh b/test/ical-008.sh
new file mode 100755
index 0000000..ff45cad
--- /dev/null
+++ b/test/ical-008.sh
@@ -0,0 +1,28 @@
+#!/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-008.ical"
+ "$CALCURSE" -D "$PWD/.calcurse" -s01/01/1980 -r2
+ "$CALCURSE" -D "$PWD/.calcurse" -t
+ rm -rf .calcurse || exit 1
+elif [ "$1" = 'expected' ]; then
+ cat <<EOD
+Import process report: 0017 lines read
+1 app / 0 events / 1 todo / 0 skipped
+01/01/80:
+ - 00:01 -> ..:..
+ Calibrator's
+
+01/02/80:
+ - ..:.. -> 09:18
+ Calibrator's
+to do:
+0. Nary parabled Louvre's fleetest mered
+EOD
+else
+ ./run-test "$0"
+fi