Added Riece pkg subtree
[packages] / xemacs-packages / 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   (condition-case nil
7       ;; delete-directory has an optional parameter RECURSIVE, since
8       ;; Emacs 23.2.
9       (delete-directory directory t)
10     (wrong-number-of-arguments
11      ;; FIXME: we could use this portable version always, but it
12      ;; doesn't work well with Emacs 23.
13      (let* ((file-name-coding-system 'no-conversion)
14             (files (directory-files directory t nil t)))
15        (while files
16          (if (file-directory-p (car files))
17              (unless (member (file-name-nondirectory (car files)) '("." ".."))
18                (test-riece-log-delete-directory (car files)))
19            (delete-file (car files)))
20          (setq files (cdr files)))
21        (delete-directory directory)))))
22
23 (luna-define-method lunit-test-case-setup ((case test-riece-log))
24   (setq riece-log-directory
25         (expand-file-name (make-temp-name "test-riece-log")
26                            (if (featurep 'xemacs)
27                                (temp-directory)
28                              temporary-file-directory))
29         test-riece-log-directory
30         (expand-file-name "=23riece" riece-log-directory))
31   (make-directory riece-log-directory)
32   (make-directory test-riece-log-directory)
33   (write-region "03:14 <test> a b c\n03:15 <test> a b c\n" nil
34                 (expand-file-name "19700102.txt" test-riece-log-directory)
35                 t 0)
36   (write-region "03:14 <test> 1 2 3\n" nil
37                 (expand-file-name "19700101.txt" test-riece-log-directory)
38                 t 0))
39
40 (luna-define-method lunit-test-case-teardown ((case test-riece-log))
41   (test-riece-log-delete-directory riece-log-directory))
42
43 (luna-define-method test-riece-log-insert-1 ((case test-riece-log))
44   (let (riece-log-directory-map)
45     (lunit-assert-2
46      case
47      (equal
48       (concat "03:14 <test> 1 2 3 (1970/01/01)\n"
49               "03:14 <test> a b c (1970/01/02)\n"
50               "03:15 <test> a b c (1970/01/02)\n")
51       (with-temp-buffer
52         (riece-log-insert (riece-make-identity "#riece" "") 3)
53         (buffer-string))))))
54
55 (luna-define-method test-riece-log-insert-2 ((case test-riece-log))
56   (let (riece-log-directory-map)
57     (lunit-assert-2
58      case
59      (equal ""
60             (with-temp-buffer
61               (riece-log-insert (riece-make-identity "#riece" "") t)
62               (buffer-string))))))
63
64 (luna-define-method test-riece-log-encode-file-name ((case test-riece-log))
65   (let (riece-log-file-name-coding-system)
66     (lunit-assert-2
67      case
68      (equal "=23riece"
69             (riece-log-encode-file-name "#riece")))
70     (lunit-assert-2
71      case
72      (equal "=23riece=3A=2A=2Ejp"
73             (riece-log-encode-file-name "#riece:*.jp")))
74     (lunit-assert-2
75      case
76      (equal "=23riece=="
77             (riece-log-encode-file-name "#riece=")))))
78
79 (luna-define-method test-riece-log-encode-file-name-mule
80   ((case test-riece-log))
81   (let ((riece-log-file-name-coding-system 'iso-8859-1))
82     (lunit-assert-2
83      case
84      (equal "=23\xABriece\xBB"
85             (riece-log-encode-file-name
86              (format "#%criece%c"
87                      (make-char 'latin-iso8859-1 43)
88                      (make-char 'latin-iso8859-1 59))))))
89   (let ((riece-log-file-name-coding-system 'iso-2022-jp))
90     (lunit-assert-2
91      case
92      (equal "=23=1B=24B=24j=21=3C=249=1B=28B"
93             (riece-log-encode-file-name
94              (format "#%c%c%c"
95                     (make-char 'japanese-jisx0208 36 106)
96                     (make-char 'japanese-jisx0208 33 60)
97                     (make-char 'japanese-jisx0208 36 57)))))))
98
99 (luna-define-method test-riece-log-decode-file-name ((case test-riece-log))
100   (let (riece-log-file-name-coding-system)
101     (lunit-assert-2
102      case
103      (equal "#riece"
104             (riece-log-decode-file-name "=23riece")))
105     (lunit-assert-2
106      case
107      (equal "#riece:*.jp"
108             (riece-log-decode-file-name "=23riece=3A=2A=2Ejp")))
109     (lunit-assert-2
110      case
111      (equal "#riece="
112             (riece-log-decode-file-name "=23riece==")))))
113
114 (luna-define-method test-riece-log-decode-file-name-mule
115   ((case test-riece-log))
116   (let ((riece-log-file-name-coding-system 'iso-8859-1))
117     (lunit-assert-2
118      case
119      (equal (format "#%criece%c"
120                      (make-char 'latin-iso8859-1 43)
121                      (make-char 'latin-iso8859-1 59))
122             (riece-log-decode-file-name
123              "=23\xABriece\xBB"))))
124   (let ((riece-log-file-name-coding-system 'iso-2022-jp))
125     (lunit-assert-2
126      case
127      (equal (format "#%c%c%c"
128                     (make-char 'japanese-jisx0208 36 106)
129                     (make-char 'japanese-jisx0208 33 60)
130                     (make-char 'japanese-jisx0208 36 57))
131             (riece-log-decode-file-name
132              "=23=1B=24B=24j=21=3C=249=1B=28B")))))
133
134 (luna-define-method test-riece-log-display-message-function
135   ((case test-riece-log))
136   (let ((riece-log-file-name-coding-system 'euc-jp)
137         (riece-log-enabled t)
138         riece-log-directory-map
139         (riece-server-process-alist
140          (list (cons "" (start-process "" (current-buffer) "true")))))
141     (put 'riece-log 'riece-addon-enabled t)
142     (riece-log-display-message-function
143      (riece-make-message
144       (riece-make-identity "ueno" "")
145       (riece-make-identity (format "#%c%c%c"
146                                    (make-char 'japanese-jisx0208 36 106)
147                                    (make-char 'japanese-jisx0208 33 60)
148                                    (make-char 'japanese-jisx0208 36 57))
149                            "")
150       "a b c\n" nil t))
151     (put 'riece-log 'riece-addon-enabled nil))
152   (let ((file-name-coding-system 'no-conversion))
153     (lunit-assert-2
154      case
155      (file-directory-p
156       (expand-file-name
157        (encode-coding-string
158         (format "=23%c%c%c"
159                 (make-char 'japanese-jisx0208 36 106)
160                 (make-char 'japanese-jisx0208 33 60)
161                 (make-char 'japanese-jisx0208 36 57))
162         'euc-jp)
163        riece-log-directory)))))