root/lang/gauche/oldtype/branches/stable/src/test.scm @ 13637

Revision 13637, 18.8 kB (checked in by kiyoka, 5 years ago)

Released 0.2.5

Line 
1;; -*- coding: utf-8 -*-
2(use srfi-1)
3(use sxml.tools)
4(use sxml.serializer)
5(use text.html-lite)
6(use text.tree)
7(use gauche.charconv)
8(use oldtype.parse)
9(use oldtype.format)
10(use oldtype.util)
11(use oldtype.log)
12(use oldtype.timeline)
13(use oldtype.page)
14(use oldtype.core)
15(use gauche.test)                                                     
16
17
18;; Main -------------------------------------------------------
19(define (main args)
20  (let* (
21         (_ (cdr args))
22         (input-file (first _))
23         (log-file   (second _))
24         (ann-file   (third _))
25         (converted-str
26          (port->string
27           (open-input-conversion-port
28            (open-input-file input-file)
29            "*JP")))
30
31         ;; Making string port from stdin/file
32         ;;
33         (input-port
34          (open-input-string converted-str)))
35    (let ((oldtype-page #f)
36          (oldtype-timeline #f))
37
38      (test-start "serialize,deserialize")
39
40      (test-section "oldtype-timeline")
41      (let1 oldtype-timeline
42            (parse (make <oldtype-timeline> :name "Test") log-file ann-file)
43            (let* ((serialized     (serialize oldtype-timeline))
44                   (deserialized   (deserialize (make <oldtype-timeline>) serialized)))
45              (test "serialized == DATA        "
46                    '((name . "Test") (revision . 13317)
47                      (log
48                       (13334 (revision . 13334) (committer . kiyoka) (utc . 1212756234) (rank . 5))
49                       (13317 (revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
50                       (13306 (revision . 13306) (committer . kiyoka) (utc . 1212676363) (rank . 5))
51                       (13304 (revision . 13304) (committer . kiyoka) (utc . 1212675369) (rank . 4))
52                       (13242 (revision . 13242) (committer . kiyoka) (utc . 1212594143) (rank . 5))
53                       (13237 (revision . 13237) (committer . kiyoka) (utc . 1212592559) (rank . 5))
54                       (13233 (revision . 13233) (committer . kiyoka) (utc . 1212591037) (rank . 5))
55                       (13224 (revision . 13224) (committer . kiyoka) (utc . 1212584569) (rank . 5))
56                       (13223 (revision . 13223) (committer . kiyoka) (utc . 1212584402) (rank . 5))
57                       (13080 (revision . 13080) (committer . kiyoka) (utc . 1212407693) (rank . 5))
58                       (13032 (revision . 13032) (committer . kiyoka) (utc . 1212334026) (rank . 5))
59                       (13023 (revision . 13023) (committer . kiyoka) (utc . 1212331805) (rank . 5))
60                       (12471 (revision . 12471) (committer . kiyoka) (utc . 1211813046) (rank . 5))
61                       (12460 (revision . 12460) (committer . kiyoka) (utc . 1211806608) (rank . 5))
62                       (12356 (revision . 12356) (committer . kiyoka) (utc . 1211721110) (rank . 5))
63                       (12293 (revision . 12293) (committer . kiyoka) (utc . 1211642182) (rank . 5))
64                       (12266 (revision . 12266) (committer . kiyoka) (utc . 1211601688) (rank . 5))
65                       (11607 (revision . 11607) (committer . kiyoka) (utc . 1210777124) (rank . 5))
66                       (11606 (revision . 11606) (committer . kiyoka) (utc . 1210777098) (rank . 5))
67                       (11603 (revision . 11603) (committer . kiyoka) (utc . 1210774733) (rank . 5))
68                       (11245 (revision . 11245) (committer . kiyoka) (utc . 1210161037) (rank . 5))
69                       (10961 (revision . 10961) (committer . kiyoka) (utc . 1209740697) (rank . 5))
70                       (10957 (revision . 10957) (committer . kiyoka) (utc . 1209737179) (rank . 5))
71                       (10149 (revision . 10149) (committer . kiyoka) (utc . 1208864713) (rank . 5))
72                       (10146 (revision . 10146) (committer . kiyoka) (utc . 1208862687) (rank . 5))
73                       (10084 (revision . 10084) (committer . kiyoka) (utc . 1208784928) (rank . 5))
74                       (10014 (revision . 10014) (committer . kiyoka) (utc . 1208695655) (rank . 5))
75                       (9977 (revision . 9977) (committer . kiyoka) (utc . 1208667401) (rank . 5))
76                       (9976 (revision . 9976) (committer . kiyoka) (utc . 1208667383) (rank . 5))
77                       (9952 (revision . 9952) (committer . kiyoka) (utc . 1208652380) (rank . 5))
78                       (9948 (revision . 9948) (committer . kiyoka) (utc . 1208650871) (rank . 5))
79                       (9924 (revision . 9924) (committer . kiyoka) (utc . 1208619757) (rank . 5))
80                       (9903 (revision . 9903) (committer . kiyoka) (utc . 1208606479) (rank . 5))
81                       (9585 (revision . 9585) (committer . kiyoka) (utc . 1208348091) (rank . 5))
82                       (9583 (revision . 9583) (committer . kiyoka) (utc . 1208346288) (rank . 5))
83                       (8962 (revision . 8962) (committer . kiyoka) (utc . 1207444336) (rank . 5))
84                       (8676 (revision . 8676) (committer . kiyoka) (utc . 1207141582) (rank . 5))
85                       (8607 (revision . 8607) (committer . kiyoka) (utc . 1207051192) (rank . 5))
86                       (8569 (revision . 8569) (committer . kiyoka) (utc . 1206968180) (rank . 5))
87                       (8342 (revision . 8342) (committer . kiyoka) (utc . 1206360044) (rank . 5))
88                       (8263 (revision . 8263) (committer . kiyoka) (utc . 1206115042) (rank . 5))
89                       (8254 (revision . 8254) (committer . kiyoka) (utc . 1206097354) (rank . 5))
90                       (8212 (revision . 8212) (committer . kiyoka) (utc . 1206027766) (rank . 5))
91                       (8211 (revision . 8211) (committer . kiyoka) (utc . 1206027177) (rank . 5))
92                       (8208 (revision . 8208) (committer . kiyoka) (utc . 1206016615) (rank . 5))
93                       (8205 (revision . 8205) (committer . kiyoka) (utc . 1206012635) (rank . 5))
94                       (8091 (revision . 8091) (committer . kiyoka) (utc . 1205842976) (rank . 5))
95                       (7924 (revision . 7924) (committer . kiyoka) (utc . 1205421544) (rank . 5))
96                       (7920 (revision . 7920) (committer . kiyoka) (utc . 1205419584) (rank . 5))
97                       (7919 (revision . 7919) (committer . kiyoka) (utc . 1205418381) (rank . 5))
98                       (7870 (revision . 7870) (committer . kiyoka) (utc . 1205336331) (rank . 5))
99                       (7811 (revision . 7811) (committer . kiyoka) (utc . 1205239814) (rank . 5)))
100                      (annotation
101                       ((revision . 8208) (committer . kiyoka) (utc . 1206016615) (rank . 5))
102                       ((revision . 13304) (committer . kiyoka) (utc . 1212675369) (rank . 4))
103                       ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
104                       ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
105                       ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
106                       ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3)))
107                      (text "* UnitTest用のサンプルファイル" "----" "*** start" "*** [[Entry1]]" "*** [[Entry2]]" "*** end")
108                      (distribution
109                       (8208 1)
110                       (13317 6 5 4 3)
111                       (13304 2)))
112                    (lambda () (serialize deserialized)))
113              (test "serialized == deserialized" serialized (lambda () (serialize deserialized)))))
114
115      (test-section "oldtype-page")
116      (set! oldtype-page (parse (make <oldtype-page> :name "Test") input-port log-file ann-file))
117      (let1 serialized     (serialize oldtype-page)
118            (test "serialized == DATA        "
119                  '((name . "Test")
120                    (sxml
121                     (div
122                      ((lineno . 1))
123                      (h2 "UnitTest用のサンプルファイル" "\n"))
124                     (div
125                      ((lineno . 2))
126                      (hr))
127                     (div
128                      ((lineno . 3))
129                      (h4 "start" "\n"))
130                     (div
131                      ((lineno . 4))
132                      (h4
133                       (wiki-name "Entry1") "\n"))
134                     (div
135                      ((lineno . 5))
136                      (h4
137                       (wiki-name "Entry2") "\n"))
138                     (div
139                      ((lineno . 6))
140                      (h4 "end" "\n")))
141                    (timeline (name . "Test") (revision . 13317)
142                              (log
143                               (13334 (revision . 13334) (committer . kiyoka) (utc . 1212756234) (rank . 5))
144                               (13317 (revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
145                               (13306 (revision . 13306) (committer . kiyoka) (utc . 1212676363) (rank . 5))
146                               (13304 (revision . 13304) (committer . kiyoka) (utc . 1212675369) (rank . 4))
147                               (13242 (revision . 13242) (committer . kiyoka) (utc . 1212594143) (rank . 5))
148                               (13237 (revision . 13237) (committer . kiyoka) (utc . 1212592559) (rank . 5))
149                               (13233 (revision . 13233) (committer . kiyoka) (utc . 1212591037) (rank . 5))
150                               (13224 (revision . 13224) (committer . kiyoka) (utc . 1212584569) (rank . 5))
151                               (13223 (revision . 13223) (committer . kiyoka) (utc . 1212584402) (rank . 5))
152                               (13080 (revision . 13080) (committer . kiyoka) (utc . 1212407693) (rank . 5))
153                               (13032 (revision . 13032) (committer . kiyoka) (utc . 1212334026) (rank . 5))
154                               (13023 (revision . 13023) (committer . kiyoka) (utc . 1212331805) (rank . 5))
155                               (12471 (revision . 12471) (committer . kiyoka) (utc . 1211813046) (rank . 5))
156                               (12460 (revision . 12460) (committer . kiyoka) (utc . 1211806608) (rank . 5))
157                               (12356 (revision . 12356) (committer . kiyoka) (utc . 1211721110) (rank . 5))
158                               (12293 (revision . 12293) (committer . kiyoka) (utc . 1211642182) (rank . 5))
159                               (12266 (revision . 12266) (committer . kiyoka) (utc . 1211601688) (rank . 5))
160                               (11607 (revision . 11607) (committer . kiyoka) (utc . 1210777124) (rank . 5))
161                               (11606 (revision . 11606) (committer . kiyoka) (utc . 1210777098) (rank . 5))
162                               (11603 (revision . 11603) (committer . kiyoka) (utc . 1210774733) (rank . 5))
163                               (11245 (revision . 11245) (committer . kiyoka) (utc . 1210161037) (rank . 5))
164                               (10961 (revision . 10961) (committer . kiyoka) (utc . 1209740697) (rank . 5))
165                               (10957 (revision . 10957) (committer . kiyoka) (utc . 1209737179) (rank . 5))
166                               (10149 (revision . 10149) (committer . kiyoka) (utc . 1208864713) (rank . 5))
167                               (10146 (revision . 10146) (committer . kiyoka) (utc . 1208862687) (rank . 5))
168                               (10084 (revision . 10084) (committer . kiyoka) (utc . 1208784928) (rank . 5))
169                               (10014 (revision . 10014) (committer . kiyoka) (utc . 1208695655) (rank . 5))
170                               (9977 (revision . 9977) (committer . kiyoka) (utc . 1208667401) (rank . 5))
171                               (9976 (revision . 9976) (committer . kiyoka) (utc . 1208667383) (rank . 5))
172                               (9952 (revision . 9952) (committer . kiyoka) (utc . 1208652380) (rank . 5))
173                               (9948 (revision . 9948) (committer . kiyoka) (utc . 1208650871) (rank . 5))
174                               (9924 (revision . 9924) (committer . kiyoka) (utc . 1208619757) (rank . 5))
175                               (9903 (revision . 9903) (committer . kiyoka) (utc . 1208606479) (rank . 5))
176                               (9585 (revision . 9585) (committer . kiyoka) (utc . 1208348091) (rank . 5))
177                               (9583 (revision . 9583) (committer . kiyoka) (utc . 1208346288) (rank . 5))
178                               (8962 (revision . 8962) (committer . kiyoka) (utc . 1207444336) (rank . 5))
179                               (8676 (revision . 8676) (committer . kiyoka) (utc . 1207141582) (rank . 5))
180                               (8607 (revision . 8607) (committer . kiyoka) (utc . 1207051192) (rank . 5))
181                               (8569 (revision . 8569) (committer . kiyoka) (utc . 1206968180) (rank . 5))
182                               (8342 (revision . 8342) (committer . kiyoka) (utc . 1206360044) (rank . 5))
183                               (8263 (revision . 8263) (committer . kiyoka) (utc . 1206115042) (rank . 5))
184                               (8254 (revision . 8254) (committer . kiyoka) (utc . 1206097354) (rank . 5))
185                               (8212 (revision . 8212) (committer . kiyoka) (utc . 1206027766) (rank . 5))
186                               (8211 (revision . 8211) (committer . kiyoka) (utc . 1206027177) (rank . 5))
187                               (8208 (revision . 8208) (committer . kiyoka) (utc . 1206016615) (rank . 5))
188                               (8205 (revision . 8205) (committer . kiyoka) (utc . 1206012635) (rank . 5))
189                               (8091 (revision . 8091) (committer . kiyoka) (utc . 1205842976) (rank . 5))
190                               (7924 (revision . 7924) (committer . kiyoka) (utc . 1205421544) (rank . 5))
191                               (7920 (revision . 7920) (committer . kiyoka) (utc . 1205419584) (rank . 5))
192                               (7919 (revision . 7919) (committer . kiyoka) (utc . 1205418381) (rank . 5))
193                               (7870 (revision . 7870) (committer . kiyoka) (utc . 1205336331) (rank . 5))
194                               (7811 (revision . 7811) (committer . kiyoka) (utc . 1205239814) (rank . 5)))
195                              (annotation
196                               ((revision . 8208) (committer . kiyoka) (utc . 1206016615) (rank . 5))
197                               ((revision . 13304) (committer . kiyoka) (utc . 1212675369) (rank . 4))
198                               ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
199                               ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
200                               ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3))
201                               ((revision . 13317) (committer . kiyoka) (utc . 1212711085) (rank . 3)))
202                              (text "* UnitTest用のサンプルファイル" "----" "*** start" "*** [[Entry1]]" "*** [[Entry2]]" "*** end")
203                              (distribution
204                               (8208 1)
205                               (13317 6 5 4 3)
206                               (13304 2))))
207                  (lambda () (serialize oldtype-page)))
208
209            (test "serialized == deserialized" serialized (lambda ()
210                                                            (serialize
211                                                             (deserialize
212                                                              (make <oldtype-page>)
213                                                              serialized)))))
214      (test-end)
215
216
217      (test-start "oldtype-page util method")
218     
219      (test-section "oldtype-timeline")
220      (set! oldtype-timeline (timeline-of oldtype-page))
221      (test "log of lineno 1"
222            '((revision . 8208) (committer . kiyoka) (utc . 1206016615) (rank . 5))
223            (lambda ()
224              (serialize (log-by-lineno oldtype-timeline 1))))
225
226      (test "ago string of lineno 1 <oldtype-timeline>"
227            "  (2 months ago)"
228            (lambda ()
229              (get-ago (log-by-lineno oldtype-timeline 1))))
230      (test "ago string of lineno 1 <oldtype-page>"
231            "  (2 months ago)"
232            (lambda ()
233              (get-ago oldtype-page 1)))
234     
235      (test "date string of lineno 1 <oldtype-timeline>"
236            "2008-03-20 21:36 (+0900)"
237            (lambda ()
238              (get-date (log-by-lineno oldtype-timeline 1))))
239      (test "date string of lineno 1 <oldtype-page>"
240            "2008-03-20 21:36 (+0900)"
241            (lambda ()
242              (get-date oldtype-page 1)))
243
244      (test "rank value of lineno 1 <oldtype-timeline>"
245            5
246            (lambda ()
247              (rank-by-lineno oldtype-timeline 1)))
248      (test "rank value of lineno 2 <oldtype-timeline>"
249            4
250            (lambda ()
251              (rank-by-lineno oldtype-timeline 2)))
252
253      (test "date,ago,rank,committer of lineno 1 <oldtype-page>"
254            '((date  . "2008-03-20 21:36 (+0900)")
255              (ago   . "  (2 months ago)")
256              (rank  . 5)
257              (committer . "kiyoka"))
258            (lambda ()
259              `(
260                (date      . ,(get-date      oldtype-page 1))
261                (ago       . ,(get-ago       oldtype-page 1))
262                (rank      . ,(get-rank      oldtype-page 1))
263                (committer . ,(get-committer oldtype-page 1)))))
264
265      (test "text of lineno 1 <oldtype-page>"
266            "* UnitTest用のサンプルファイル"
267            (lambda ()
268              (get-text oldtype-page 1)))
269     
270      (test "text of lineno 2 <oldtype-page>"
271            "----"
272            (lambda ()
273              (get-text oldtype-page 2)))
274
275      (test "rank-list of <oldtype-page>"
276            '(5 4 3 3 3 3)
277            (lambda ()
278              (get-rank-list oldtype-page)))
279
280     
281      (test-end)
282
283      (test-start "generating RSS")
284     
285      (test "wikiname list for RSS"
286            '((4 . "Entry1") (5 . "Entry2"))
287            (lambda ()
288              (get-rss-entry-pages oldtype-page)))
289
290      (test "oldtype-page list for RSS"
291            '(("Entry1" "Entry1の1行目" ((revision . 13304) (committer . kiyoka) (utc . 1212675369) (rank . 5)))
292              ("Entry2" "Entry2の1行目" ((revision . 13334) (committer . kiyoka) (utc . 1212756234) (rank . 4))))
293            (lambda ()
294              (map
295               (lambda (x)
296                 (let* ((page (oldtype:load-page "" (cdr x)))
297                        (timeline (timeline-of page)))
298                   `(
299                     ,(name-of page)
300                     ,(car (get-text-list page))
301                     ,(serialize
302                       (get-latest-log timeline)))))
303               (get-rss-entry-pages oldtype-page))))
304
305      (test "lines of latest revision in Test.ot"
306            '(6 5 4 3)
307            (lambda ()
308              (get-latest-lines oldtype-timeline)))
309
310      (test "The page that doesn't have RSS data."
311            '()
312            (lambda ()
313              (get-rss-entry-pages
314               (oldtype:load-page "" "Entry1"))))
315
316      (test-end)
317
318      )))
Note: See TracBrowser for help on using the browser.