X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6ba5b855ebc737cc46cabfbe799b0c7706f437f4..bf0fa4275147d53be15621d12d6b71916f164385:/test/mhlist/test-mhlist diff --git a/test/mhlist/test-mhlist b/test/mhlist/test-mhlist index ad0fb4bb..42d2f43f 100755 --- a/test/mhlist/test-mhlist +++ b/test/mhlist/test-mhlist @@ -16,59 +16,78 @@ fi setup_test +check_exit '-eq 1' mhlist - + expected=$MH_TEST_DIR/$$.expected actual=$MH_TEST_DIR/$$.actual -# check with no options and no current message +start_test 'with no options and no current message' run_test 'mhlist' 'mhlist: no cur message' -# check with no options and current message +start_test 'with no options and current message' folder +inbox 5 > /dev/null cat > $expected < $actual 2>&1 +run_prog mhlist > $actual 2>&1 check $expected $actual 'keep first' -# check -noheaders +start_test '-noheaders' run_test 'mhlist 5 -noheaders' ' 5 text/plain 25' -# check -headers -mhlist -noheaders -headers > $actual 2>&1 +start_test '-headers' +run_prog mhlist -noheaders -headers > $actual 2>&1 check $expected $actual 'keep first' -# check with folder and current message -mhlist +inbox > $actual 2>&1 +start_test 'with folder and current message' +run_prog mhlist +inbox > $actual 2>&1 check $expected $actual 'keep first' -# check with specified message -mhlist 5 > $actual 2>&1 +start_test 'with specified message' +run_prog mhlist 5 > $actual 2>&1 check $expected $actual 'keep first' -# check -file -mhlist -file "$MH_TEST_DIR/Mail/inbox/5" > $actual 2>&1 +start_test '-file' +run_prog mhlist -file "$MH_TEST_DIR/Mail/inbox/5" > $actual 2>&1 check $expected $actual -# check -file - +start_test '-file -' cat > $expected < $actual 2>&1 +run_prog mhlist -file - < "$MH_TEST_DIR/Mail/inbox/5" > $actual 2>&1 check $expected $actual -# check message number greater than highest +start_test 'message with no blank line separating the headers from the body.' +# Shouldn't make a difference to the size of the body part. +# Bug meant no-blank-line case was one bigger by including the `\n' +# ending the last header. +f=$MH_TEST_DIR/$$.blank +cat >$f-yes <<\E +foo: bar + +body1 +body2 +E +sed '/^$/d' $f-yes >$f-no +run_prog mhlist -file $f-yes >$actual-yes +run_prog mhlist -file $f-no >$actual-no +check $actual-yes $actual-no +rm $f-yes $f-no + +start_test 'message number greater than highest' run_test 'mhlist 11' "mhlist: message 11 doesn't exist" -# check multiple messages +start_test 'multiple messages' cat > $expected < $actual 2>&1 +run_prog mhlist 2 8 > $actual 2>&1 check $expected $actual # Write message with a text/plain subpart. @@ -117,19 +136,19 @@ VGhpcyBpcyB0aGUgZm91cnRoIHRleHQvcGxhaW4gcGFydC4K ------- =_aaaaaaaaaa0-- EOF -# check -part +start_test '-part' run_test 'mhlist last -part 3 -noheader' \ ' 11 multipart/mixed 936 1 multipart/related 180 3 text/plain 35' -# check -part of a subpart +start_test '-part of a subpart' run_test 'mhlist last -part 1.1 -noheader' \ ' 11 multipart/mixed 936 1 multipart/related 180 1.1 text/plain 49' -# check -type +start_test '-type' run_test 'mhlist last -type text/plain -noheader' \ ' 11 multipart/mixed 936 1 multipart/related 180 @@ -138,25 +157,25 @@ run_test 'mhlist last -type text/plain -noheader' \ 3 text/plain 35 4 text/plain 36' -# check -norealsize +start_test '-norealsize' run_test 'mhlist last -part 4 -noheader -norealsize' \ ' 11 multipart/mixed 936 1 multipart/related 180 4 text/plain 49' -# check -realsize, the default +start_test '-realsize, the default' run_test 'mhlist last -part 4 -noheader -norealsize -realsize' \ ' 11 multipart/mixed 936 1 multipart/related 180 4 text/plain 36' -# check -check +start_test '-check' run_test 'mhlist last -part 2 -noheader -check' \ ' 11 multipart/mixed 936 1 multipart/related 180 2 text/plain 36' -# check -check with bad MD5 checksum +start_test '-check with bad MD5 checksum' sed 's/\(Content-MD5: \)kq+Hnc/\1BADBAD/' $msgfile > $MH_TEST_DIR/$$.tmp mv -f $MH_TEST_DIR/$$.tmp $msgfile run_test 'mhlist last -part 2 -noheader -check' \ @@ -164,9 +183,9 @@ run_test 'mhlist last -part 2 -noheader -check' \ 1 multipart/related 180 2 text/plain 36 mhlist: content integrity suspect (digest mismatch) -- continuing - (content text/plain in message 11, part 2)' + (content text/plain in message 11, part 2)' -# check -nocheck, the default +start_test '-nocheck, the default' run_test 'mhlist last -part 2 -noheader -check -nocheck' \ ' 11 multipart/mixed 936 1 multipart/related 180 @@ -179,7 +198,7 @@ run_test 'mhlist last -part 2 -noheader -check -nocheck' \ mark 1 -sequence cur -add -zero -# check -verbose +start_test '-verbose' run_test 'mhlist 11 -verbose -noheader' \ ' 11 multipart/mixed 936 boundary="----- =_aaaaaaaaaa0" @@ -197,7 +216,7 @@ run_test 'mhlist 11 -verbose -noheader' \ charset="iso-8859-1"' # -# Check default changecur behavior +start_test 'default changecur behavior' # run_test 'mark -sequence cur -list' 'cur: 11' @@ -210,4 +229,305 @@ mhlist -nochangecur 1 >/dev/null run_test 'mark -sequence cur -list' 'cur: 11' +start_test 'MIME parser and m_getfld' +cat > $expected < $msgfile < $actual 2>&1 +check $expected $actual + +## now check mhlist output + +msgfile=`mhpath new` +msgnum=`basename $msgfile` +cat > $msgfile < +Subject: mhlist test +Date: Thu, 29 Jan 2015 18:12:21 +0000 (GMT) +Content-Type: multipart/mixed; boundary="BoundaryMixed" + +--BoundaryMixed +Content-type: multipart/alternative; + boundary="BoundaryAlternative1" + +--BoundaryAlternative1 +Content-type: text/enriched; CHARSET=US-ASCII +Content-transfer-encoding: 7bit + +This is supposedly enriched. + +--BoundaryAlternative1 +Content-type: text/plain; charset=ISO-8859-1; format=flowed +Content-transfer-encoding: 8bit + +This is the body text/plain part. + +--BoundaryAlternative1 +Content-type: text/html; CHARSET=US-ASCII +Content-transfer-encoding: 7bit + +
+This is the text/html body part. +
+ +--BoundaryAlternative1-- + +--BoundaryMixed +Content-type: multipart/alternative; + boundary="BoundaryAlternative2" + +--BoundaryAlternative2 +Content-type: audio/wav +Content-transfer-encoding: 8bit + +pretend wav audio + +--BoundaryAlternative2 +Content-type: audio/mp3 +Content-transfer-encoding: 8bit + +pretend mp3 audio + +--BoundaryAlternative2 +Content-type: audio/basic +Content-transfer-encoding: 8bit + +pretend basic audio + +--BoundaryAlternative2-- + +--BoundaryMixed-- +EOF + +# Write the expected output. +cat > $expected < $actual 2>&1 +check "$expected" "$actual" + +# Write the expected output. +cat > $expected < $actual 2>&1 +check "$expected" "$actual" + +# Write the expected output. +cat > $expected < $actual 2>&1 +check "$expected" "$actual" + +# Write the expected output. +cat > $expected < $actual 2>&1 +check "$expected" "$actual" + +# Write the expected output. +cat > $expected < $actual 2>&1 +check "$expected" "$actual" + + +finish_test exit $failed