4 (luna-define-class test-elmo-util (lunit-test-case))
7 (defvar test-elmo-temoporary-file)
9 (luna-define-method lunit-test-case-setup ((case test-elmo-util))
10 (setq test-elmo-temoporary-file
11 (make-temp-file temporary-file-directory)))
13 (luna-define-method lunit-test-case-teardown ((case test-elmo-util))
14 (when (file-exists-p test-elmo-temoporary-file)
15 (delete-file test-elmo-temoporary-file)))
18 (luna-define-method test-elmo-replace-string-as-filename-1 ((case test-elmo-util))
19 "Revert checking replace and recover."
21 (let ((str "/foo//./../bar/"))
23 (elmo-recover-string-from-filename
24 (elmo-replace-string-as-filename str))))))
28 (luna-define-method test-elmo-object-save-1 ((case test-elmo-util))
29 "Check `print-length' let bindings."
30 (let ((list '(1 2 3 4 5 6 7 8 9 10 11 12))
32 (elmo-object-save test-elmo-temoporary-file list)
35 (elmo-object-load test-elmo-temoporary-file)))))
37 (luna-define-method test-elmo-object-save-2 ((case test-elmo-util))
38 "Check `print-level' let bindings."
39 (let ((list '(1 (2 :foo (nil . :bar))))
41 (elmo-object-save test-elmo-temoporary-file list)
44 (elmo-object-load test-elmo-temoporary-file)))))
46 (luna-define-method test-elmo-save-string-1 ((case test-elmo-util))
50 (luna-define-method test-elmo-uniq-list-1 ((case test-elmo-util))
52 (eq nil (elmo-uniq-list nil)))
54 (equal '(1) (elmo-uniq-list '(1))))
56 (equal '(1) (elmo-uniq-list '(1 1))))
58 (equal '(1) (elmo-uniq-list '(1 1 1)))))
60 (luna-define-method test-elmo-uniq-list-2 ((case test-elmo-util))
62 (equal '(1 2 3 4 5 6 nil)
63 (elmo-uniq-list '(1 2 3 4 1 5 6 nil nil 1 1 2))))
65 (equal '("foo") (elmo-uniq-list '("foo" "foo")))))
67 (luna-define-method test-elmo-uniq-list-3 ((case test-elmo-util))
68 "Check using DELETE-FUNCTION"
70 (equal '("foo" "foo") (elmo-uniq-list '("foo" "foo") #'delq)))
72 (equal '(:foo) (elmo-uniq-list '(:foo :foo) #'delq))))
74 (luna-define-method test-elmo-list-insert-1 ((case test-elmo-util))
77 (elmo-list-insert '(1 2 3 5) 4 3)))
80 (elmo-list-insert '(1 2 3 5) 9 :notfound)))
82 ;;; (equal '(1 2 "3" 5 4)
83 ;;; (elmo-list-insert '(1 2 "3" 5) 4 "3"))
86 (luna-define-method test-elmo-list-insert-2 ((case test-elmo-util))
88 (let* ((list1 '(1 2 3 4 5))
90 (elmo-list-insert list1 4 3)
94 ;;; (equal '(1 2 "3" 5 4)
95 ;;; (elmo-list-insert '(1 2 "3" 5) 4 "3"))
97 (luna-define-method test-elmo-list-diff ((case test-elmo-util))
98 (let ((list1 '(1 2 3))
105 (elmo-list-diff nil nil)))
107 (equal '(nil (3 2 1))
108 (elmo-list-diff nil list1)))
110 (equal '((3 2 1) nil)
111 (elmo-list-diff list1 nil)))
114 (elmo-list-diff list1 list1)))
117 (elmo-list-diff list1 list2)))
120 (elmo-list-diff list1 list3)))
122 (equal '((3 2 1) (6 5 4))
123 (elmo-list-diff list1 list4)))
125 (equal '((2 1) (6 5))
126 (elmo-list-diff list3 list4)))
128 (equal '((2 1) (6 5 3))
129 (elmo-list-diff list3 list5)))))
131 (luna-define-method test-elmo-delete-char-1 ((case test-elmo-util))
133 (string= "f" (elmo-delete-char ?o "foo")))
135 (string= "f\nf" (elmo-delete-char ?o "foo\nfoo")))
137 (string= "" (elmo-delete-char ?o "oo")))
139 (string= "" (elmo-delete-char ?o ""))))
141 (luna-define-method test-elmo-concat-path-1 ((case test-elmo-util))
145 (elmo-concat-path "/home" "foo")))
148 (elmo-concat-path "/home/" "foo")
149 (elmo-concat-path "/home//" "foo"))))
152 (luna-define-method test-elmo-remove-passwd-1 ((case test-elmo-util))
153 "Check shred password."
154 (let* ((password "cGFzc3dk")
155 (elmo-passwd-alist (list (cons "key" password))))
156 (elmo-remove-passwd "key")
158 (string= "\0\0\0\0\0\0\0\0" password))))
160 (luna-define-method test-elmo-remove-passwd-2 ((case test-elmo-util))
161 "Check remove target pair only. Not rassoc."
162 (let ((password "cGFzc3dk")
163 (elmo-passwd-alist '(("foo" . "key")
166 (elmo-remove-passwd "key")
168 (equal '(("foo" . "key")
170 elmo-passwd-alist))))
172 (luna-define-method test-elmo-remove-passwd-3 ((case test-elmo-util))
174 (let ((password "cGFzc3dk")
175 (elmo-passwd-alist '(("foo" . "key")
179 (elmo-remove-passwd "key")
181 (equal '(("foo" . "key")
183 elmo-passwd-alist))))
185 (luna-define-method test-elmo-passwd-alist-clear-1 ((case test-elmo-util))
186 "Check shred ALL password."
187 (let* ((password1 "cGFzc3dk")
188 (password2 (copy-sequence password1))
189 (elmo-passwd-alist (list (cons "key1" password1)
190 (cons "key2" password2))))
191 (elmo-passwd-alist-clear)
193 (string= "\0\0\0\0\0\0\0\0" password1))
195 (string= "\0\0\0\0\0\0\0\0" password2))))
197 (luna-define-method test-elmo-address-quote-specials-1 ((case test-elmo-util))
200 (string= "\"dot.atom.text\""
201 (elmo-address-quote-specials "dot.atom.text")))
204 (elmo-address-quote-specials "..."))))
206 (luna-define-method test-elmo-address-quote-specials-2 ((case test-elmo-util))
210 "atext!#$%&'*+-/=?^_`{|}~"
211 (elmo-address-quote-specials "atext!#$%&'*+-/=?^_`{|}~"))))
213 (luna-define-method test-elmo-elmo-flatten-1 ((case test-elmo-util))
218 (elmo-flatten '(1 2 (3 4 5))))))
220 (luna-define-method test-elmo-number-set-member-1 ((case test-elmo-util))
224 (elmo-number-set-member 1 '((1 . 99)))))
227 (elmo-number-set-member 99 '((1 . 99))))))
229 (luna-define-method test-elmo-number-set-member-2 ((case test-elmo-util))
232 (null (elmo-number-set-member 0 '((1 . 99)))))
234 (null (elmo-number-set-member 100 '((1 . 99))))))
236 (luna-define-method test-elmo-number-set-append-list-1 ((case test-elmo-util))
240 (elmo-number-set-append-list '((1 . 99)) '(100)))))
242 (luna-define-method test-elmo-number-set-append-1 ((case test-elmo-util))
246 (elmo-number-set-append '((1 . 99)) 100))))
248 (luna-define-method test-elmo-number-set-delete-1 ((case test-elmo-util))
252 (elmo-number-set-delete '(1 2 3) 1))))
254 (luna-define-method test-elmo-number-set-delete-2 ((case test-elmo-util))
258 (elmo-number-set-delete '(1 2 3) 2))))
260 (luna-define-method test-elmo-number-set-delete-3 ((case test-elmo-util))
264 (elmo-number-set-delete '(1 2 3) 3))))
266 (luna-define-method test-elmo-number-set-delete-4 ((case test-elmo-util))
270 (elmo-number-set-delete '((1 . 100)) 1))))
272 (luna-define-method test-elmo-number-set-delete-5 ((case test-elmo-util))
275 (equal '(1 (3 . 100))
276 (elmo-number-set-delete '((1 . 100)) 2))))
278 (luna-define-method test-elmo-number-set-delete-6 ((case test-elmo-util))
281 (equal '((1 . 49) (51 . 100))
282 (elmo-number-set-delete '((1 . 100)) 50))))
284 (luna-define-method test-elmo-number-set-delete-7 ((case test-elmo-util))
287 (equal '((1 . 98) 100)
288 (elmo-number-set-delete '((1 . 100)) 99))))
290 (luna-define-method test-elmo-number-set-delete-8 ((case test-elmo-util))
294 (elmo-number-set-delete '((1 . 100)) 100))))
296 (luna-define-method test-elmo-number-set-delete-list-1 ((case test-elmo-util))
300 (elmo-number-set-delete-list '((1 . 100)) '(100)))))
302 (luna-define-method test-elmo-number-set-to-number-list-1 ((case test-elmo-util))
305 (equal '(1 2 3 4 5 6 7 8 9)
306 (elmo-number-set-to-number-list '((1 . 9)))))
309 (elmo-number-set-to-number-list '(1)))))