blob: b3bbe77053f54b04a0139f95a993486ceb4e72f3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
(test-begin "RRULE parse")
(use-modules (vcalendar recurrence parse))
(define-syntax mkrule
(syntax-rules ()
((_ (key val) ...)
((record-constructor (@@ (vcalendar recurrence internal) <recur-rule>)
(quote (key ...)))
(quote val) ...))))
(test-equal (mkrule (freq HOURLY) (wkst MO) (interval 1))
(parse-recurrence-rule "FREQ=HOURLY"))
(test-equal (mkrule (freq HOURLY) (count 3) (interval 1) (wkst MO))
(parse-recurrence-rule "FREQ=HOURLY;COUNT=3"))
;;; TODO write tests for these cases
(parse-recurrence-rule "FREQ=ERR;COUNT=3")
; TODO this error seems to have an error
;; => #<<recur-rule> freq: #<<recur-rule> freq: #f until: #f count: #f interval: 1 bysecond: #f byminute: #f byhour: #f byday: #f bymonthday: #f byyearday: #f byweekno: #f bymonth: #f bysetpos: #f wkst: MO> until: #f count: 3 interval: 1 bysecond: #f byminute: #f byhour: #f byday: #f bymonthday: #f byyearday: #f byweekno: #f bymonth: #f bysetpos: #f wkst: MO>
;; ERR unfulfilled-constraint [ERR] doesn't fulfill constraint of type [FREQ], ignoring
(parse-recurrence-rule "FREQ=HOURLY;COUNT=err")
;; => #<<recur-rule> freq: HOURLY until: #f count: #f interval: 1
;; bysecond: #f byminute: #f byhour: #f byday: #f bymonthday: #f
;; byyearday: #f byweekno: #f bymonth: #f bysetpos: #f wkst: MO>
;; ERR invalid-value [#f] for key [COUNT], ignoring.
(parse-recurrence-rule "FREQ=HOURLY;COUNT=-1") ; TODO this error seems to have an error
;; => #<<recur-rule> freq: HOURLY until: #f count: #<<recur-rule> freq: HOURLY until: #f count: #f interval: 1 bysecond: #f byminute: #f byhour: #f byday: #f bymonthday: #f byyearday: #f byweekno: #f bymonth: #f bysetpos: #f wkst: MO> interval: 1 bysecond: #f byminute: #f byhour: #f byday: #f bymonthday: #f byyearday: #f byweekno: #f bymonth: #f bysetpos: #f wkst: MO>
;; ERR unfulfilled-constraint [-1] doesn't fulfill constraint of type [COUNT], ignoring
(test-end "RRULE parse")
|