]> diplodocus.org Git - nmh/blob - test/mhshow/test-textcharset
Generalized %{charset} display string escape to any Content-Type
[nmh] / test / mhshow / test-textcharset
1 #!/bin/sh
2 ##########################################################
3 #
4 # Test display of text/plain parts with charset conversion
5 #
6 ##########################################################
7
8 set -e
9
10 if test -z "${MH_OBJ_DIR}"; then
11 srcdir=`dirname "$0"`/../..
12 MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
13 fi
14
15 . "$MH_OBJ_DIR/test/common.sh"
16
17 setup_test
18
19 if test "$ICONV_ENABLED" -eq 0; then
20 test_skip 'test-textcharset requires that nmh have been built with iconv'
21 fi
22
23 LC_ALL=en_US.UTF-8; export LC_ALL
24
25 expected="$MH_TEST_DIR"/$$.expected
26 actual="$MH_TEST_DIR"/$$.actual
27
28 # check charset conversion
29 msgfile=`mhpath new`
30 cat >"$msgfile" <<'EOF'
31 From: foo@example.edu
32 To: bar@example.edu
33 Subject: test display with charset conversion
34 MIME-Version: 1.0
35 Content-Type: text/plain; charset=windows-1252
36 Content-Transfer-Encoding: quoted-printable
37 Date: Sun, 18 Dec 2005 00:52:39 +0100
38
39 4 =F7 2 =3D 2
40 EOF
41
42 cat >"$expected" <<'EOF'
43 Date: Sun, 18 Dec 2005 00:52:39 +0100
44 To: bar@example.edu
45 From: foo@example.edu
46 Subject: test display with charset conversion
47
48 MIME-Version: 1.0
49
50 part text/plain 10
51 4 รท 2 = 2
52 EOF
53
54 run_prog mhshow -nopause last >"$actual" 2>&1
55 check "$expected" "$actual"
56
57 cat >>"$MH" <<'EOF'
58 mhshow-show-text/plain: echo %{charset}
59 EOF
60
61 # check expansion of %{charset} by itself
62 msgfile=`mhpath new`
63 cat >"$msgfile" <<'EOF'
64 From: foo@example.edu
65 To: bar@example.edu
66 Subject: test display with %{charset} expansion
67 MIME-Version: 1.0
68 Content-Type: text/plain; charset=windows-1252
69 Content-Transfer-Encoding: quoted-printable
70 Date: Sun, 18 Dec 2005 00:52:39 +0100
71
72 4 =F7 2 =3D 2
73 EOF
74
75 cat >"$expected" <<'EOF'
76 Date: Sun, 18 Dec 2005 00:52:39 +0100
77 To: bar@example.edu
78 From: foo@example.edu
79 Subject: test display with %{charset} expansion
80
81 MIME-Version: 1.0
82
83 windows-1252
84 EOF
85
86 run_prog mhshow -nopause last >"$actual" 2>&1
87 check "$expected" "$actual"
88
89 # check expansion of empty %{charset} by itself
90 msgfile=`mhpath new`
91 cat >"$msgfile" <<'EOF'
92 From: foo@example.edu
93 To: bar@example.edu
94 Subject: test display with empty %{charset} expansion
95 MIME-Version: 1.0
96 Content-Type: text/plain
97 Content-Transfer-Encoding: quoted-printable
98 Date: Sun, 18 Dec 2005 00:52:39 +0100
99
100 4 =F7 2 =3D 2
101 EOF
102
103 cat >"$expected" <<'EOF'
104 Date: Sun, 18 Dec 2005 00:52:39 +0100
105 To: bar@example.edu
106 From: foo@example.edu
107 Subject: test display with empty %{charset} expansion
108
109 MIME-Version: 1.0
110
111
112 EOF
113
114 run_prog mhshow -nopause last >"$actual" 2>&1
115 check "$expected" "$actual"
116
117 grep -v 'mhshow-show-text/plain:' "$MH" >"$MH.new"
118 mv -f "$MH.new" "$MH"
119 cat >>"$MH" <<'EOF'
120 mhshow-show-text/plain: charset=%{charset}; echo ${charset:+-I $charset}
121 EOF
122
123 # check expansion of embedded %{charset} with no text following
124 cat >"$expected" <<'EOF'
125 Date: Sun, 18 Dec 2005 00:52:39 +0100
126 To: bar@example.edu
127 From: foo@example.edu
128 Subject: test display with %{charset} expansion
129
130 MIME-Version: 1.0
131
132 -I windows-1252
133 EOF
134
135 run_prog mhshow -nopause prev >"$actual" 2>&1
136 check "$expected" "$actual"
137
138 # check expansion of empty embedded %{charset} with no text following
139 cat >"$expected" <<'EOF'
140 Date: Sun, 18 Dec 2005 00:52:39 +0100
141 To: bar@example.edu
142 From: foo@example.edu
143 Subject: test display with empty %{charset} expansion
144
145 MIME-Version: 1.0
146
147
148 EOF
149
150 run_prog mhshow -nopause last >"$actual" 2>&1
151 check "$expected" "$actual"
152
153 sed -e 's%\(mhshow-show-text/plain:.*\)%\1 file%' "$MH" >"$MH.new"
154 mv -f "$MH.new" "$MH"
155
156 # check expansion of embedded %{charset} with text following
157 cat >"$expected" <<'EOF'
158 Date: Sun, 18 Dec 2005 00:52:39 +0100
159 To: bar@example.edu
160 From: foo@example.edu
161 Subject: test display with %{charset} expansion
162
163 MIME-Version: 1.0
164
165 -I windows-1252 file
166 EOF
167
168 run_prog mhshow -nopause prev >"$actual" 2>&1
169 check "$expected" "$actual"
170
171 # check expansion of empty embedded %{charset} with text following
172 cat >"$expected" <<'EOF'
173 Date: Sun, 18 Dec 2005 00:52:39 +0100
174 To: bar@example.edu
175 From: foo@example.edu
176 Subject: test display with empty %{charset} expansion
177
178 MIME-Version: 1.0
179
180 file
181 EOF
182
183 run_prog mhshow -nopause last >"$actual" 2>&1
184 check "$expected" "$actual"
185
186 sed -e 's/charset/method/g' "$MH" >"$MH.new"
187 mv -f "$MH.new" "$MH"
188
189 # check parameter value quoting
190 msgfile=`mhpath new`
191 cat >"$msgfile" <<'EOF'
192 From: foo@example.edu
193 To: bar@example.edu
194 Subject: test C-T parameter expansion quoting
195 MIME-Version: 1.0
196 Content-Type: text/plain; method=$QUOTEME'
197 Content-Transfer-Encoding: quoted-printable
198 Date: Sun, 18 Dec 2005 00:52:39 +0100
199
200 4 =F7 2 =3D 2
201 EOF
202
203 cat >"$expected" <<'EOF'
204 Date: Sun, 18 Dec 2005 00:52:39 +0100
205 To: bar@example.edu
206 From: foo@example.edu
207 Subject: test C-T parameter expansion quoting
208
209 MIME-Version: 1.0
210
211 -I $QUOTEME' file
212 EOF
213
214 run_prog mhshow -nopause last >"$actual" 2>&1
215 check "$expected" "$actual"
216
217 sed -e 's/method/unknown/g' "$MH" >"$MH.new"
218 mv -f "$MH.new" "$MH"
219
220 # check that unknown parameter is not expanded
221 msgfile=`mhpath new`
222 cat >"$msgfile" <<'EOF'
223 From: foo@example.edu
224 To: bar@example.edu
225 Subject: test display with unknown C-T parameter expansion
226 MIME-Version: 1.0
227 Content-Type: text/plain; charset=windows-1252
228 Content-Transfer-Encoding: quoted-printable
229 Date: Sun, 18 Dec 2005 00:52:39 +0100
230
231 4 =F7 2 =3D 2
232 EOF
233
234 cat >"$expected" <<'EOF'
235 Date: Sun, 18 Dec 2005 00:52:39 +0100
236 To: bar@example.edu
237 From: foo@example.edu
238 Subject: test display with unknown C-T parameter expansion
239
240 MIME-Version: 1.0
241
242 file
243 EOF
244
245 run_prog mhshow -nopause last >"$actual" 2>&1
246 check "$expected" "$actual"
247
248
249 exit $failed