* test/runtest, test/tests/inc/test-deb359167,
[mmh] / test / tests / new / test-basic
1 #!/bin/sh
2
3 # TODO: Move to a common file tests can source; need more framework...
4 failed=0
5 check() {
6     diff -u $expected $actual
7     if [ $? -ne 0 ]; then
8         failed=$((failed + 1))
9     fi
10 }
11
12 folders=$MH_TEST_DIR/Mail/.folders
13
14 expected=$MH_TEST_DIR/$$.expected
15 actual=$MH_TEST_DIR/$$.actual
16
17 # make second folder
18 cp -r $MH_TEST_DIR/Mail/inbox $MH_TEST_DIR/Mail/foo1
19 cp -r $MH_TEST_DIR/Mail/inbox $MH_TEST_DIR/Mail/foo2
20 # but only list inbox and foo2 in .folders, and sorted differently
21 cat > $folders <<EOF
22 inbox
23 foo2
24 EOF
25
26 # test with no sequence
27 cat > $expected <<EOF
28 new: must specify sequences or set Unseen-Sequence
29 EOF
30 new > $actual 2>&1
31 check
32
33 # test with no desired messages
34 cat > $expected <<EOF
35  total      0.
36 EOF
37 new aseq > $actual 2>&1
38 check
39 new -folders $folders aseq > $actual 2>&1
40 check
41
42 # test fnext/fprev with no desired messages
43 cat /dev/null > $expected
44 fnext aseq > $actual 2>&1
45 check
46 fprev aseq > $actual 2>&1
47 check
48
49 # add 1 desired message in each folder
50 echo 'aseq: 1' > $MH_TEST_DIR/Mail/inbox/.mh_sequences
51 echo 'aseq: 1' > $MH_TEST_DIR/Mail/foo1/.mh_sequences
52 echo 'aseq: 1' > $MH_TEST_DIR/Mail/foo2/.mh_sequences
53
54 # test with all folders
55 cat > $expected <<EOF
56 foo1       1.  1
57 foo2       1.  1
58 inbox      1.* 1
59  total      3.
60 EOF
61 new aseq > $actual 2>&1
62 check
63
64 # test with .folders
65 cat > $expected <<EOF
66 inbox      1.* 1
67 foo2       1.  1
68  total      2.
69 EOF
70 new -folders $folders aseq > $actual 2>&1
71 check
72
73 # add 2 desired messages to another sequence in each folder
74 echo 'bseq: 3-4' >> $MH_TEST_DIR/Mail/inbox/.mh_sequences
75 echo 'bseq: 3-4' >> $MH_TEST_DIR/Mail/foo1/.mh_sequences
76 echo 'bseq: 3-4' >> $MH_TEST_DIR/Mail/foo2/.mh_sequences
77
78 # test listing aseq and bseq
79 cat > $expected <<EOF
80 foo1       3.  1 3-4
81 foo2       3.  1 3-4
82 inbox      3.* 1 3-4
83  total      9.
84 EOF
85 new aseq bseq > $actual 2>&1
86 check
87
88 # set aseq bseq as unseen
89 echo 'Unseen-Sequence: aseq bseq' >> $MH
90 new > $actual 2>&1
91 check
92
93 # test unseen
94 cat > $expected <<EOF
95
96 3 aseq bseq messages in foo1
97    1  09/29 Test1              Testing message 1<<This is message number 1 >>
98    3  09/29 Test3              Testing message 3<<This is message number 3 >>
99    4  09/29 Test4              Testing message 4<<This is message number 4 >>
100
101 3 aseq bseq messages in foo2
102    1  09/29 Test1              Testing message 1<<This is message number 1 >>
103    3  09/29 Test3              Testing message 3<<This is message number 3 >>
104    4  09/29 Test4              Testing message 4<<This is message number 4 >>
105
106 3 aseq bseq messages in inbox (*: current folder)
107    1  09/29 Test1              Testing message 1<<This is message number 1 >>
108    3  09/29 Test3              Testing message 3<<This is message number 3 >>
109    4  09/29 Test4              Testing message 4<<This is message number 4 >>
110 EOF
111 unseen > $actual 2>&1
112 check
113
114 # test fnext with the current folder not in the list
115 echo 'Current-Folder: foo1' > $MH_TEST_DIR/Mail/context
116 echo 'inbox  1 3-4' > $expected
117 fnext -folders $folders > $actual 2>&1
118 check
119
120 # test fprev with the current folder not in the list
121 echo 'Current-Folder: foo1' > $MH_TEST_DIR/Mail/context
122 echo 'inbox  1 3-4' > $expected
123 fprev -folders $folders > $actual 2>&1
124 check
125
126 # test fnext with current folder in the middle of the list
127 echo 'Current-Folder: foo2' > $MH_TEST_DIR/Mail/context
128 echo 'inbox  1 3-4' > $expected
129 fnext > $actual 2>&1
130 check
131
132 # test fprev with current folder in the middle of the list
133 echo 'Current-Folder: foo2' > $MH_TEST_DIR/Mail/context
134 echo 'foo1  1 3-4' > $expected
135 fprev > $actual 2>&1
136 check
137
138 # test fprev with current folder at the beginning of the list
139 echo 'Current-Folder: foo1' > $MH_TEST_DIR/Mail/context
140 echo 'inbox  1 3-4' > $expected
141 fprev > $actual 2>&1
142 check
143
144 # test fnext with current folder at the end of the list
145 echo 'Current-Folder: inbox' > $MH_TEST_DIR/Mail/context
146 echo 'foo1  1 3-4' > $expected
147 fnext > $actual 2>&1
148 check
149
150 # test fnext with no current folder
151 rm $MH_TEST_DIR/Mail/context
152 echo 'foo1  1 3-4' > $expected
153 fnext > $actual 2>&1
154 check
155
156 # test fnext with only one folder in the list
157 cat > $folders <<EOF
158 inbox
159 EOF
160 echo 'inbox  1 3-4' > $expected
161 fnext -folders $folders > $actual 2>&1
162 check
163
164 exit $failed