Rework in the test framework; updated and new tests
[mmh] / test / tests / folder / test-sortm
1 #!/bin/sh
2 ######################################################
3 #
4 # Test sortm
5 #
6 ######################################################
7
8 . "$MH_TEST_COMMON"
9
10
11 expected=$MH_TEST_DIR/$$.expected
12 actual=$MH_TEST_DIR/$$.actual
13
14 cd "$MH_TEST_DIR"
15
16 runandcheck "sortm -help" <<!
17 Usage: sortm [+folder] [msgs] [switches]
18   switches are:
19   -datefield field
20   -textfield field
21   -(no)textfield
22   -limit days
23   -(no)limit
24   -[no]verbose
25   -Version
26   -help
27 !
28
29
30 cat >$MH_TEST_DIR/Mail/inbox/11 <<EOF || exit 1
31 From: Test11 <test11@example.com>
32 To: Some User <user@example.com>
33 Date: Fri, 29 Sep 2006 00:00:01
34 Alt-Date: Thu,  1 Sep 2005 00:00:00
35 Subject: Re: common subject
36
37 This is message number 11
38 EOF
39
40 cat >$MH_TEST_DIR/Mail/inbox/12 <<EOF || exit 1
41 From: Test12 <test12@example.com>
42 To: Some User <user@example.com>
43 Date: Thu, 28 Sep 2006 23:59:59
44 Alt-Date: Sat, 30 Sep 2006 00:00:00
45 Subject: common subject
46
47 This is message number 12
48 EOF
49
50
51
52 # check with no options
53
54 runandcheck sortm <<!
55 !
56 runandcheck scan <<!
57    1  2006-09-28 23:59  Test12             common subject
58    2  2006-09-29 00:00  Test1              Testing message 1
59    3  2006-09-29 00:00  Test2              Testing message 2
60    4  2006-09-29 00:00  Test3              Testing message 3
61    5  2006-09-29 00:00  Test4              Testing message 4
62    6  2006-09-29 00:00  Test5              Testing message 5
63    7  2006-09-29 00:00  Test6              Testing message 6
64    8  2006-09-29 00:00  Test7              Testing message 7
65    9  2006-09-29 00:00  Test8              Testing message 8
66   10  2006-09-29 00:00  Test9              Testing message 9
67   11  2006-09-29 00:00  Test10             Testing message 10
68   12  2006-09-29 00:00  Test11             Re: common subject
69 !
70
71
72
73 # check +folder
74
75 refile f +inbox
76 folder -pack >/dev/null
77
78 runandcheck "sortm +inbox" <<!
79 !
80 runandcheck "scan" <<!
81    1  2006-09-28 23:59  Test12             common subject
82    2  2006-09-29 00:00  Test1              Testing message 1
83    3  2006-09-29 00:00  Test2              Testing message 2
84    4  2006-09-29 00:00  Test3              Testing message 3
85    5  2006-09-29 00:00  Test4              Testing message 4
86    6  2006-09-29 00:00  Test5              Testing message 5
87    7  2006-09-29 00:00  Test6              Testing message 6
88    8  2006-09-29 00:00  Test7              Testing message 7
89    9  2006-09-29 00:00  Test8              Testing message 8
90   10  2006-09-29 00:00  Test9              Testing message 9
91   11  2006-09-29 00:00  Test10             Testing message 10
92   12  2006-09-29 00:00  Test11             Re: common subject
93 !
94
95
96
97 # check -verbose
98
99 refile f +inbox
100 folder -pack >/dev/null
101
102 runandcheck "sortm -verbose" <<!
103 sorting by datefield date
104 renaming message chain from 12 to 1
105 message 11 becomes message 12
106 message 10 becomes message 11
107 message 9 becomes message 10
108 message 8 becomes message 9
109 message 7 becomes message 8
110 message 6 becomes message 7
111 message 5 becomes message 6
112 message 4 becomes message 5
113 message 3 becomes message 4
114 message 2 becomes message 3
115 message 1 becomes message 2
116 !
117 runandcheck "scan" <<!
118    1  2006-09-28 23:59  Test12             common subject
119    2  2006-09-29 00:00  Test1              Testing message 1
120    3  2006-09-29 00:00  Test2              Testing message 2
121    4  2006-09-29 00:00  Test3              Testing message 3
122    5  2006-09-29 00:00  Test4              Testing message 4
123    6  2006-09-29 00:00  Test5              Testing message 5
124    7  2006-09-29 00:00  Test6              Testing message 6
125    8  2006-09-29 00:00  Test7              Testing message 7
126    9  2006-09-29 00:00  Test8              Testing message 8
127   10  2006-09-29 00:00  Test9              Testing message 9
128   11  2006-09-29 00:00  Test10             Testing message 10
129   12  2006-09-29 00:00  Test11             Re: common subject
130 !
131
132
133
134 # check -noverbose
135
136 refile f +inbox
137 folder -pack >/dev/null
138
139 runandcheck "sortm -verbose -noverbose" <<!
140 !
141 runandcheck "scan" <<!
142    1  2006-09-28 23:59  Test12             common subject
143    2  2006-09-29 00:00  Test1              Testing message 1
144    3  2006-09-29 00:00  Test2              Testing message 2
145    4  2006-09-29 00:00  Test3              Testing message 3
146    5  2006-09-29 00:00  Test4              Testing message 4
147    6  2006-09-29 00:00  Test5              Testing message 5
148    7  2006-09-29 00:00  Test6              Testing message 6
149    8  2006-09-29 00:00  Test7              Testing message 7
150    9  2006-09-29 00:00  Test8              Testing message 8
151   10  2006-09-29 00:00  Test9              Testing message 9
152   11  2006-09-29 00:00  Test10             Testing message 10
153   12  2006-09-29 00:00  Test11             Re: common subject
154 !
155
156
157
158 # check msgs
159
160 refile f +inbox
161 folder -pack >/dev/null
162
163 runandcheck "sortm f l" <<!
164 !
165 runandcheck "scan" <<!
166    1  2006-09-28 23:59  Test12             common subject
167    2  2006-09-29 00:00  Test2              Testing message 2
168    3  2006-09-29 00:00  Test3              Testing message 3
169    4  2006-09-29 00:00  Test4              Testing message 4
170    5  2006-09-29 00:00  Test5              Testing message 5
171    6  2006-09-29 00:00  Test6              Testing message 6
172    7  2006-09-29 00:00  Test7              Testing message 7
173    8  2006-09-29 00:00  Test8              Testing message 8
174    9  2006-09-29 00:00  Test9              Testing message 9
175   10  2006-09-29 00:00  Test10             Testing message 10
176   11  2006-09-29 00:00  Test11             Re: common subject
177   12  2006-09-29 00:00  Test1              Testing message 1
178 !
179
180
181
182 # check -datefield
183
184 runandcheck "sortm -datefield Alt-Date 1 11" <<!
185 !
186 runandcheck scan <<!
187    1  2006-09-29 00:00  Test11             Re: common subject
188    2  2006-09-29 00:00  Test2              Testing message 2
189    3  2006-09-29 00:00  Test3              Testing message 3
190    4  2006-09-29 00:00  Test4              Testing message 4
191    5  2006-09-29 00:00  Test5              Testing message 5
192    6  2006-09-29 00:00  Test6              Testing message 6
193    7  2006-09-29 00:00  Test7              Testing message 7
194    8  2006-09-29 00:00  Test8              Testing message 8
195    9  2006-09-29 00:00  Test9              Testing message 9
196   10  2006-09-29 00:00  Test10             Testing message 10
197   11  2006-09-28 23:59  Test12             common subject
198   12  2006-09-29 00:00  Test1              Testing message 1
199 !
200
201
202
203 # check -textfield subject (datefield major, subjects grouped)
204
205 runandcheck "sortm -textfield subject" <<!
206 !
207 runandcheck scan <<!
208    1  2006-09-28 23:59  Test12             common subject
209    2  2006-09-29 00:00  Test11             Re: common subject
210    3  2006-09-29 00:00  Test2              Testing message 2
211    4  2006-09-29 00:00  Test3              Testing message 3
212    5  2006-09-29 00:00  Test4              Testing message 4
213    6  2006-09-29 00:00  Test5              Testing message 5
214    7  2006-09-29 00:00  Test6              Testing message 6
215    8  2006-09-29 00:00  Test7              Testing message 7
216    9  2006-09-29 00:00  Test8              Testing message 8
217   10  2006-09-29 00:00  Test9              Testing message 9
218   11  2006-09-29 00:00  Test10             Testing message 10
219   12  2006-09-29 00:00  Test1              Testing message 1
220 !
221
222
223
224 # check -nolimit
225
226 runandcheck "sortm -textfield subject -limit 0 -nolimit" <<!
227 !
228 runandcheck scan <<!
229    1  2006-09-28 23:59  Test12             common subject
230    2  2006-09-29 00:00  Test11             Re: common subject
231    3  2006-09-29 00:00  Test2              Testing message 2
232    4  2006-09-29 00:00  Test3              Testing message 3
233    5  2006-09-29 00:00  Test4              Testing message 4
234    6  2006-09-29 00:00  Test5              Testing message 5
235    7  2006-09-29 00:00  Test6              Testing message 6
236    8  2006-09-29 00:00  Test7              Testing message 7
237    9  2006-09-29 00:00  Test8              Testing message 8
238   10  2006-09-29 00:00  Test9              Testing message 9
239   11  2006-09-29 00:00  Test10             Testing message 10
240   12  2006-09-29 00:00  Test1              Testing message 1
241 !
242
243
244
245 # check -textfield subject -limit 0 (subject sort)
246
247 refile 2-7 +inbox
248 refile 1 +inbox
249 folder -pack l >/dev/null
250
251 runandcheck "sortm -textfield subject -limit 0" <<!
252 !
253 runandcheck "scan" <<!
254    1  2006-09-29 00:00  Test11             Re: common subject
255    2  2006-09-28 23:59  Test12             common subject
256    3  2006-09-29 00:00  Test1              Testing message 1
257    4  2006-09-29 00:00  Test10             Testing message 10
258    5  2006-09-29 00:00  Test2              Testing message 2
259    6  2006-09-29 00:00  Test3              Testing message 3
260    7  2006-09-29 00:00  Test4              Testing message 4
261    8  2006-09-29 00:00  Test5              Testing message 5
262    9  2006-09-29 00:00  Test6              Testing message 6
263   10  2006-09-29 00:00  Test7              Testing message 7
264   11  2006-09-29 00:00  Test8              Testing message 8
265   12+ 2006-09-29 00:00  Test9              Testing message 9
266 !
267
268
269
270 # check -textfield -limit 0 (text sort)
271
272 refile 2-7 +inbox
273 refile 1 +inbox
274 folder -pack l >/dev/null
275
276 runandcheck "sortm -textfield from -limit 0" <<!
277 !
278 runandcheck "scan" <<!
279    1  2006-09-29 00:00  Test10             Testing message 10
280    2  2006-09-29 00:00  Test11             Re: common subject
281    3  2006-09-28 23:59  Test12             common subject
282    4  2006-09-29 00:00  Test1              Testing message 1
283    5  2006-09-29 00:00  Test2              Testing message 2
284    6  2006-09-29 00:00  Test3              Testing message 3
285    7  2006-09-29 00:00  Test4              Testing message 4
286    8  2006-09-29 00:00  Test5              Testing message 5
287    9  2006-09-29 00:00  Test6              Testing message 6
288   10  2006-09-29 00:00  Test7              Testing message 7
289   11  2006-09-29 00:00  Test8              Testing message 8
290   12+ 2006-09-29 00:00  Test9              Testing message 9
291 !
292
293
294
295 # add another message
296
297 cat >$MH_TEST_DIR/Mail/inbox/13 <<EOF || exit 1
298 From: Test13 <test13@example.com>
299 To: Some User <user@example.com>
300 Date: Tue, 31 Oct 2006 23:59:59
301 Subject: Re: common subject
302
303 This is message number 13
304 EOF
305
306
307
308 # check -textfield with finite -limit that doesn't cover message 13
309
310 refile 2-7 +inbox
311 refile 1 +inbox
312 folder -pack l >/dev/null
313
314 runandcheck "sortm -textfield subject -limit 10" <<!
315 !
316 runandcheck "scan" <<!
317    1  2006-09-28 23:59  Test12             common subject
318    2  2006-09-29 00:00  Test11             Re: common subject
319    3  2006-09-29 00:00  Test5              Testing message 5
320    4  2006-09-29 00:00  Test6              Testing message 6
321    5  2006-09-29 00:00  Test7              Testing message 7
322    6  2006-09-29 00:00  Test8              Testing message 8
323    7  2006-09-29 00:00  Test9              Testing message 9
324    8  2006-09-29 00:00  Test1              Testing message 1
325    9  2006-09-29 00:00  Test2              Testing message 2
326   10  2006-09-29 00:00  Test3              Testing message 3
327   11  2006-09-29 00:00  Test4              Testing message 4
328   12+ 2006-09-29 00:00  Test10             Testing message 10
329   13  2006-10-31 23:59  Test13             Re: common subject
330 !
331
332
333
334 # check -textfield with finite -limit that does cover message 13
335
336 refile 2-7 +inbox
337 refile 1 +inbox
338 folder -pack l >/dev/null
339
340 runandcheck "sortm -textfield subject -limit 60" <<!
341 !
342 runandcheck scan <<!
343    1  2006-09-28 23:59  Test12             common subject
344    2  2006-09-29 00:00  Test11             Re: common subject
345    3  2006-10-31 23:59  Test13             Re: common subject
346    4  2006-09-29 00:00  Test1              Testing message 1
347    5  2006-09-29 00:00  Test2              Testing message 2
348    6  2006-09-29 00:00  Test3              Testing message 3
349    7  2006-09-29 00:00  Test4              Testing message 4
350    8  2006-09-29 00:00  Test10             Testing message 10
351    9  2006-09-29 00:00  Test5              Testing message 5
352   10  2006-09-29 00:00  Test6              Testing message 6
353   11  2006-09-29 00:00  Test7              Testing message 7
354   12  2006-09-29 00:00  Test8              Testing message 8
355   13+ 2006-09-29 00:00  Test9              Testing message 9
356 !
357
358
359
360 # check -notextfield
361
362 refile 2-7 +inbox
363 refile 1 +inbox
364 folder -pack l >/dev/null
365
366 runandcheck "sortm -textfield subject -limit 60 -notextfield" <<!
367 !
368 runandcheck scan <<!
369    1  2006-09-28 23:59  Test12             common subject
370    2  2006-09-29 00:00  Test10             Testing message 10
371    3  2006-09-29 00:00  Test5              Testing message 5
372    4  2006-09-29 00:00  Test6              Testing message 6
373    5  2006-09-29 00:00  Test7              Testing message 7
374    6  2006-09-29 00:00  Test8              Testing message 8
375    7  2006-09-29 00:00  Test9              Testing message 9
376    8  2006-09-29 00:00  Test1              Testing message 1
377    9  2006-09-29 00:00  Test2              Testing message 2
378   10  2006-09-29 00:00  Test3              Testing message 3
379   11  2006-09-29 00:00  Test4              Testing message 4
380   12  2006-09-29 00:00  Test11             Re: common subject
381   13+ 2006-10-31 23:59  Test13             Re: common subject
382 !
383
384
385
386 # check -check
387
388 sed -e 's/Sep//' $MH_TEST_DIR/Mail/inbox/7 > $MH_TEST_DIR/Mail/inbox/14
389
390 runandcheck "sortm" <<!
391 sortm: can't parse date field in message 14, continuing...
392 !
393 runandcheck scan <<!
394    1  2006-09-28 23:59  Test12             common subject
395    2  2006-09-29 00:00  Test10             Testing message 10
396    3  2006-09-29 00:00  Test5              Testing message 5
397    4  2006-09-29 00:00  Test6              Testing message 6
398    5  2006-09-29 00:00  Test7              Testing message 7
399    6  2006-09-29 00:00  Test8              Testing message 8
400    7  2006-09-29 00:00  Test9              Testing message 9
401    8  2006-09-29 00:00  Test1              Testing message 1
402    9  2006-09-29 00:00  Test2              Testing message 2
403   10  2006-09-29 00:00  Test3              Testing message 3
404   11  2006-09-29 00:00  Test4              Testing message 4
405   12  2006-09-29 00:00  Test11             Re: common subject
406   13+ 2006-10-31 23:59  Test13             Re: common subject
407   14     0-01-00 00:00  Test9              Testing message 9
408 !
409