]> diplodocus.org Git - nmh/blobdiff - test/mhbuild/test-utf8-body
Replace strchr() condition with TrimSuffixC().
[nmh] / test / mhbuild / test-utf8-body
index 650133c9bd2ff3bc2c398d105ac899de29f012ff..22de535cbc9277a11c4efe7c02aa2c197fc86e26 100755 (executable)
@@ -16,8 +16,10 @@ fi
 
 setup_test
 testname="${MH_TEST_DIR}/$$"
+expected="$MH_TEST_DIR/$$.expected"
+actual="$MH_TEST_DIR/$$.actual"
 
-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"
@@ -46,7 +48,9 @@ test_attachment ()
   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
@@ -85,9 +89,10 @@ 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>
@@ -124,8 +129,67 @@ EOF
 
 test_attachment "${testname}.expected"
 
+
+# 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
+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
+Attach: $MH_TEST_DIR/attachment.txt
+
+¡Ay, caramba!
+EOF
+
+LC_ALL="C"; export LC_ALL
+
+set +e
+run_prog send -draft -mts sendmail/pipe > "$actual" 2>&1
+set -e
+
+cat > "$expected" <<EOF
+mhbuild: Text content contains 8 bit characters, but character set is US-ASCII
+${MH_INST_DIR}${bindir}/mhbuild: exit 1
+EOF
+
+check "$expected" "$actual"
+
+
 rm -f ${MHMTSCONF} "${MH_TEST_DIR}/attachment.txt"
 
+finish_test
 exit ${failed:-0}
 
 # emacs hackage to ensure that it writes the inverted exclamation