* test-dist.el (test-elmo-modules-trailing-whitespace)
[elisp/wanderlust.git] / tests / test-dist.el
1 (require 'lunit)
2 (require 'wl)
3 (require 'cl)                           ; mapc
4
5 (luna-define-class test-dist (lunit-test-case))
6
7 ;; WL-MODULES
8 (luna-define-method test-wl-modules-exists ((case test-dist))
9   (lunit-assert
10    (null
11     (let (filename lost)
12       (mapc
13        (lambda (module)
14          (setq filename (concat (symbol-name module) ".el"))
15          (unless (file-exists-p (expand-file-name filename WLDIR))
16            (add-to-list 'lost filename)))
17        WL-MODULES)
18       lost))))
19
20 (luna-define-method test-wl-modules-trailing-whitespace ((case test-dist))
21   (let (filename badmodule)
22     (mapc
23      (lambda (module)
24        (setq filename
25              (format "%s.el%s" (symbol-name module)
26                      (if (eq 'wl-news module) ".in" "")))
27        (with-temp-buffer
28          (insert-file-contents (expand-file-name filename WLDIR))
29          (when (re-search-forward "[ \t]$" nil t)
30            (add-to-list 'badmodule filename))))
31      WL-MODULES)
32     (lunit-assert (null badmodule))))
33
34
35 ;; ELMO-MODULES
36 (luna-define-method test-elmo-modules-exists ((case test-dist))
37   (lunit-assert
38    (null
39     (let (filename lost)
40       (mapc
41        (lambda (module)
42          (setq filename (concat (symbol-name module) ".el"))
43          (unless (file-exists-p (expand-file-name filename ELMODIR))
44            (add-to-list 'lost filename)))
45        ELMO-MODULES)
46       lost))))
47
48 (luna-define-method test-elmo-modules-trailing-whitespace ((case test-dist))
49   (let (filename badmodule)
50     (mapc
51      (lambda (module)
52        (setq filename (format "%s.el" (symbol-name module)))
53        (with-temp-buffer
54          (insert-file-contents (expand-file-name filename ELMODIR))
55          (when (re-search-forward "[ \t]$" nil t)
56            (add-to-list 'badmodule filename))))
57      ELMO-MODULES)
58     (lunit-assert (null badmodule))))
59
60
61 ;; UTILS-MODULES
62 (luna-define-method test-util-modules-exists ((case test-dist))
63   (lunit-assert
64    (null
65     (let (filename lost)
66       (mapc
67        (lambda (module)
68          (setq filename (concat (symbol-name module) ".el"))
69          (unless (file-exists-p (expand-file-name filename UTILSDIR))
70            (add-to-list 'lost symbol)))
71        UTILS-MODULES)
72       lost))))
73
74 (luna-define-method test-util-modules-trailing-whitespace ((case test-dist))
75   (let (filename badmodule)
76     (mapc
77      (lambda (module)
78        (setq filename (format "%s.el" (symbol-name module)))
79        (with-temp-buffer
80          (insert-file-contents (expand-file-name filename UTILSDIR))
81          (when (re-search-forward "[ \t]$" nil t)
82            (add-to-list 'badmodule filename))))
83      UTILS-MODULES)
84     (lunit-assert (null badmodule))))
85
86
87 ;; Icons
88 (luna-define-method test-wl-icon-exists ((case test-dist))
89   (lunit-assert
90    (null
91     (let (name value lost)
92       (mapatoms
93        (lambda (symbol)
94          (setq name (symbol-name symbol))
95          (setq value (and (boundp symbol) (symbol-value symbol)))
96          (when (and (string-match "^wl-.*-icon$" name)
97                     (stringp value)
98                     (string-match "xpm$" value))
99            (unless (file-exists-p (expand-file-name value ICONDIR))
100              (add-to-list 'lost symbol)))))
101       lost))))
102
103 (luna-define-method test-version-status-icon-xpm ((case test-dist))
104   (require 'wl-demo)
105   (lunit-assert
106    (file-exists-p
107     (expand-file-name (concat (wl-demo-icon-name) ".xpm") ICONDIR))))
108
109 (luna-define-method test-version-status-icon-xbm ((case test-dist))
110   (require 'wl-demo)
111   (lunit-assert
112    (file-exists-p
113     (expand-file-name (concat (wl-demo-icon-name) ".xbm") ICONDIR))))
114
115 ;; verstion.texi
116 (luna-define-method test-texi-version ((case test-dist))
117   (require 'wl-version)
118   (lunit-assert
119    (string=
120     (product-version-string (product-find 'wl-version))
121     (with-temp-buffer
122       (insert-file-contents (expand-file-name "version.texi" DOCDIR))
123       (re-search-forward "^@set VERSION \\([0-9\.]+\\)$")
124       (match-string 1)))))
125
126 ;; version.tex
127 (luna-define-method test-refcard-version ((case test-dist))
128   (require 'wl-version)
129   (lunit-assert
130    (string=
131     (product-version-string (product-find 'wl-version))
132     (with-temp-buffer
133       (insert-file-contents (expand-file-name "version.tex" DOCDIR))
134       (re-search-forward "^\\\\def\\\\versionnumber{\\([0-9\.]+\\)}$")
135       (match-string 1)))))
136
137 ;; wl/ChangeLog
138 (luna-define-method test-version-wl-changelog ((case test-dist))
139   (require 'wl-version)
140   (lunit-assert
141    (string=
142     (product-version-string (product-find 'wl-version))
143     (with-temp-buffer
144       (insert-file-contents (expand-file-name "ChangeLog" WLDIR))
145       (re-search-forward
146        "^\t\\* Version number is increased to \\([0-9\\.]+[0-9]\\).$")
147       (match-string 1)))))
148
149 ;; elmo/ChangeLog
150 (luna-define-method test-version-elmo-changelog ((case test-dist))
151   (require 'elmo-version)
152   (lunit-assert
153    (string=
154     (product-version-string (product-find 'elmo-version))
155     (with-temp-buffer
156       (insert-file-contents (expand-file-name "ChangeLog" ELMODIR))
157       (re-search-forward
158        "^\t\\* elmo-version.el (elmo-version): Up to \\([0-9\\.]+[0-9]\\).$")
159       (match-string 1)))))
160
161 ;; ChangeLog (toplevel)
162 (luna-define-method test-version-toplevel-changelog ((case test-dist))
163   (require 'wl-version)
164   (when (and (string= (wl-version-status) "stable")
165              ;; pre release version don't check.
166              (not (string-match
167                    "pre"
168                    (product-code-name (product-find 'wl-version)))))
169     (with-temp-buffer
170       (insert-file-contents (expand-file-name "ChangeLog" "./"))
171       (re-search-forward
172        "^\t\\* \\([0-9\\.]+\\) - \"\\([^\"]+\\)\"$")
173       (lunit-assert
174        (string=
175         (product-version-string (product-find 'wl-version))
176         (match-string 1)))
177       (lunit-assert
178        (string=
179         (product-code-name (product-find 'wl-version))
180         (match-string 2))))))
181
182 ;; README, README.ja (toplevel)
183 (luna-define-method test-version-readme ((case test-dist))
184   (require 'wl-version)
185   (when (string= (wl-version-status) "stable")
186     (mapc
187      (lambda (file)
188        (with-temp-buffer
189          (insert-file-contents (expand-file-name file "./"))
190          (re-search-forward "checkout -r wl-\\([0-9]+\\)_\\([0-9]+\\) wanderlust")
191          (lunit-assert
192           (= (string-to-number (match-string 1))
193              (nth 0 (product-version (product-find 'wl-version)))))
194          (lunit-assert
195           (= (string-to-number (match-string 2))
196              (nth 1 (product-version (product-find 'wl-version)))))))
197      '("README" "README.ja"))))
198
199 ;; copyright notice
200 (luna-define-method test-wl-demo-copyright-notice ((case test-dist))
201   (require 'wl-demo)
202   (lunit-assert
203    (string-match
204     (format-time-string "%Y" (current-time))
205     wl-demo-copyright-notice)))