X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b1b999eb0d2f9f63a4ddead798088e5f49160dd1..a9cca04e645e2e28fac33be4f19ccef003336e78:/test/mhfixmsg/test-mhfixmsg?ds=sidebyside diff --git a/test/mhfixmsg/test-mhfixmsg b/test/mhfixmsg/test-mhfixmsg index 09f7f76b..9cd0a0df 100755 --- a/test/mhfixmsg/test-mhfixmsg +++ b/test/mhfixmsg/test-mhfixmsg @@ -14,7 +14,6 @@ fi . "${srcdir}/test/post/test-post-common.sh" - expected="$MH_TEST_DIR/test-mhfixmsg$$.expected" expected_err="$MH_TEST_DIR/test-mhfixmsg$$.expected_err" actual="$MH_TEST_DIR/test-mhfixmsg$$.actual" @@ -24,8 +23,18 @@ set +e if grep mhfixmsg-format-text/html "${MH_TEST_DIR}/Mail/mhn.defaults" \ >/dev/null; then can_reformat_texthtml=1 + if grep 'mhfixmsg-format-text/html.*w3m' "${MH_TEST_DIR}/Mail/mhn.defaults" \ + >/dev/null; then + #### w3m uses $HOME/.w3m/, and creates it if it doesn't exist. To + #### support testing with non-writeable $HOME, and to not leave + #### relics from this test if it is writeable but doesn't already + #### have a .w3m, and to not depend on whatever is in that if it + #### does already exist, overwrite $HOME if using w3m. + HOME="$MHTMPDIR" + export HOME + fi else - echo "$0: skipping -reformat check because + echo "$0: skipping -reformat check because \ mhfixmsg-format-text/html is not available" can_reformat_texthtml=0 fi @@ -41,6 +50,7 @@ Usage: mhfixmsg [+folder] [msgs] [switches] -nodecodetext -[no]textcodeset -[no]reformat + -[no]replacetextplain -[no]fixboundary -[no]fixcte -file file @@ -243,9 +253,15 @@ mhfixmsg: 12 part 1, decode text/html; charset=\"Windows-1252\"" \ mhfixmsg last -outfile - -verbose 2>"$actual.err" | uniq >"$actual" check "$expected" "$actual" check "$expected.err" "$actual.err" +else + rm -f "$expected" fi +# check implicit -file with absolute pathname +run_test "mhfixmsg `mhpath last` -outfile /dev/null" '' + + # check handling of boundary string that appears in message body # cat >"$expected" <"$actual.err" | uniq >"$actual" check "$expected" "$actual" check "$expected.err" "$actual.err" +else + rm -f "$expected" fi @@ -388,6 +406,8 @@ if [ $can_reformat_texthtml -eq 1 ]; then mhfixmsg last -nodecode -outfile - -verbose 2>"$actual.err" | uniq >"$actual" check "$expected" "$actual" check "$expected.err" "$actual.err" +else + rm -f "$expected" fi @@ -606,30 +626,6 @@ Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable - - - - - - -------=_nmh-multipart-- EOF cat >`mhpath new` <<'EOF' @@ -666,17 +662,13 @@ d>
Mile $0.00
Time $78.71
State Tax $5.90
Vehicle License Fee $1.84
State Txn Tax $6.00
EOF -# ???? debug on Solaris -egrep mhfixmsg $(mhparam etcdir)/mhn.defaults # ???? if [ $can_reformat_texthtml -eq 1 ]; then #### lynx inserts multiple blank lines, so use uniq to squeeze them. - # ???? mhfixmsg last -outfile - | uniq >"$actual" - # ???? temporarily add -verbose to debug on Solaris - mhfixmsg -verbose last -outfile - | uniq >"$actual" # ???? + #### Truncate to avoid comparing the html portion because it can + #### get reformatted. + mhfixmsg last -outfile - | uniq | head -22 >"$actual" check "$expected" "$actual" 'ignore space' else - # ???? temporarily added to debug on Solaris - echo "can't reformat text/html" # ???? cp -p "$MH_TEST_DIR/Mail/inbox/15" "$MH_TEST_DIR/Mail/inbox/15.backup" rm -f "$expected" fi @@ -725,7 +717,7 @@ set +e mhfixmsg last -textcodeset utf-8 -outfile "$actual" 2>"$actual.err" if grep "mhfixmsg: Can't convert .* to .* without iconv" "$actual.err" \ >/dev/null; then - echo skipping -textcodeset check because nmh was built without iconv + echo "$0: skipping -textcodeset check because nmh was built without iconv" rm -f "$expected" "$actual" "$actual.err" else check "$expected" "$actual" @@ -971,6 +963,110 @@ mhfixmsg last -outfile "$actual" check "$expected" "$actual" +# check -replacetextplain +cat >"$expected" < +eticket + + + Yes, the text/plain part really was empty. + + + +------=_Part_876302-- +EOF + +cat >`mhpath new` <<'EOF' +To: recipient@example.com +From: sender@example.com +Subject: mhfixmsg replacement of bad text/plain part test +MIME-Version: 1.0 +Content-Type: multipart/alternative; boundary="----=_Part_876302" + +------=_Part_876302 +Content-Type: text/plain; charset="iso-8859-15" +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + + + +------=_Part_876302 +Content-Type: text/html; charset="UTF-8" +Content-Transfer-Encoding: 8bit +Content-Disposition: inline + + +eticket + + + Yes, the text/plain part really was empty. + + + +------=_Part_876302-- +EOF + +if [ $can_reformat_texthtml -eq 1 ]; then + #### lynx inserts multiple blank lines, so use uniq to squeeze them. + mhfixmsg last -replacetextplain -outfile - | uniq > "$actual" + check "$expected" "$actual" +else + rm -f "$expected" +fi + + +# check -noreplacetextplain +cat >"$expected" < +eticket + + + Yes, the text/plain part really was empty. + + + +------=_Part_876302-- +EOF + +mhfixmsg last -replacetextplain -noreplacetextplain -outfile "$actual" +check "$expected" "$actual" + + # check rmmproc cat >"$MH_TEST_DIR/Mail/rmmproc" <<'EOF' mv "$1" "$1.backup"