aboutsummaryrefslogtreecommitdiff
path: root/tests/vcomponent-control.scm
blob: 1f4d68015d02b4a36396cfb40b7a82898106572c (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
;;; Commentary:
;; Tests that with-replaced-properties work.
;;; Code:

(((vcomponent util control) with-replaced-properties)
 ((vcomponent formats ical parse) parse-calendar)
 ((vcomponent base) prop))



(define ev (call-with-input-string
               "BEGIN:DUMMY
X-KEY:value
END:DUMMY"
             parse-calendar))

;; Test that temoraries are set and restored
(test-equal "value" (prop ev 'X-KEY))
(with-replaced-properties (ev (X-KEY "other"))
                          (test-equal "other" (prop ev 'X-KEY)))
(test-equal "value" (prop ev 'X-KEY))

;; Test that they are restored on non-local exit
(catch #t
  (lambda ()
   (with-replaced-properties (ev (X-KEY "other"))
                             (throw 'any)))
  (lambda _
    (test-equal "value" (prop ev 'X-KEY))))