#!/bin/sh ###################################################### # # Test the use of the Attach: header # ###################################################### 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 export LC_ALL=en_US.UTF-8 draft="$MH_TEST_DIR/$$.draft" expected="$MH_TEST_DIR/$$.expected" # # Test out a simple draft, one part. # cat > "$draft" < cc: Fcc: +outbox Attach: ${srcdir}/test/mhbuild/tiny.jpg ------ EOF run_prog mhbuild "$draft" cat > "$expected" < cc: Fcc: +outbox MIME-Version: 1.0 Content-Type: image/jpeg; name="tiny.jpg" Content-Description: tiny.jpg Content-Disposition: attachment; filename="tiny.jpg" Content-Transfer-Encoding: base64 /9g= EOF check "$draft" "$expected" # # Check out more common case, one (or more) attachments # along with message text. # cat > "$draft" < cc: Fcc: +outbox Attach: ${srcdir}/test/mhbuild/tiny.jpg ------ This is a test EOF run_prog mhbuild "$draft" cat > "$expected" < cc: Fcc: +outbox MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" This is a test ------- =_aaaaaaaaaa0 Content-Type: image/jpeg; name="tiny.jpg" Content-Description: tiny.jpg Content-Disposition: attachment; filename="tiny.jpg" Content-Transfer-Encoding: base64 /9g= ------- =_aaaaaaaaaa0-- EOF check "$draft" "$expected" # # An empty Attach header # cat > "$draft" < cc: Fcc: +outbox Attach: ------ This is a test of an empty attach header. EOF run_prog mhbuild "$draft" cat > "$expected" < cc: Fcc: +outbox MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" This is a test of an empty attach header. EOF check "$draft" "$expected" # # Check a completely empty message # cat > "$draft" < cc: Fcc: +outbox Subject: Test of an empty body EOF run_prog mhbuild "$draft" cat > "$expected" < cc: Fcc: +outbox Subject: Test of an empty body MIME-Version: 1.0 Content-Type: text/plain EOF check "$draft" "$expected" # # Make sure we fail if we run into a MIME-Version header # cat > "$draft" < cc: Fcc: +outbox Subject: Test of an already-MIMEified message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" This is a preformatted MIME content test. EOF set +e run_test 'eval mhbuild "$draft"' "mhbuild: draft shouldn't contain MIME-Version: field" set -e # # Run it again using -auto # run_prog mhbuild -auto "$draft" cat > "$expected" < cc: Fcc: +outbox Subject: Test of an already-MIMEified message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" This is a preformatted MIME content test. EOF check "$draft" "$expected" # # Make sure -dist does nothing but encode headers # cat > "$draft" < cc: Fcc: +outbox Subject: An empty dist test EOF run_prog mhbuild -dist "$draft" cat > "$expected" < cc: Fcc: +outbox Subject: An empty dist test EOF check "$draft" "$expected" # # Two parts, one attachment; make sure mixing of multiparts at different # levels works # cat > "$draft" < cc: Fcc: +outbox Subject: A more complete multipart test Attach: ${srcdir}/test/mhbuild/tiny.jpg -------- #begin alternative # This is some HTML tëxt. #end EOF run_prog mhbuild "$draft" cat > "$expected" < cc: Fcc: +outbox Subject: A more complete multipart test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" ------- =_aaaaaaaaaa0 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa1" ------- =_aaaaaaaaaa1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is some t=C3=ABxt. ------- =_aaaaaaaaaa1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is some HTML t=C3=ABxt. ------- =_aaaaaaaaaa1-- ------- =_aaaaaaaaaa0 Content-Type: image/jpeg; name="tiny.jpg" Content-Description: tiny.jpg Content-Disposition: attachment; filename="tiny.jpg" Content-Transfer-Encoding: base64 /9g= ------- =_aaaaaaaaaa0-- EOF check "$draft" "$expected" exit ${failed:-0}