X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/74e9deda951a5b0151e18225c87f567f72ee11a4..9cf9f118998a7635485e13863d1bc16c1486bb05:/test/mhfixmsg/test-mhfixmsg diff --git a/test/mhfixmsg/test-mhfixmsg b/test/mhfixmsg/test-mhfixmsg index 1a01de2f..cd2a5caf 100755 --- a/test/mhfixmsg/test-mhfixmsg +++ b/test/mhfixmsg/test-mhfixmsg @@ -14,19 +14,29 @@ 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" 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 + 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 - 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 @@ -53,7 +63,7 @@ Usage: mhfixmsg [+folder] [msgs] [switches] -help EOF -mhfixmsg -help >"$actual" 2>&1 +run_prog mhfixmsg -help >"$actual" 2>&1 check "$expected" "$actual" @@ -178,7 +188,7 @@ check "$MH_TEST_DIR"/Mail/inbox/,11 "$MH_TEST_DIR"/Mail/inbox/11.original # check -reformat (enabled by default): addition of text/plain part # to solitary text/html part # -cat >"$expected" <"$expected" <"$expected.err" - #### lynx inserts multiple blank lines, so use uniq to squeeze them. - mhfixmsg last -outfile - -verbose 2>"$actual.err" | uniq >"$actual" - check "$expected" "$actual" + #### lynx inserts multiple blank lines, so squeeze them. + run_prog mhfixmsg last -outfile - -verbose 2>"$actual.err" | \ + squeeze_lines >"$actual" + check "$expected" "$actual" 'ignore space' 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" <"$expected" <"$expected.err" - #### lynx inserts multiple blank lines, so use uniq to squeeze them. - mhfixmsg last -outfile - -verbose 2>"$actual.err" | uniq >"$actual" - check "$expected" "$actual" + #### lynx inserts multiple blank lines, so squeeze them. + run_prog mhfixmsg last -outfile - -verbose 2>"$actual.err" | \ + squeeze_lines >"$actual" + check "$expected" "$actual" 'ignore space' check "$expected.err" "$actual.err" +else + rm -f "$expected" fi # check -nodecode -cat >"$expected" <"$expected" <"$expected.err" - #### lynx inserts multiple blank lines, so use uniq to squeeze them. - mhfixmsg last -nodecode -outfile - -verbose 2>"$actual.err" | uniq >"$actual" - check "$expected" "$actual" + #### lynx inserts multiple blank lines, so squeeze them. + run_prog mhfixmsg last -nodecode -outfile - -verbose 2>"$actual.err" | \ + squeeze_lines >"$actual" + check "$expected" "$actual" 'ignore space' check "$expected.err" "$actual.err" +else + rm -f "$expected" fi @@ -427,7 +450,7 @@ VGhpcyBpcyBhIHRleHQvcGxhaW4gcGFydC4K ------- =_aaaaaaaaaa0-- EOF -mhfixmsg last -outfile "$actual" +run_prog mhfixmsg last -outfile "$actual" check "$expected" "$actual" @@ -531,7 +554,7 @@ 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" @@ -556,7 +579,7 @@ EOF cp -p `mhpath last` "$expected" set +e -mhfixmsg last +run_prog mhfixmsg last set -e check `mhpath last` "$expected" 'keep first' @@ -584,7 +607,7 @@ rmm last # check that -reformat succeeds when decode of binary text fails -cat >"$expected" <<'EOF' +prepare_space >"$expected" <<'EOF' MIME-Version: 1.0 Date: Thu, 11 Apr 2013 02:47:08 -0700 To: @@ -644,10 +667,10 @@ d>"$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" @@ -695,10 +718,10 @@ vbI9vAo= EOF set +e -mhfixmsg last -textcodeset utf-8 -outfile "$actual" 2>"$actual.err" +run_prog 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" @@ -738,7 +761,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 +801,7 @@ check "$expected" "$actual" # check that text/plain part is added to lone text/html in multipart/related -cat >"$expected" <"$expected" <"$actual" - check "$expected" "$actual" + #### lynx inserts multiple blank lines, so squeeze them. + run_prog mhfixmsg last -outfile - | squeeze_lines >"$actual" + check "$expected" "$actual" 'ignore space' else rm -f "$expected" fi @@ -940,12 +963,12 @@ 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" # check -replacetextplain -cat >"$expected" <"$expected" < "$actual" + check "$expected" "$actual" 'ignore space' +else + rm -f "$expected" +fi + # check -noreplacetextplain cat >"$expected" <