From 81894cbbd8496dee4ea6d62d6ffc820482b4197d Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <calcurse@cryptocrack.de>
Date: Mon, 28 Jul 2014 12:24:21 +0200
Subject: tests/: Add basic iCal import tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Tests ical-002.sh and ical-003.sh currently fail due to bugs in duration
and exception parsing.

Reported-by: HÃ¥kan Jerning <jerning@home.se>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
---
 test/Makefile.am        |   6 +++
 test/data/ical-001.ical |  12 +++++
 test/data/ical-002.ical |  28 ++++++++++
 test/data/ical-003.ical |  25 +++++++++
 test/ical-001.sh        |  28 ++++++++++
 test/ical-002.sh        |  31 +++++++++++
 test/ical-003.sh        | 137 ++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 267 insertions(+)
 create mode 100644 test/data/ical-001.ical
 create mode 100644 test/data/ical-002.ical
 create mode 100644 test/data/ical-003.ical
 create mode 100755 test/ical-001.sh
 create mode 100755 test/ical-002.sh
 create mode 100755 test/ical-003.sh

(limited to 'test')

diff --git a/test/Makefile.am b/test/Makefile.am
index 0ff07d3..5e1bfca 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -41,6 +41,9 @@ TESTS = \
 	event-004.sh \
 	event-005.sh \
 	event-006.sh \
+	ical-001.sh \
+	ical-002.sh \
+	ical-003.sh \
 	next-001.sh \
 	search-001.sh \
 	bug-002.sh \
@@ -97,4 +100,7 @@ EXTRA_DIST = \
 	data/apts-event-006 \
 	data/apts-recur \
 	data/conf \
+	data/ical-001.ical \
+	data/ical-002.ical \
+	data/ical-003.ical \
 	data/todo
diff --git a/test/data/ical-001.ical b/test/data/ical-001.ical
new file mode 100644
index 0000000..e4a1f78
--- /dev/null
+++ b/test/data/ical-001.ical
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART:19020101T000100
+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/data/ical-002.ical b/test/data/ical-002.ical
new file mode 100644
index 0000000..915b84e
--- /dev/null
+++ b/test/data/ical-002.ical
@@ -0,0 +1,28 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART:20000101T000000
+DURATION:P1DT0H0M0S
+SUMMARY:One day
+END:VEVENT
+BEGIN:VEVENT
+DTSTART:20000101T000000
+DURATION:P1DT1H1M1S
+SUMMARY:One day, one hour, one minute and one second
+END:VEVENT
+BEGIN:VEVENT
+DTSTART:20000101T000000
+DURATION:PT1H1M1S
+SUMMARY:One hour, one minute and one second
+END:VEVENT
+BEGIN:VEVENT
+DTSTART:20000101T000000
+DURATION:PT1M1S
+SUMMARY:One minute and one second
+END:VEVENT
+BEGIN:VEVENT
+DTSTART:20000101T000000
+DURATION:PT1S
+SUMMARY:One second
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/ical-003.ical b/test/data/ical-003.ical
new file mode 100644
index 0000000..599d24f
--- /dev/null
+++ b/test/data/ical-003.ical
@@ -0,0 +1,25 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+BEGIN:VEVENT
+DTSTART:20000101T000000
+DURATION:PT1H30M0S
+RRULE:FREQ=DAILY;INTERVAL=2;UNTIL=20000201T000000;WKST=SU
+EXDATE:20000115T000000,20000123T000000
+SUMMARY:Recurring appointment
+END:VEVENT
+BEGIN:VEVENT
+DTSTART:20000101T000000
+DURATION:PT1H30M0S
+RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20000201T000000;WKST=SU
+EXDATE:20000122T000000
+SUMMARY:Weekly appointment
+END:VEVENT
+BEGIN:VEVENT
+DTSTART:20000201T000000
+DURATION:PT1H30M0S
+RRULE:FREQ=DAILY;INTERVAL=2;UNTIL=20000301T000000;WKST=SU
+EXDATE:20000215T000000
+EXDATE:20000223T000000
+SUMMARY:Recurring appointment
+END:VEVENT
+END:VCALENDAR
diff --git a/test/ical-001.sh b/test/ical-001.sh
new file mode 100755
index 0000000..3fb6f87
--- /dev/null
+++ b/test/ical-001.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-001.ical"
+  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/1902 -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/02:
+ - 00:01 -> ..:..
+	Calibrator's
+
+01/02/02:
+ - ..:.. -> 09:18
+	Calibrator's
+to do:
+9. Nary parabled Louvre's fleetest mered
+EOD
+else
+  ./run-test "$0"
+fi
diff --git a/test/ical-002.sh b/test/ical-002.sh
new file mode 100755
index 0000000..fabde90
--- /dev/null
+++ b/test/ical-002.sh
@@ -0,0 +1,31 @@
+#!/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-002.ical"
+  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/2000 -r2
+  rm -rf .calcurse || exit 1
+elif [ "$1" = 'expected' ]; then
+  cat <<EOD
+Import process report: 0036 lines read
+5 apps / 0 events / 0 todos / 0 skipped
+01/01/00:
+ - 00:00 -> 00:00
+	One day
+ - 00:00 -> ..:..
+	One day, one hour, one minute and one second
+ - 00:00 -> 01:01
+	One hour, one minute and one second
+ - 00:00 -> 00:01
+	One minute and one second
+
+01/02/00:
+ - ..:.. -> 01:01
+	One day, one hour, one minute and one second
+EOD
+else
+  ./run-test "$0"
+fi
diff --git a/test/ical-003.sh b/test/ical-003.sh
new file mode 100755
index 0000000..244a6d5
--- /dev/null
+++ b/test/ical-003.sh
@@ -0,0 +1,137 @@
+#!/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-003.ical"
+  "$CALCURSE" -D "$PWD/.calcurse" -s01/01/2000 -r365
+  rm -rf .calcurse || exit 1
+elif [ "$1" = 'expected' ]; then
+  cat <<EOD
+Import process report: 0031 lines read
+3 apps / 0 events / 0 todos / 0 skipped
+01/01/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+ - 00:00 -> 01:30
+	Weekly appointment
+
+01/03/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/05/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/07/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/08/00:
+ - 00:00 -> 01:30
+	Weekly appointment
+
+01/09/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/11/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/13/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/15/00:
+ - 00:00 -> 01:30
+	Weekly appointment
+
+01/17/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/19/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/21/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/25/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/27/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+01/29/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+ - 00:00 -> 01:30
+	Weekly appointment
+
+01/31/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/01/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/03/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/05/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/07/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/09/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/11/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/13/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/17/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/19/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/21/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/25/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/27/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+
+02/29/00:
+ - 00:00 -> 01:30
+	Recurring appointment
+EOD
+else
+  ./run-test "$0"
+fi
-- 
cgit v1.2.3-70-g09d2