diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-03-07 15:31:00 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-03-07 20:29:14 +0100 |
commit | f7716ac1a87649cad96242f2d5bf0a987d7f430c (patch) | |
tree | b4b84951ef468fd644c42e9e0fee535d879f0387 /tests/test/vcomponent-control.scm | |
parent | Cleanup in (hnh util path). (diff) | |
download | calp-f7716ac1a87649cad96242f2d5bf0a987d7f430c.tar.gz calp-f7716ac1a87649cad96242f2d5bf0a987d7f430c.tar.xz |
Add new tests.
Diffstat (limited to 'tests/test/vcomponent-control.scm')
-rw-r--r-- | tests/test/vcomponent-control.scm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/test/vcomponent-control.scm b/tests/test/vcomponent-control.scm new file mode 100644 index 00000000..f408c8b4 --- /dev/null +++ b/tests/test/vcomponent-control.scm @@ -0,0 +1,36 @@ +;;; Commentary: +;; Tests that with-replaced-properties work. +;;; Code: + +(define-module (test vcomponent-control) + :use-module (srfi srfi-64) + :use-module (srfi srfi-88) + :use-module ((vcomponent util control) + :select (with-replaced-properties)) + :use-module ((vcomponent formats ical parse) + :select (parse-calendar)) + :use-module ((vcomponent base) :select (prop))) + +(define ev + (call-with-input-string + "BEGIN:DUMMY\nX-KEY:value\nEND: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)))) + + |