blob: ebd0b1ff7b176cf413d2def33fbf31f312cf043c (
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
;;; Commentary:
;; Test base functionallity of vcomponent structures.
;;; Code:
(define-module (test vcomponent)
:use-module (srfi srfi-17)
:use-module (srfi srfi-64)
:use-module (srfi srfi-88)
:use-module (hnh util table)
:use-module (datetime)
:use-module (vcomponent base))
(define ev
(prop (vcomponent type: 'DUMMY)
'X-KEY "value"))
(test-eqv "Non-existant properties return #f"
#f (prop ev 'MISSING))
(test-assert "Existing property is non-false"
(prop ev 'X-KEY))
(test-equal "Getting value of existing property"
"value" (prop ev 'X-KEY))
(define calendar (add-child (vcomponent type: 'VCALENDAR)
ev))
(test-equal 1 (length (children calendar)))
;;; TODO remove child
;; (abandon! calendar ev)
;; (test-equal 0 (length (children calendar)))
(define vline*
(vline
key: 'DTSTART
vline-value: (date year: 2020 month: 01 day: 02)
vline-parameters: (alist->table
'((VALUE . "DATE")))
vline-source: "DTSTART;VALUE=DATE:2020-01-02"))
(test-group "vline"
(test-assert "Type check works as expected"
(vline? vline*)))
(define vcomponent*
(vcomponent type: 'VEVENT))
(test-assert "Type check works as expected"
(vcomponent? vcomponent*))
(define child
(vcomponent type: 'CHILD))
(test-eqv
"An added component extends length"
1 (length (children (add-child vcomponent* child))))
(test-eqv
"But the source isn't modified"
0 (length (children vcomponent*)))
(test-equal "Setting property"
(list (list 'KEY (vline key: 'KEY vline-value: "Value")))
(properties
(prop vcomponent* 'KEY "Value")))
(let ((vl (vline key: 'KEY vline-value: "Value")))
(test-equal "Setting property vline"
(list (list 'KEY vl))
(properties
(prop* vcomponent* 'KEY vl))))
(test-equal "Set properties test"
'(K1 K2)
(map car
(properties
(apply set-properties
vcomponent*
`((K1 . "V1")
(K2 . "V2"))))))
;; remove-property
;; extract extract*
;; remove-parameter
;; value
;; param
;; parameters
;; properties
;; x-property?
;; internal-field?
'((vcomponent base))
|