diff options
author | Lukas Fleischer <lfleischer@calcurse.org> | 2017-02-07 17:52:14 +0100 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2017-02-07 21:54:05 +0100 |
commit | e4e2e0eb20794972b8d4c89dcfeb6c257c45c3a1 (patch) | |
tree | bee6a06be507aad5105b32610eb55b85d99a2ccd /test | |
parent | 3375fddb4e594badf7a7ab0cc722dc33a3af1131 (diff) | |
download | calcurse-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.am | 1 | ||||
-rw-r--r-- | test/data/ical-008.ical | 12 | ||||
-rwxr-xr-x | test/ical-008.sh | 28 |
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 |