X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/4d0e01fe1da830a6e8fdf13bd6bc21603642d5da..7711f3fc00259e55f630cfe6104eff3083dc9d77:/test/mhfixmsg/test-mhfixmsg?ds=sidebyside diff --git a/test/mhfixmsg/test-mhfixmsg b/test/mhfixmsg/test-mhfixmsg index bbc60f65..b8e0b426 100755 --- a/test/mhfixmsg/test-mhfixmsg +++ b/test/mhfixmsg/test-mhfixmsg @@ -12,65 +12,66 @@ if test -z "${MH_OBJ_DIR}"; then MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR fi -. "${srcdir}/test/post/test-post-common.sh" +. "${MH_OBJ_DIR}/test/common.sh" + +setup_test + +#### Make sure that html-to-text conversion is what we expect. +require_locale en_US.utf-8 en_US.utf8 +LC_ALL=en_US.UTF-8; export LC_ALL expected="$MH_TEST_DIR/test-mhfixmsg$$.expected" expected_err="$MH_TEST_DIR/test-mhfixmsg$$.expected_err" actual="$MH_TEST_DIR/test-mhfixmsg$$.actual" actual_err="$MH_TEST_DIR/test-mhfixmsg$$.actual_err" -#### Make sure that html-to-text conversion is what we expect. -LC_ALL=en_US.UTF-8; export LC_ALL +mhn_defaults="$MH_INST_DIR${nmhetcdir}/mhn.defaults" -set +e -if grep mhfixmsg-format-text/html "${MH_TEST_DIR}/Mail/mhn.defaults" \ +if grep mhfixmsg-format-text/html "${mhn_defaults}" \ >/dev/null; then can_reformat_texthtml=1 - if grep 'mhfixmsg-format-text/html.*w3m' "${MH_TEST_DIR}/Mail/mhn.defaults" \ + if grep 'mhfixmsg-format-text/html.*w3m' "${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 + HOME="$MHTMPDIR"; export HOME fi else - echo "$0: skipping -reformat check because \ - mhfixmsg-format-text/html is not available" + echo "$0: skipping -reformat check because no text browser was found" can_reformat_texthtml=0 fi -set -e # check -help -# Verified behavior consistent with compiled sendmail. cat >"$expected" <"$actual" 2>&1 +run_prog mhfixmsg -help >"$actual" 2>&1 check "$expected" "$actual" # check -version -# Verified same behavior as compiled mhfixmsg. case `mhfixmsg -version` in mhfixmsg\ --*) ;; *) printf '%s: mhfixmsg -version generated unexpected output\n' "$0" >&2 @@ -253,7 +254,8 @@ mhfixmsg: 12 part 1, decode text/html; charset=\"Windows-1252\"" \ >"$expected.err" #### lynx inserts multiple blank lines, so squeeze them. - mhfixmsg last -outfile - -verbose 2>"$actual.err" | squeeze_lines >"$actual" + run_prog mhfixmsg last -outfile - -verbose 2>"$actual.err" | \ + squeeze_lines >"$actual" check "$expected" "$actual" 'ignore space' check "$expected.err" "$actual.err" else @@ -334,7 +336,8 @@ mhfixmsg: 12 part 1, decode text/html; charset=\"Windows-1252\"" \ >"$expected.err" #### lynx inserts multiple blank lines, so squeeze them. - mhfixmsg last -outfile - -verbose 2>"$actual.err" | squeeze_lines >"$actual" + run_prog mhfixmsg last -outfile - -verbose 2>"$actual.err" | \ + squeeze_lines >"$actual" check "$expected" "$actual" 'ignore space' check "$expected.err" "$actual.err" else @@ -406,7 +409,7 @@ if [ $can_reformat_texthtml -eq 1 ]; then printf '%s\n' 'mhfixmsg: 12, insert text/plain part' >"$expected.err" #### lynx inserts multiple blank lines, so squeeze them. - mhfixmsg last -nodecode -outfile - -verbose 2>"$actual.err" | \ + run_prog mhfixmsg last -nodecode -outfile - -verbose 2>"$actual.err" | \ squeeze_lines >"$actual" check "$expected" "$actual" 'ignore space' check "$expected.err" "$actual.err" @@ -450,7 +453,7 @@ VGhpcyBpcyBhIHRleHQvcGxhaW4gcGFydC4K ------- =_aaaaaaaaaa0-- EOF -mhfixmsg last -outfile "$actual" +run_prog mhfixmsg last -outfile "$actual" check "$expected" "$actual" @@ -466,8 +469,7 @@ This is additional content before the first subpart of the multipart. ------- =_aaaaaaaaaa0 Content-Type: multipart/related; - type="multipart/alternative"; - boundary="subpart__1.1" + type="text/plain"; boundary="subpart__1.1" --subpart__1.1 Content-Type: text/plain; charset="iso-8859-1" @@ -516,8 +518,7 @@ This is additional content before the first subpart of the multipart. ------- =_aaaaaaaaaa0 Content-Type: multipart/related; - type="multipart/alternative"; - boundary="subpart__1.1" + type="text/plain"; boundary="subpart__1.1" --subpart__1.1 Content-Type: text/plain; charset="iso-8859-1" @@ -554,13 +555,13 @@ VGhpcyBpcyB0aGUgZm91cnRoIHRleHQvcGxhaW4gcGFydC4K This is additional content after the last subpart of the multipart. EOF -mhfixmsg last -outfile "$actual" +run_prog mhfixmsg last -outfile "$actual" check "$expected" "$actual" # check attempted -decode of binary text #### Generated the encoded text below with: -#### $ printf '\x0d\xbd\xb2=\xbc\n' | base64 +#### $ printf '\x0\xbd\xb2=\xbc\n' | base64 cat >`mhpath new` <"$actual" + run_prog mhfixmsg last -outfile - | squeeze_lines | head -22 >"$actual" check "$expected" "$actual" 'ignore space' else cp -p "$MH_TEST_DIR/Mail/inbox/15" "$MH_TEST_DIR/Mail/inbox/15.backup" @@ -678,13 +677,13 @@ else fi -# check -textcodeset +# check -textcharset # Also checks preservation of attributes after one (charset) that is # modified. cat >"$expected" <`mhpath new` <"$actual.err" -if grep "mhfixmsg: Can't convert .* to .* without iconv" "$actual.err" \ - >/dev/null; then - echo "$0: skipping -textcodeset check because nmh was built without iconv" - rm -f "$expected" "$actual" "$actual.err" -else +if test "$ICONV_ENABLED" -eq 1; then + run_prog mhfixmsg last -textcharset utf-8 -outfile "$actual" 2>&1 check "$expected" "$actual" - rm "$actual.err" +else + echo "$0: skipping -textcharset check because nmh was built without iconv" + rm -f "$expected" fi -set -e # check -nofixboundary @@ -761,7 +756,7 @@ check "$MH_TEST_DIR"/Mail/inbox/17 "$MH_TEST_DIR"/Mail/inbox/18 'keep first' # check that message is not output when fed through stdin -mhfixmsg -file - -verbose <`mhpath last` >"$actual" 2>"$actual.err" +run_prog mhfixmsg -file - -verbose <`mhpath last` >"$actual" 2>"$actual.err" check "$expected" "$actual" if grep "mhfixmsg: $MH_TEST_DIR/Mail/.*, fix multipart boundary" \ "$actual.err" >/dev/null; then @@ -778,7 +773,7 @@ fi cat >"$expected" < @@ -800,24 +795,16 @@ run_test 'mhfixmsg last -outfile '"$actual"' -verbose' \ check "$expected" "$actual" -# check that text/plain part is added to lone text/html in multipart/related -prepare_space >"$expected" <`mhpath new` < -------=_nmh-multipart1-- - ------=_Part_90310_101292502.1 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit @@ -841,36 +826,11 @@ Your email client does not support HTML messages ------=_Part_90310_101292502.1-- EOF -cat >`mhpath new` < - - HTML Content - - - This is the real content. - - -------=_Part_90310_101292502.1 -Content-Type: text/plain; charset="us-ascii" -Content-Transfer-Encoding: 7bit - -Your email client does not support HTML messages -------=_Part_90310_101292502.1-- -EOF +cp -p `mhpath last` "$expected" if [ $can_reformat_texthtml -eq 1 ]; then #### lynx inserts multiple blank lines, so squeeze them. - mhfixmsg last -outfile - | squeeze_lines >"$actual" + run_prog mhfixmsg last -outfile - | squeeze_lines >"$actual" check "$expected" "$actual" 'ignore space' else rm -f "$expected" @@ -963,7 +923,7 @@ There are two CR-LF pairs at the end of this sentence. EOF -mhfixmsg last -outfile "$actual" +run_prog mhfixmsg last -outfile "$actual" check "$expected" "$actual" @@ -1029,7 +989,8 @@ EOF if [ $can_reformat_texthtml -eq 1 ]; then #### lynx inserts multiple blank lines, so squeeze them. - mhfixmsg last -replacetextplain -outfile - | squeeze_lines > "$actual" + run_prog mhfixmsg last -replacetextplain -outfile - | \ + squeeze_lines > "$actual" check "$expected" "$actual" 'ignore space' else rm -f "$expected" @@ -1067,7 +1028,59 @@ Content-Disposition: inline ------=_Part_876302-- EOF -mhfixmsg last -replacetextplain -noreplacetextplain -outfile "$actual" +run_prog mhfixmsg last -replacetextplain -noreplacetextplain -outfile "$actual" +check "$expected" "$actual" + + +# check removal of extraneous trailing semicolon from header parameter list +cat >"$expected" <`mhpath new` <"$expected" <`mhpath new` <"$actual"