Fix last change.
[elisp/wanderlust.git] / tests / test-elmo-util.el
1 (require 'lunit)
2 (require 'elmo-util)
3
4
5 (luna-define-class test-elmo-util (lunit-test-case))
6
7 ;; setup & teardown
8 (defvar test-elmo-temoporary-file)
9
10 (luna-define-method lunit-test-case-setup ((case test-elmo-util))
11   (setq print-length 1
12         print-level 1)
13   (setq case-fold-search nil)
14   (setq test-elmo-temoporary-file
15         (make-temp-file temporary-file-directory)))
16
17 (luna-define-method lunit-test-case-teardown ((case test-elmo-util))
18   (setq print-length nil
19         print-level nil)
20   (when (file-exists-p test-elmo-temoporary-file)
21     (delete-file test-elmo-temoporary-file)))
22
23
24 (luna-define-method test-elmo-replace-string-as-filename-1 ((case test-elmo-util))
25   (lunit-assert
26    (let ((str "/foo//./../bar/"))
27      (string= str
28               (elmo-recover-string-from-filename
29                (elmo-replace-string-as-filename str))))))
30
31
32 ;; object save & load
33 (luna-define-method test-elmo-object-save-1 ((case test-elmo-util))
34   (let ((list '(1 2 3 4 5 6 7 8 9 10 11 12)))
35     (elmo-object-save test-elmo-temoporary-file list)
36     (lunit-assert
37      (equal list
38             (elmo-object-load test-elmo-temoporary-file)))))
39
40 (luna-define-method test-elmo-object-save-2 ((case test-elmo-util))
41   (let ((list '(1 (2 :foo (nil . :bar)))))
42     (elmo-object-save test-elmo-temoporary-file list)
43     (lunit-assert
44      (equal list
45             (elmo-object-load test-elmo-temoporary-file)))))
46
47 (luna-define-method test-elmo-save-string-1 ((case test-elmo-util))
48   )
49
50 ;; list functions
51 (luna-define-method test-elmo-uniq-list-1 ((case test-elmo-util))
52   (lunit-assert
53    (eq nil (elmo-uniq-list nil)))
54   (lunit-assert
55    (equal '(1) (elmo-uniq-list '(1))))
56   (lunit-assert
57    (equal '(1) (elmo-uniq-list '(1 1))))
58   (lunit-assert
59    (equal '(1) (elmo-uniq-list '(1 1 1)))))
60
61 (luna-define-method test-elmo-uniq-list-2 ((case test-elmo-util))
62   (lunit-assert
63    (equal '(1 2 3 4 5 6 nil)
64           (elmo-uniq-list '(1 2 3 4 1 5 6 nil nil 1 1 2))))
65   (lunit-assert
66    (equal '("foo") (elmo-uniq-list '("foo" "foo")))))
67
68 (luna-define-method test-elmo-uniq-list-delq ((case test-elmo-util))
69   (lunit-assert
70    (equal '("foo" "foo") (elmo-uniq-list '("foo" "foo") #'delq)))
71   (lunit-assert
72    (equal '(:foo) (elmo-uniq-list '(:foo :foo) #'delq))))
73
74 (luna-define-method test-elmo-list-insert-1 ((case test-elmo-util))
75   (lunit-assert
76    (equal '(1 2 3 4 5)
77           (elmo-list-insert '(1 2 3 5) 4 3)))
78   (lunit-assert
79    (equal '(1 2 3 5 9)
80           (elmo-list-insert '(1 2 3 5) 9 :notfound)))
81 ;;; memq vs. member
82 ;;;   (equal '(1 2 "3" 5 4)
83 ;;;       (elmo-list-insert '(1 2 "3" 5) 4 "3"))
84    )
85
86 (luna-define-method test-elmo-list-insert-2 ((case test-elmo-util))
87   (let* ((list1 '(1 2 3 4 5))
88          (list2 list1))
89     (elmo-list-insert list1 4 3)
90     (lunit-assert
91      (eq list1 list2))))
92 ;;; memq vs. member
93 ;;;   (equal '(1 2 "3" 5 4)
94 ;;;       (elmo-list-insert '(1 2 "3" 5) 4 "3"))
95
96 (luna-define-method test-elmo-delete-char-1 ((case test-elmo-util))
97   (lunit-assert
98    (string= "f" (elmo-delete-char ?o "foo")))
99   (lunit-assert
100    (string= "f\nf" (elmo-delete-char ?o "foo\nfoo")))
101   (lunit-assert
102    (string= "" (elmo-delete-char ?o  "oo")))
103   (lunit-assert
104    (string= "" (elmo-delete-char ?o  ""))))
105
106 (luna-define-method test-elmo-concat-path-1 ((case test-elmo-util))
107   (lunit-assert
108    (string=
109     "/home/foo"
110     (elmo-concat-path "/home" "foo")))
111   (lunit-assert
112    (string=
113     (elmo-concat-path "/home/" "foo")
114     (elmo-concat-path "/home//" "foo"))))
115
116
117 (luna-define-method test-elmo-remove-passwd-1 ((case test-elmo-util))
118   (let* ((password "cGFzc3dk")
119          (elmo-passwd-alist (list (cons "key" password))))
120     (elmo-remove-passwd "key")
121     (lunit-assert
122      (string= "\0\0\0\0\0\0\0\0" password))
123     (lunit-assert
124      (null elmo-passwd-alist))))