]>
diplodocus.org Git - nmh/blob - test/mhlist/test-mhlist
2 ######################################################
6 ######################################################
10 if test -z "${MH_OBJ_DIR}"; then
11 srcdir
=`dirname $0`/..
/..
12 MH_OBJ_DIR
=`cd $srcdir && pwd`; export MH_OBJ_DIR
15 .
"$MH_OBJ_DIR/test/common.sh"
19 check_exit
'-eq 1' mhlist
-
21 expected
=$MH_TEST_DIR/$$.expected
22 actual
=$MH_TEST_DIR/$$.actual
25 start_test
'with no options and no current message'
26 run_test
'mhlist' 'mhlist: no cur message'
28 start_test
'with no options and current message'
29 folder
+inbox
5 > /dev
/null
31 msg part type/subtype size description
34 run_prog mhlist
> $actual 2>&1
35 check
$expected $actual 'keep first'
37 start_test
'-noheaders'
38 run_test
'mhlist 5 -noheaders' ' 5 text/plain 25'
41 run_prog mhlist
-noheaders -headers > $actual 2>&1
42 check
$expected $actual 'keep first'
44 start_test
'with folder and current message'
45 run_prog mhlist
+inbox
> $actual 2>&1
46 check
$expected $actual 'keep first'
48 start_test
'with specified message'
49 run_prog mhlist
5 > $actual 2>&1
50 check
$expected $actual 'keep first'
53 run_prog mhlist
-file "$MH_TEST_DIR/Mail/inbox/5" > $actual 2>&1
54 check
$expected $actual
58 msg part type/subtype size description
61 run_prog mhlist
-file - < "$MH_TEST_DIR/Mail/inbox/5" > $actual 2>&1
62 check
$expected $actual
64 start_test
'message with no blank line separating the headers from the body.'
65 # Shouldn't make a difference to the size of the body part.
66 # Bug meant no-blank-line case was one bigger by including the `\n'
67 # ending the last header.
68 f
=$MH_TEST_DIR/$$.blank
75 sed '/^$/d' $f-yes >$f-no
76 run_prog mhlist
-file $f-yes >$actual-yes
77 run_prog mhlist
-file $f-no >$actual-no
78 check
$actual-yes $actual-no
81 start_test
'message number greater than highest'
82 run_test
'mhlist 11' "mhlist: message 11 doesn't exist"
84 start_test
'multiple messages'
86 msg part type/subtype size description
90 run_prog mhlist
2 8 > $actual 2>&1
91 check
$expected $actual
93 # Write message with a text/plain subpart.
96 To: recipient@example.com
97 From: sender@example.com
100 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
102 ------- =_aaaaaaaaaa0
103 Content-Type: multipart/related;
104 type="multipart/alternative";
105 boundary="subpart__1.1"
108 Content-Type: text/plain; charset="iso-8859-1"
109 Content-Disposition: attachment; filename="test1"
111 This is the first text/plain part, in a subpart.
115 ------- =_aaaaaaaaaa0
116 Content-Type: text/plain; charset="iso-8859-1"
117 Content-Disposition: attachment; filename="test2"
118 Content-MD5: kq+Hnc2SD/eKwAnkFBDuEA==
119 Content-Transfer-Encoding: quoted-printable
121 This is the second text/plain part.
123 ------- =_aaaaaaaaaa0
124 Content-Type: text/plain; charset="iso-8859-1"; name="test3"
125 Content-Disposition: attachment; filename="test3"
127 This is the third text/plain part.
129 ------- =_aaaaaaaaaa0
130 Content-Type: text/plain; charset="iso-8859-1"
131 Content-Disposition: attachment; filename="test4"
132 Content-Transfer-Encoding: base64
134 VGhpcyBpcyB0aGUgZm91cnRoIHRleHQvcGxhaW4gcGFydC4K
136 ------- =_aaaaaaaaaa0--
140 run_test
'mhlist last -part 3 -noheader' \
141 ' 11 multipart/mixed 936
142 1 multipart/related 180
145 start_test
'-part of a subpart'
146 run_test
'mhlist last -part 1.1 -noheader' \
147 ' 11 multipart/mixed 936
148 1 multipart/related 180
152 run_test
'mhlist last -type text/plain -noheader' \
153 ' 11 multipart/mixed 936
154 1 multipart/related 180
160 start_test
'-norealsize'
161 run_test
'mhlist last -part 4 -noheader -norealsize' \
162 ' 11 multipart/mixed 936
163 1 multipart/related 180
166 start_test
'-realsize, the default'
167 run_test
'mhlist last -part 4 -noheader -norealsize -realsize' \
168 ' 11 multipart/mixed 936
169 1 multipart/related 180
173 # Set the cur sequence to 1 to test default behavior of changecur after
177 mark
1 -sequence cur
-add -zero
179 start_test
'-verbose'
180 run_test
'mhlist 11 -verbose -noheader' \
181 ' 11 multipart/mixed 936
182 boundary="----- =_aaaaaaaaaa0"
183 1 multipart/related 180
184 type="multipart/alternative"
185 boundary="subpart__1.1"
194 charset="iso-8859-1"'
197 start_test
'default changecur behavior'
200 run_test
'mark -sequence cur -list' 'cur: 11'
203 # Now test -nochangecur
206 mhlist
-nochangecur 1 >/dev
/null
208 run_test
'mark -sequence cur -list' 'cur: 11'
210 start_test
'MIME parser and m_getfld'
211 cat > $expected <<EOF
212 msg part type/subtype size description
213 12 multipart/related 204
214 1 multipart/alternative 74
220 msgnum
=`basename $msgfile`
222 To: recipient@example.com, recipient@example.com, recipient@example.com,
223 recipient@example.com, recipient@example.com, recipient@example.com,
224 recipient@example.com, recipient@example.com, recipient@example.com,
225 recipient@example.com, recipient@example.com, recipient@example.com,
226 recipient@example.com, recipient@example.com, recipient@example.com,
227 recipient@example.com, recipient@example.com, recipient@example.com,
228 recipient@example.com, recipient@example.com, recipient@example.com,
229 recipient@example.com, recipient@example.com, recipient@example.com,
230 recipient@example.com, recipient@example.com, recipient@example.com,
231 recipient@example.com, recipient@example.com, recipient@example.com,
232 recipient@example.com, recipient@example.com, recipient@example.com,
233 recipient@example.com, recipient@example.com, recipient@example.com,
234 recipient@example.com, recipient@example.com, recipient@example.com,
235 recipient@example.com, recipient@example.com, recipient@example.com,
236 recipient@example.com, recipient@example.com, recipient@example.com,
237 recipient@example.com, recipient@example.com, recipient@example.com,
238 recipient@example.com, recipient@example.com, recipient@example.com,
239 recipient@example.com, recipient@example.com, recipient@example.com,
240 recipient@example.com, recipient@example.com, recipient@example.com,
241 recipient@example.com, recipient@example.com, recipient@example.com,
242 recipient@example.com, recipient@example.com, recipient@example.com,
243 recipient@example.com, recipient@example.com, recipient@example.com,
244 recipient@example.com, recipient@example.com, recipient@example.com,
245 recipient@example.com, recipient@example.com, recipient@example.com,
246 recipient@example.com, recipient@example.com, recipient@example.com,
247 recipient@example.com, recipient@example.com, recipient@example.com,
248 recipient@example.com, recipient@example.com, recipient@example.com,
249 recipient@example.com, recipient@example.com, recipient@example.com,
250 recipient@example.com, recipient@example.com, recipient@example.com,
251 recipient@example.com, recipient@example.com, recipient@example.com,
252 recipient@example.com, recipient@example.com, recipient@example.com,
253 recipient@example.com, recipient@example.com, recipient@example.com,
254 recipient@example.com, recipient@example.com, recipient@example.com,
255 recipient@example.com, recipient@example.com, recipient@example.com,
256 recipient@example.com, recipient@example.com, recipient@example.com,
257 recipient@example.com, recipient@example.com, recipient@example.com,
258 recipient@example.com, recipient@example.com, recipient@example.com,
259 recipient@example.com, recipient@example.com, recipient@example.com,
260 recipient@example.com, recipient@example.com, recipient@example.com,
261 recipient@example.com, recipient@example.com, recipient@example.com,
262 recipient@example.com, recipient@example.com, recipient@example.com,
263 recipient@example.com, recipient@example.com, recipient@example.com,
264 recipient@example.com, recipient@example.com, recipient@example.com,
265 recipient@example.com, recipient@example.com, recipient@example.com,
266 recipient@example.com, recipient@example.com, recipient@example.com,
267 recipient@example.com, recipient@example.com, recipient@example.com,
268 recipient@example.com, recipient@example.com, recipient@example.com,
269 recipient@example.com, recipient@example.com, recipient@example.com,
270 recipient@example.com, recipient@example.com, recipient@example.com,
271 recipient@example.com, recipient@example.com, recipient@example.com,
272 recipient@example.com, recipient@example.com, recipient@example.com,
273 recipient@example.com, recipient@example.com, recipient@example.com,
274 recipient@example.com, recipient@example.com, recipient@example.com,
275 recipient@example.com, recipient@example.com, recipient@example.com,
276 recipient@example.com, recipient@example.com, recipient@example.com,
277 recipient@example.com, recipient@example.com, recipient@example.com,
278 recipient@example.com, recipient@example.com, recipient@example.com,
279 recipient@example.com, recipient@example.com, recipient@example.com,
280 recipient@example.com, recipient@example.com, recipient@example.com,
281 recipient@example.com, recipient@example.com, recipient@example.com,
282 recipient@example.com, recipient@example.com, recipient@example.com,
283 recipient@example.com, recipient@example.com, recipient@example.com,
284 recipient@example.com, recipient@example.com, recipient@example.com,
285 recipient@example.com, recipient@example.com, recipient@example.com,
286 recipient@example.com, recipient@example.com, recipient@example.com,
287 recipient@example.com, recipient@example.com, recipient@example.com,
288 recipient@example.com, recipient@example.com, recipient@example.com,
289 recipient@example.com, recipient@example.com, recipient@example.com,
290 recipient@example.com, recipient@example.com, recipient@example.com,
291 recipient@example.com, recipient@example.com, recipient@example.com,
292 recipient@example.com, recipient@example.com, recipient@example.com,
293 recipient@example.com, recipient@example.com, recipient@example.com,
294 recipient@example.com, recipient@example.com, recipient@example.com,
295 recipient@example.com, recipient@example.com, recipient@example.com,
296 recipient@example.com, recipient@example.com, recipient@example.com,
297 recipient@example.com, recipient@example.com, recipient@example.com,
298 recipient@example.com, recipient@example.com, recipient@example.com,
299 recipient@example.com, recipient@example.com, recipient@example.com,
300 recipient@example.com, recipient@example.com, recipient@example.com,
301 recipient@example.com, recipient@example.com, recipient@example.com,
302 recipient@example.com, recipient@example.com, recipient@example.com,
303 recipient@example.com, recipient@example.com, recipient@example.com,
304 recipient@example.com, recipient@example.com, recipient@example.com,
305 recipient@example.com, recipient@example.com, recipient@example.com,
306 recipient@example.com, recipient@example.com, recipient@example.com,
307 recipient@example.com, recipient@example.com, recipient@example.com,
308 recipient@example.com, recipient@example.com, recipient@example.com,
309 recipient@example.com, recipient@example.com, recipient@example.com,
310 recipient@example.com, recipient@example.com, recipient@example.com,
311 recipient@example.com, recipient@example.com, recipient@example.com,
312 recipient@example.com, recipient@example.com, recipient@example.com,
313 recipient@example.com, recipient@example.com, recipient@example.com,
314 recipient@example.com, recipient@example.com, recipient@example.com,
315 recipient@example.com, recipient@example.com, recipient@example.com,
316 recipient@example.com, recipient@example.com, recipient@example.com,
317 recipient@example.com, recipient@example.com, recipient@example.com,
318 recipient@example.com, recipient@example.com, recipient@example.com,
319 recipient@example.com, recipient@example.com, recipient@example.com,
320 recipient@example.com, recipient@example.com, recipient@example.com,
321 recipient@example.com, recipient@example.com, recipient@example.com,
322 recipient@example.com, recipient@example.com, recipient@example.com,
323 recipient@example.com, recipient@example.com, recipient@example.com,
324 recipient@example.com, recipient@example.com, recipient@example.com,
325 recipient@example.com, recipient@example.com, recipient@example.com,
326 recipient@example.com, recipient@example.com, recipient@example.com,
327 recipient@example.com, recipient@example.com, recipient@example.com,
328 recipient@example.com, recipient@example.com, recipient@example.com,
329 recipient@example.com, recipient@example.com, recipient@example.com,
330 recipient@example.com, recipient@example.com, recipient@example.com,
331 recipient@example.com, recipient@example.com, recipient@example.com,
332 recipient@example.com, recipient@example.com, recipient@example.com,
333 recipient@example.com, recipient@example.com, recipient@example.com,
335 From: sender@example.com
336 Subject: very long header
337 Date: Wed, 4 Dec 2013 21:12:00 -0500
339 Content-Type: multipart/related; boundary="1"
342 Content-Type: multipart/alternative; boundary="2"
345 Content-Type: text/plain; charset="us-ascii"
353 Content-Type: text/plain; charset="us-ascii"
361 run_prog mhlist last
> $actual 2>&1
362 check
$expected $actual
364 ## now check mhlist output
367 msgnum
=`basename $msgfile`
369 To: example@example.org
370 From: someone <someone@example.com>
372 Date: Thu, 29 Jan 2015 18:12:21 +0000 (GMT)
373 Content-Type: multipart/mixed; boundary="BoundaryMixed"
376 Content-type: multipart/alternative;
377 boundary="BoundaryAlternative1"
379 --BoundaryAlternative1
380 Content-type: text/enriched; CHARSET=US-ASCII
381 Content-transfer-encoding: 7bit
383 This is supposedly enriched.
385 --BoundaryAlternative1
386 Content-type: text/plain; charset=ISO-8859-1; format=flowed
387 Content-transfer-encoding: 8bit
389 This is the body text/plain part.
391 --BoundaryAlternative1
392 Content-type: text/html; CHARSET=US-ASCII
393 Content-transfer-encoding: 7bit
395 <html><body><div><span style="line-height: 1.5;">
396 This is the text/html body part.
397 </span></div></body></html>
399 --BoundaryAlternative1--
402 Content-type: multipart/alternative;
403 boundary="BoundaryAlternative2"
405 --BoundaryAlternative2
406 Content-type: audio/wav
407 Content-transfer-encoding: 8bit
411 --BoundaryAlternative2
412 Content-type: audio/mp3
413 Content-transfer-encoding: 8bit
417 --BoundaryAlternative2
418 Content-type: audio/basic
419 Content-transfer-encoding: 8bit
423 --BoundaryAlternative2--
428 # Write the expected output.
429 cat > $expected <<EOF
430 msg part type/subtype size description
431 13 multipart/mixed 1038
432 1 multipart/alternative 518
436 2 multipart/alternative 326
442 start_test
'vanilla output'
443 run_prog mhlist
$msgnum > $actual 2>&1
444 check
"$expected" "$actual"
446 # Write the expected output.
447 cat > $expected <<EOF
448 msg part type/subtype size description
449 13 multipart/mixed 1038
450 1 multipart/alternative 518
454 2 multipart/alternative 326
457 start_test
'just part 1'
458 run_prog mhlist
-part 1 $msgnum > $actual 2>&1
459 check
"$expected" "$actual"
461 # Write the expected output.
462 cat > $expected <<EOF
463 msg part type/subtype size description
464 13 multipart/mixed 1038
465 1 multipart/alternative 518
466 2 multipart/alternative 326
469 start_test
'ask for audio/basic in part 1, should get nothing'
470 run_prog mhlist
-part 1 -type audio
/basic
$msgnum > $actual 2>&1
471 check
"$expected" "$actual"
473 # Write the expected output.
474 cat > $expected <<EOF
475 msg part type/subtype size description
476 13 multipart/mixed 1038
477 1 multipart/alternative 518
481 2 multipart/alternative 326
487 start_test
'bump plain and wav to the top of their parts'
488 run_prog mhlist
-prefer text
/plain
-prefer audio
/wav
$msgnum > $actual 2>&1
489 check
"$expected" "$actual"
491 # Write the expected output.
492 cat > $expected <<EOF
493 msg part type/subtype size description
494 13 multipart/mixed 1038
495 1 multipart/alternative 518
499 2 multipart/alternative 326
505 start_test
'bump plain and enriched to the top. add a bogus type as well.'
506 run_prog mhlist
-prefer foo
/bar
-prefer text
/plain
-prefer text
/enriched
$msgnum > $actual 2>&1
507 check
"$expected" "$actual"