setup_test
-export LC_ALL=en_US.UTF-8
+require_locale en_US.utf-8 en_US.utf8
+LC_ALL=en_US.UTF-8; export LC_ALL
draft="$MH_TEST_DIR/$$.draft"
+backup="${MH_TEST_DIR}/`mhparam sbackup`$$.draft.orig"
expected="$MH_TEST_DIR/$$.expected"
#
cc:
Fcc: +outbox
Attach: ${srcdir}/test/mhbuild/tiny.jpg
+Attach: ${srcdir}/test/mhbuild/nulls
------
This is a test
EOF
/9g=
+------- =_aaaaaaaaaa0
+Content-Type: application/octet-stream; name="nulls"
+Content-Description: nulls
+Content-Disposition: attachment; filename="nulls"
+Content-Transfer-Encoding: base64
+
+AAAAAAAAAAAAAAAAAAAA
+
------- =_aaaaaaaaaa0--
EOF
Content-Type: text/plain
EOF
+#
+# Check an md5'd attachment
+#
+
+cat > "$draft" <<EOF
+To: Mr Test <mrtest@example.com>
+cc:
+Fcc: +outbox
+Subject: Test of digested part
+
+#text/plain; name="textplain" [ - ] ${srcdir}/test/mhbuild/textplain
+
+EOF
+
+mhbuild -check "$draft"
+
+cat > "$expected" <<EOF
+To: Mr Test <mrtest@example.com>
+cc:
+Fcc: +outbox
+Subject: Test of digested part
+MIME-Version: 1.0
+Content-Type: text/plain; name="textplain"; charset="us-ascii"
+Content-Description: -
+Content-MD5: x3hNJn10cGowZv+ILUkycw==
+Content-Transfer-Encoding: quoted-printable
+
+This is a text/plain part.
+EOF
+
check "$draft" "$expected"
#
Subject: A more complete multipart test
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
+Content-Transfer-Encoding: 8bit
------- =_aaaaaaaaaa0
Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa1"
+Content-Transfer-Encoding: 8bit
------- =_aaaaaaaaaa1
Content-Type: text/plain; charset="UTF-8"
-Content-Transfer-Encoding: quoted-printable
+Content-Transfer-Encoding: 8bit
-This is some t=C3=ABxt.
+This is some tëxt.
------- =_aaaaaaaaaa1
Content-Type: text/html; charset="UTF-8"
-Content-Transfer-Encoding: quoted-printable
+Content-Transfer-Encoding: 8bit
<html>
<body>
-This is some HTML t=C3=ABxt.
+This is some HTML tëxt.
</body>
</html>
check "$draft" "$expected"
+#
+# One attachment, text/plain containing some binary characters,
+# include NUL bytes.
+#
+
+cat > "$draft" <<EOF
+To: Mr Test <mrtest@example.com>
+cc:
+Fcc: +outbox
+Subject: Testing some binary chars
+--------
+This is some tëxt.
+#text/plain; name="somebinary" [ - ] {attachment} ${srcdir}/test/mhbuild/somebinary
+EOF
+
+run_prog mhbuild "$draft"
+
+cat > "$expected" <<EOF
+To: Mr Test <mrtest@example.com>
+cc:
+Fcc: +outbox
+Subject: Testing some binary chars
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
+Content-Transfer-Encoding: 8bit
+
+------- =_aaaaaaaaaa0
+Content-Type: text/plain; charset="UTF-8"
+Content-Transfer-Encoding: 8bit
+
+This is some tëxt.
+
+------- =_aaaaaaaaaa0
+Content-Type: text/plain; name="somebinary"; charset="us-ascii"
+Content-Description: -
+Content-Disposition: attachment; filename="somebinary"
+Content-Transfer-Encoding: quoted-printable
+
+
+=46rom here on, this is only =
+
+a test, though it contains =13ome
+=00odd=00 bytes.
+
+------- =_aaaaaaaaaa0--
+EOF
+
+check "$draft" "$expected"
+
+[ ${failed:=0} -eq 0 ] && rm -f ${backup}
+
exit ${failed:-0}