aboutsummaryrefslogtreecommitdiff
path: root/tests/recurring.scm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/recurring.scm137
1 files changed, 127 insertions, 10 deletions
diff --git a/tests/recurring.scm b/tests/recurring.scm
index b32759ba..da6e18a8 100644
--- a/tests/recurring.scm
+++ b/tests/recurring.scm
@@ -1,6 +1,7 @@
-(((srfi srfi-41) stream-take stream-map stream->list)
- ((srfi srfi-19) date->time-utc time-utc->date)
- ((srfi srfi-19 util) day-stream)
+(((srfi srfi-41) stream-take stream-map stream->list stream-car)
+ ;; ((srfi srfi-19) date->time-utc time-utc->date)
+ ;; ((srfi srfi-19 util) day-stream)
+ ((srfi srfi-19 alt util) day-stream)
((vcomponent base) extract attr)
((vcomponent) parse-calendar)
@@ -11,12 +12,15 @@
(define ev
(call-with-input-string
"BEGIN:VEVENT
-DTSTART;20190302
+DTSTART:20190302
RRULE:FREQ=DAILY
END:VEVENT"
parse-calendar))
(test-assert "Generate at all"
+ (stream-car (generate-recurrence-set ev)))
+
+(test-assert "Generate some"
(stream->list (stream-take 5 (generate-recurrence-set ev))))
(test-equal "Generate First"
@@ -26,9 +30,8 @@ END:VEVENT"
(generate-recurrence-set ev))))
(stream->list
(stream-take
- 5 (stream-map date->time-utc
- (day-stream
- (time-utc->date (attr ev 'DTSTART)))))))
+ 5 (day-stream
+ (attr ev 'DTSTART)))))
;; We run the exact same thing a secound time, since I had an error with
;; that during development.
@@ -40,11 +43,125 @@ END:VEVENT"
(generate-recurrence-set ev))))
(stream->list
(stream-take
- 5 (stream-map date->time-utc
- (day-stream
- (time-utc->date (attr ev 'DTSTART)))))))
+ 5 (day-stream
+ (attr ev 'DTSTART)))))
+
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART:20190302T100000
+RRULE:FREQ=DAILY
+END:VEVENT"
+ parse-calendar) )
+
+(test-assert "daily 10:00"
+ (stream-car (generate-recurrence-set ev)))
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART:20190302T100000
+DTEND:20190302T120000
+RRULE:FREQ=DAILY
+END:VEVENT"
+ parse-calendar))
+
+(test-assert "daily 10-12"
+ (stream-car (generate-recurrence-set ev)))
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART:20190302T100000
+DTEND:20190302T120000
+RRULE:FREQ=WEEKLY
+END:VEVENT"
+ parse-calendar))
+(test-assert "weekly 10-12"
+ (stream-car (generate-recurrence-set ev)))
;;; TODO, also test:
;;; - limited repetition
;;; - weird rules
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART;TZID=Europe/Stockholm:20190302T100000
+DTEND;TZID=Europe/Stockholm:20190302T120000
+RRULE:FREQ=WEEKLY
+END:VEVENT"
+ parse-calendar))
+
+(test-assert "weekly TZ 10-12"
+ (stream-car (generate-recurrence-set ev)))
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART;TZID=Europe/Stockholm:20190302T100000
+DTEND;TZID=Europe/Stockholm:20190302T120000
+RRULE:FREQ=WEEKLY
+SEQUENCE:1
+END:VEVENT"
+ parse-calendar))
+
+(test-assert "weekly TZ SEQUENCE 10-12"
+ (stream-car (generate-recurrence-set ev)))
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART;TZID=Europe/Stockholm:20190302T100000
+RRULE:FREQ=WEEKLY
+DTEND;TZID=Europe/Stockholm:20190302T120000
+SEQUENCE:1
+LOCATION:Here
+END:VEVENT"
+ parse-calendar))
+
+(test-assert "weekly TZ SEQUENCE LOCATION 10-12"
+ (stream-car (generate-recurrence-set ev)))
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART:20180117T170000
+RRULE:FREQ=WEEKLY
+LOCATION:~
+END:VEVENT"
+ parse-calendar))
+
+(test-assert "Just location"
+ (stream-car (generate-recurrence-set ev)))
+
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART;TZID=Europe/Stockholm:20180117T170000
+DTEND;TZID=Europe/Stockholm:20180117T200000
+RRULE:FREQ=WEEKLY
+END:VEVENT"
+ parse-calendar))
+
+(test-assert "Same times"
+ (stream-car (generate-recurrence-set ev)))
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART;TZID=Europe/Stockholm:20180117T170000
+RRULE:FREQ=WEEKLY
+DTEND;TZID=Europe/Stockholm:20180117T200000
+SEQUENCE:1
+LOCATION:~
+END:VEVENT"
+ parse-calendar))
+
+;; errer in dtend ?
+
+(test-assert "Full test"
+ (stream-car (generate-recurrence-set ev)))