expected="$MH_TEST_DIR/$$.expected"
actual="$MH_TEST_DIR/$$.actual"
-require_locale en_US.utf-8 en_US.utf8
-LC_ALL=en_US.UTF-8; export LC_ALL
+require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
#### Rely on sendmail/pipe below to override default mts.
mts_fakesendmail="${MHMTSCONF}-fakesendmail"
# 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"
+ rm -f "$mbox"
#
# 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.
+ # compare it against our "correct" output. And same for charset,
+ # because mime_type() can rely on file(1) --mime-encoding.
#
sed -e 's/^Date:.*/Date:/' -e 's/; charset="[^;]*//' \
"`mhpath cur`" > "${testname}.actual"
check "${testname}.actual" "$1"
}
+
# check that 7-bit body isn't encoded
+start_test "7-bit body isn't encoded"
cat > "${MH_TEST_DIR}/attachment.txt" <<EOF
this is an attachment
EOF
From: Mr Nobody <nobody@example.com>
To: Somebody <somebody@example.com>
Subject: Test
-Attach: $MH_TEST_DIR/attachment.txt
+Nmh-Attach: $MH_TEST_DIR/attachment.txt
This is a test.
EOF
test_attachment "${testname}.expected"
+
# check that 8-bit body is encoded as quoted-printable text/plain,
# even with an attachment
-
+start_test '8-bit body is encoded as quoted-printable text/plain'
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody <nobody@example.com>
To: Somebody <somebody@example.com>
Subject: Test
-Attach: $MH_TEST_DIR/attachment.txt
+Nmh-Attach: $MH_TEST_DIR/attachment.txt
¡Ay, caramba!
EOF
test_attachment "${testname}.expected"
-# Repeat the previous test, but make sure that the locale is set to C, which
-# should cause mhbuild to fail
+
+# check that 8-bit attachment gets C-T-E
+start_test '8-bit attachment gets C-T-E'
+rm -f "${MH_TEST_DIR}/attachment.txt"
+cat > "${MH_TEST_DIR}/attachment.txt" <<EOF
+8-bit attachment, ¡Ay, caramba!
+EOF
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody <nobody@example.com>
To: Somebody <somebody@example.com>
Subject: Test
-Attach: $MH_TEST_DIR/attachment.txt
+Nmh-Attach: $MH_TEST_DIR/attachment.txt
+EOF
+
+cat > "${testname}.expected" <<EOF
+From: Mr Nobody <nobody@example.com>
+To: Somebody <somebody@example.com>
+Subject: Test
+MIME-Version: 1.0
+Content-Type: text/plain; name="attachment.txt"
+Content-Description: attachment.txt
+Content-Disposition: attachment; filename="attachment.txt"
+Content-Transfer-Encoding: 8bit
+Date:
+
+8-bit attachment, ¡Ay, caramba!
+EOF
+
+test_attachment "${testname}.expected"
+
+
+# check 8-bit body but make sure that the locale is set to C, which
+# should cause mhbuild to fail
+start_test '8-bit body with C locale'
+cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
+From: Mr Nobody <nobody@example.com>
+To: Somebody <somebody@example.com>
+Subject: Test
+Nmh-Attach: $MH_TEST_DIR/attachment.txt
¡Ay, caramba!
EOF
check "$expected" "$actual"
+
+# previous test, but with locale profile entry
+start_test '8-bit body with C locale with locale profile entry'
+
+printf 'locale: en_US.UTF-8\n' >> "${MH}"
+
+cat > "${testname}.expected" <<EOF
+From: Mr Nobody <nobody@example.com>
+To: Somebody <somebody@example.com>
+Subject: Test
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
+Content-Transfer-Encoding: 8bit
+Date:
+
+------- =_aaaaaaaaaa0
+Content-Type: text/plain
+Content-Transfer-Encoding: 8bit
+
+¡Ay, caramba!
+
+------- =_aaaaaaaaaa0
+Content-Type: text/plain; name="attachment.txt"
+Content-Description: attachment.txt
+Content-Disposition: attachment; filename="attachment.txt"
+Content-Transfer-Encoding: 8bit
+
+8-bit attachment, ¡Ay, caramba!
+
+------- =_aaaaaaaaaa0--
+EOF
+
+test_attachment "${testname}.expected"
+
+
rm -f ${MHMTSCONF} "${MH_TEST_DIR}/attachment.txt"
+finish_test
exit ${failed:-0}
# emacs hackage to ensure that it writes the inverted exclamation