#!/bin/sh ###################################################### # # Test UTF-8 body along with an attachment # ###################################################### set -e if test -z "${MH_OBJ_DIR}"; then srcdir=`dirname "$0"`/../.. MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR fi . "${MH_OBJ_DIR}/test/common.sh" setup_test testname="${MH_TEST_DIR}/$$" #### Rely on sendmail/pipe below to override default mts. mts_fakesendmail="${MHMTSCONF}-fakesendmail" cp "${MHMTSCONF}" "$mts_fakesendmail" printf 'sendmail: %s/test/fakesendmail\n' "$srcdir" >>"$mts_fakesendmail" MHMTSCONF="$mts_fakesendmail" # argument: expected output test_attachment () { send -draft -mts sendmail/pipe # fakesendmail drops the message and any cc's into this mbox. mbox="${MH_TEST_DIR}"/Mail/fakesendmail.mbox inc -silent -file "$mbox" rm -f "$mbox" "$mbox.map" # # It's hard to calculate the exact Date: header post is going to # use, so we'll just use sed to remove the actual date so we can easily # compare it against our "correct" output. And same for charset. # sed -e 's/^Date:.*/Date:/' -e 's/; charset=".*//' \ "`mhpath cur`" > "${testname}.actual" check "${testname}.actual" "$1" } # check that 7-bit body isn't encoded cat > "${MH_TEST_DIR}/attachment.txt" < "${MH_TEST_DIR}/Mail/draft" < To: Somebody Subject: Test Nmh-Attachment: $MH_TEST_DIR/attachment.txt This is a test. EOF cat > "${testname}.expected" < To: Somebody Subject: Test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" Date: ------- =_aaaaaaaaaa0 Content-Type: text/plain This is a test. ------- =_aaaaaaaaaa0 Content-Type: text/plain; name="attachment.txt" Content-Description: attachment.txt Content-Disposition: attachment; filename="attachment.txt" this is an attachment ------- =_aaaaaaaaaa0-- EOF test_attachment "${testname}.expected" # check that 8-bit body is encoded as quoted-printable text/plain, # even with an attachment cat > "${MH_TEST_DIR}/Mail/draft" < To: Somebody Subject: Test Nmh-Attachment: $MH_TEST_DIR/attachment.txt ĦAy, caramba! EOF cat > "${testname}.expected" < To: Somebody Subject: Test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" Date: ------- =_aaaaaaaaaa0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable =A1Ay, caramba! ------- =_aaaaaaaaaa0 Content-Type: text/plain; name="attachment.txt" Content-Description: attachment.txt Content-Disposition: attachment; filename="attachment.txt" this is an attachment ------- =_aaaaaaaaaa0-- EOF test_attachment "${testname}.expected" rm -f ${MHMTSCONF} "${MH_TEST_DIR}/attachment.txt" exit ${failed:-0}