This commit was manufactured by cvs2svn to create branch 'elmo-imap4-new-
[elisp/wanderlust.git] / tests / test-utf7.el
1 ;; -*- lexical-binding: t -*-
2 (require 'lunit)
3
4 ;; Emacs 21
5 (unless (and (fboundp 'find-coding-system) (find-coding-system 'utf-16))
6   (ignore-errors (require 'un-define)))
7 (require 'utf7)
8
9 ;; Emacs 21.3.50 to 22
10 (when (fboundp 'utf-translate-cjk-mode)
11   (utf-translate-cjk-mode 1))
12
13 (luna-define-class test-utf7 (lunit-test-case))
14
15 (luna-define-method test-utf7-encode-string-nihongo ((case test-utf7))
16   (lunit-assert
17    (string=
18     "+ZeVnLIqe-"
19     (utf7-encode-string
20      (string (make-char 'japanese-jisx0208 70 124)
21              (make-char 'japanese-jisx0208 75 92)
22              (make-char 'japanese-jisx0208 56 108))))))
23
24 (luna-define-method test-utf7-encode-string-smiling-face ((case test-utf7))
25   (lunit-assert
26    (string=
27     "Hi Mom -+Jjo--!"
28     (utf7-encode-string
29      (concat "Hi Mom -"
30              (string (make-char 'mule-unicode-2500-33ff 35 58))
31              "-!")))))
32
33 (luna-define-method test-utf7-encode-string-alpha ((case test-utf7))
34   (lunit-assert
35    (string=
36     "A+ImIDkQ-."
37     (utf7-encode-string
38      (concat "A"
39              (string (make-char 'mule-unicode-0100-24ff 121 34)
40                      (make-char 'mule-unicode-0100-24ff 38 113))
41              ".")))))
42
43 (luna-define-method test-utf7-encode-string-plus ((case test-utf7))
44   (lunit-assert
45    (string= "+-" (utf7-encode-string "+"))))
46
47 (luna-define-method test-utf7-encode-string-noconv ((case test-utf7))
48   (lunit-assert
49    (string= "" (utf7-encode-string "")))
50   (lunit-assert
51    (string= "a" (utf7-encode-string "a")))
52   (lunit-assert
53    (string= "-" (utf7-encode-string "-")))
54   (lunit-assert
55    (string= "=" (utf7-encode-string "="))))
56
57
58 (luna-define-method test-utf7-decode-string-nihongo ((case test-utf7))
59   (lunit-assert
60    (string=
61     (string (make-char 'japanese-jisx0208 70 124)
62             (make-char 'japanese-jisx0208 75 92)
63             (make-char 'japanese-jisx0208 56 108))
64     (utf7-decode-string "+ZeVnLIqe-"))))
65
66 (luna-define-method test-utf7-decode-string-smiling-face ((case test-utf7))
67   (lunit-assert
68    (string=
69     (concat "Hi Mom -"
70             (string (make-char 'mule-unicode-2500-33ff 35 58))
71             "-!")
72     (utf7-decode-string "Hi Mom -+Jjo--!"))))
73
74 (luna-define-method test-utf7-decode-string-alpha ((case test-utf7))
75   (lunit-assert
76    (string=
77     (concat "A"
78             (string (make-char 'mule-unicode-0100-24ff 121 34)
79                     (make-char 'mule-unicode-0100-24ff 38 113))
80             ".")
81     (utf7-decode-string "A+ImIDkQ.")))  ; omit `-'
82   ;;
83   (lunit-assert
84    (string=
85     (concat "A"
86             (string (make-char 'mule-unicode-0100-24ff 121 34)
87                     (make-char 'mule-unicode-0100-24ff 38 113))
88             ".")
89     (utf7-decode-string "A+ImIDkQ-."))))
90
91 (luna-define-method test-utf7-decode-string-plus ((case test-utf7))
92   (lunit-assert
93    (string= "+" (utf7-decode-string "+-")))
94   (lunit-assert
95    (string= "++" (utf7-decode-string "+-+-")))
96   (lunit-assert
97    (string= "+++" (utf7-decode-string "+-+-+-")))
98   (lunit-assert
99    (string= "++++" (utf7-decode-string "+-+-+-+-"))))
100
101 (luna-define-method test-utf7-decode-string-noconv ((case test-utf7))
102   (lunit-assert
103    (string= "" (utf7-decode-string "")))
104   (lunit-assert
105    (string= "a" (utf7-decode-string "a")))
106   (lunit-assert
107    (string= "-" (utf7-decode-string "-")))
108   (lunit-assert
109    (string= "=" (utf7-encode-string "="))))