* test/test-riece-log.el
[riece] / lisp / test / test-riece-log.el
1 (require 'riece-log)
2
3 (luna-define-class test-riece-log (lunit-test-case))
4
5 (defun test-riece-log-delete-directory (directory)
6   (let ((files (directory-files directory t nil t)))
7     (while files
8       (if (file-directory-p (car files))
9           (unless (member (file-name-nondirectory (car files)) '("." ".."))
10             (test-riece-log-delete-directory (car files)))
11         (delete-file (car files)))
12       (setq files (cdr files)))
13     (delete-directory directory)))
14
15 (luna-define-method lunit-test-case-setup ((case test-riece-log))
16   (setq riece-log-directory
17         (expand-file-name (make-temp-name "test-riece-log")
18                            (if (featurep 'xemacs)
19                                (temp-directory)
20                              temporary-file-directory))
21         test-riece-log-directory
22         (expand-file-name "=23riece" riece-log-directory))
23   (make-directory riece-log-directory)
24   (make-directory test-riece-log-directory)
25   (write-region "03:14 <test> a b c\n03:15 <test> a b c\n" nil
26                 (expand-file-name "20380119.txt" test-riece-log-directory)
27                 t 0)
28   (write-region "03:14 <test> 1 2 3\n" nil
29                 (expand-file-name "20380118.txt" test-riece-log-directory)
30                 t 0))
31
32 (luna-define-method lunit-test-case-teardown ((case test-riece-log))
33   (test-riece-log-delete-directory riece-log-directory))
34
35 (luna-define-method test-riece-log-insert-1 ((case test-riece-log))
36   (let (riece-log-directory-map)
37     (lunit-assert-2
38      case
39      (equal
40       (concat "03:14 <test> 1 2 3 (2038/01/18)\n"
41               "03:14 <test> a b c (2038/01/19)\n"
42               "03:15 <test> a b c (2038/01/19)\n")
43       (with-temp-buffer
44         (riece-log-insert (riece-make-identity "#riece" "") 3)
45         (buffer-string))))))
46
47 (luna-define-method test-riece-log-insert-2 ((case test-riece-log))
48   (let (riece-log-directory-map)
49     (lunit-assert-2
50      case
51      (equal ""
52             (with-temp-buffer
53               (riece-log-insert (riece-make-identity "#riece" "") t)
54               (buffer-string))))))
55
56 (luna-define-method test-riece-log-encode-file-name ((case test-riece-log))
57   (let (riece-log-file-name-coding-system)
58     (lunit-assert-2
59      case
60      (equal "=23riece"
61             (riece-log-encode-file-name "#riece")))
62     (lunit-assert-2
63      case
64      (equal "=23riece=3A=2A=2Ejp"
65             (riece-log-encode-file-name "#riece:*.jp")))
66     (lunit-assert-2
67      case
68      (equal "=23riece=="
69             (riece-log-encode-file-name "#riece=")))))
70
71 (luna-define-method test-riece-log-encode-file-name-mule
72   ((case test-riece-log))
73   (let ((riece-log-file-name-coding-system 'iso-8859-1))
74     (lunit-assert-2
75      case
76      (equal "=23\xABriece\xBB"
77             (riece-log-encode-file-name
78              (format "#%criece%c"
79                      (make-char 'latin-iso8859-1 43)
80                      (make-char 'latin-iso8859-1 59))))))
81   (let ((riece-log-file-name-coding-system 'iso-2022-jp))
82     (lunit-assert-2
83      case
84      (equal "=23=1B=24B=24j=21=3C=249=1B=28B"
85             (riece-log-encode-file-name
86              (format "#%c%c%c"
87                     (make-char 'japanese-jisx0208 36 106)
88                     (make-char 'japanese-jisx0208 33 60)
89                     (make-char 'japanese-jisx0208 36 57)))))))
90
91 (luna-define-method test-riece-log-decode-file-name ((case test-riece-log))
92   (let (riece-log-file-name-coding-system)
93     (lunit-assert-2
94      case
95      (equal "#riece"
96             (riece-log-decode-file-name "=23riece")))
97     (lunit-assert-2
98      case
99      (equal "#riece:*.jp"
100             (riece-log-decode-file-name "=23riece=3A=2A=2Ejp")))
101     (lunit-assert-2
102      case
103      (equal "#riece="
104             (riece-log-decode-file-name "=23riece==")))))
105
106 (luna-define-method test-riece-log-decode-file-name-mule
107   ((case test-riece-log))
108   (let ((riece-log-file-name-coding-system 'iso-8859-1))
109     (lunit-assert-2
110      case
111      (equal (format "#%criece%c"
112                      (make-char 'latin-iso8859-1 43)
113                      (make-char 'latin-iso8859-1 59))
114             (riece-log-decode-file-name
115              "=23\xABriece\xBB"))))
116   (let ((riece-log-file-name-coding-system 'iso-2022-jp))
117     (lunit-assert-2
118      case
119      (equal (format "#%c%c%c"
120                     (make-char 'japanese-jisx0208 36 106)
121                     (make-char 'japanese-jisx0208 33 60)
122                     (make-char 'japanese-jisx0208 36 57))
123             (riece-log-decode-file-name
124              "=23=1B=24B=24j=21=3C=249=1B=28B")))))
125
126 (luna-define-method test-riece-log-display-message-function
127   ((case test-riece-log))
128   (let ((riece-log-file-name-coding-system 'euc-jp)
129         (riece-log-enabled t)
130         riece-log-directory-map
131         (riece-server-process-alist
132          (list (cons "" (start-process "" (current-buffer) "sleep" "10")))))
133     (riece-log-display-message-function
134      (riece-make-message
135       (riece-make-identity "ueno" "")
136       (riece-make-identity (format "#%c%c%c"
137                                    (make-char 'japanese-jisx0208 36 106)
138                                    (make-char 'japanese-jisx0208 33 60)
139                                    (make-char 'japanese-jisx0208 36 57))
140                            "")
141       "a b c\n" nil t)))
142   (let (file-name-coding-system)
143     (lunit-assert-2
144      case
145      (file-directory-p
146       (expand-file-name
147        (encode-coding-string
148         (format "=23%c%c%c"
149                 (make-char 'japanese-jisx0208 36 106)
150                 (make-char 'japanese-jisx0208 33 60)
151                 (make-char 'japanese-jisx0208 36 57))
152         'euc-jp)
153        riece-log-directory)))))