X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1e85df43671d1e8836b9d7d1d03c884cc833cb93..23816efd3e8e294e8f1c1ce811ac3a1cd15d334e:/test/mhfixmsg/test-mhfixmsg?ds=inline diff --git a/test/mhfixmsg/test-mhfixmsg b/test/mhfixmsg/test-mhfixmsg index b927b95e..c80cfb8b 100755 --- a/test/mhfixmsg/test-mhfixmsg +++ b/test/mhfixmsg/test-mhfixmsg @@ -61,6 +61,7 @@ Usage: mhfixmsg [+folder] [msgs] [switches] -[no]replacetextplain -[no]fixboundary -[no]fixcte + -[no]checkbase64 -fixtype mimetype -file file -outfile file @@ -73,7 +74,7 @@ Usage: mhfixmsg [+folder] [msgs] [switches] EOF #### Skip nmh intro text. -run_prog mhfixmsg -help | sed '/^$/,$d' >"$actual" 2>&1 +run_prog mhfixmsg -help 2>&1 | sed '/^$/,$d' >"$actual" check "$expected" "$actual" @@ -865,13 +866,32 @@ EOF if test "$ICONV_ENABLED" -eq 1; then run_prog mhfixmsg last -textcharset utf-8 -outfile "$actual" 2>&1 - check "$expected" "$actual" + check "$expected" "$actual" 'keep first' else echo "$0: skipping -textcharset check because nmh was built without iconv" rm -f "$expected" fi +# check -textcharset -verbose +start_test "-textcharset -verbose" +cat >"$expected.err" <"$actual.err" + check "$expected" "$actual" + check "$expected.err" "$actual.err" +else + echo "$0: skipping -textcharset -verbose check because nmh was built " \ + "without iconv" + rm -f "$expected" "$expected.err" +fi + + # check -nofixboundary start_test "-nofixboundary" cat >"$expected" <"`mhpath new`" < +Subject: base64 code that ends with == +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBzb21lIHRleHQuCg== + +-- +Wait, this shouldn't be here. +EOF + +cat >"$expected" < +Subject: base64 code that ends with == +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_nmh-multipart" + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +This is some text. + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +-- +Wait, this shouldn't be here. + +------=_nmh-multipart-- +EOF +run_prog mhfixmsg last -outfile "$actual" +check "$expected" "$actual" + + +start_test "-checkbase64 with -nodecodetext" +cat >"`mhpath new`" < +Subject: base64 code that ends with == +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBzb21lIHRleHQuCg== + +-- +Wait, this shouldn't be here. +EOF + +cat >"$expected" < +Subject: base64 code that ends with == +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_nmh-multipart" + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBzb21lIHRleHQuCg== + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +-- +Wait, this shouldn't be here. + +------=_nmh-multipart-- +EOF +run_prog mhfixmsg -nodecodetext last -outfile "$actual" +check "$expected" "$actual" + + +start_test "-checkbase64 with base64 code that ends with = plus footer" +cat >"`mhpath new`" < +Subject: base64 code that ends with = +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBwbGFpbiB0ZXh0Lgo= + +-- +Wait, this shouldn't be here. +EOF + +cat >"$expected" < +Subject: base64 code that ends with = +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_nmh-multipart" + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +This is plain text. + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +-- +Wait, this shouldn't be here. + +------=_nmh-multipart-- +EOF +run_prog mhfixmsg last -outfile "$actual" +check "$expected" "$actual" + + +start_test "-checkbase64 with base64 code that ends without = plus footer" +cat >"`mhpath new`" < +Subject: base64 code that ends without = +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBzb21lIHRleHQK + +-- +Wait, this shouldn't be here. +EOF + +cat >"$expected" < +Subject: base64 code that ends without = +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_nmh-multipart" + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +This is some text + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +-- +Wait, this shouldn't be here. + +------=_nmh-multipart-- +EOF +run_prog mhfixmsg last -outfile "$actual" +check "$expected" "$actual" + + +start_test "-checkbase64 with base64 code that contains single invalid character" +cat >"`mhpath new`" < +Subject: base64 code that ends without = +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBzb21lIHRleHQK + +-X- +Wait, this shouldn't be here. +EOF + +cat >"$expected" < +Subject: base64 code that ends without = +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBzb21lIHRleHQK + +-X- +Wait, this shouldn't be here. +EOF + +cat >"$expected_err" <"$actual_err" || true +check "$expected" "$actual" +check "$expected_err" "$actual_err" + + +start_test "-checkbase64 with base64 code in MIME part" +cat >"`mhpath new`" < +Subject: MIME part with base64 encoded text and unencoded footer +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_nmh-multipart" + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +VGhpcyBpcyBzb21lIHRleHQK + +-- +Wait, this shouldn't be here. + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +This is a second text/plain part. + +------=_nmh-multipart-- +EOF + +cat >"$expected" < +Subject: MIME part with base64 encoded text and unencoded footer +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_nmh-multipart" + +------=_nmh-multipart +Content-Type: multipart/mixed; boundary="----=_nmh-multipart1" + +------=_nmh-multipart1 +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +This is some text + +------=_nmh-multipart1 +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +-- +Wait, this shouldn't be here. + +------=_nmh-multipart1-- + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +This is a second text/plain part. + +------=_nmh-multipart-- +EOF +run_prog mhfixmsg last -outfile "$actual" +check "$expected" "$actual" + + +start_test "-checkbase64 with 8-bit encoded base64 code" +cat >"`mhpath new`" < +Subject: 8-bit encoded base64 code +MIME-Version: 1.0 +Content-Type: text/plain +Content-Transfer-Encoding: base64 + +U2VlIFJGQyAyMDQ1IMKnNi44Lg== + +-- +Wait, this shouldn't be here. +EOF +cat >"$expected" < +Subject: 8-bit encoded base64 code +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_nmh-multipart" +Content-Transfer-Encoding: 8bit + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 8bit + +See RFC 2045 §6.8. + +------=_nmh-multipart +Content-Type: text/plain +Content-Transfer-Encoding: 7bit + +-- +Wait, this shouldn't be here. + +------=_nmh-multipart-- +EOF + +run_prog mhfixmsg last -outfile "$actual" +check "$expected" "$actual" + + # make sure there are no tmp files left over find "$MH_TEST_DIR/Mail" -name '*mhfix*' -print \ >"$actual"