]> diplodocus.org Git - nmh/blobdiff - test/mhbuild/test-attach
mhfixmsg now replaces RFC 2047 encoding with RFC 2231 encoding of
[nmh] / test / mhbuild / test-attach
index 00fe1900e344957b4cfa8cf485807c19ae48fb4c..3b285ef695e7c4a1ad3414abb8acc44d8e2a118d 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 ######################################################
 #
-# Test the use of the Attach: header
+# Test the use of the Nmh-Attach: header
 #
 ######################################################
 
@@ -14,7 +14,11 @@ fi
 
 setup_test
 
+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"
 
 #
@@ -25,7 +29,7 @@ cat > "$draft" <<EOF
 To: Mr Test <mrtest@example.com>
 cc:
 Fcc: +outbox
-Attach: ${srcdir}/test/mhbuild/tiny.jpg
+Nmh-Attach: ${srcdir}/test/mhbuild/tiny.jpg
 ------
 EOF
 
@@ -55,7 +59,8 @@ cat > "$draft" <<EOF
 To: Mr Test <mrtest@example.com>
 cc:
 Fcc: +outbox
-Attach: ${srcdir}/test/mhbuild/tiny.jpg
+Nmh-Attach: ${srcdir}/test/mhbuild/tiny.jpg
+Nmh-Attach: ${srcdir}/test/mhbuild/nulls
 ------
 This is a test
 EOF
@@ -82,6 +87,14 @@ Content-Transfer-Encoding: base64
 
 /9g=
 
+------- =_aaaaaaaaaa0
+Content-Type: application/octet-stream; name="nulls"
+Content-Description: nulls
+Content-Disposition: attachment; filename="nulls"
+Content-Transfer-Encoding: base64
+
+AAAAAAAAAAAAAAAAAAAA
+
 ------- =_aaaaaaaaaa0--
 EOF
 
@@ -95,7 +108,7 @@ cat > "$draft" <<EOF
 To: Mr Test <mrtest@example.com>
 cc:
 Fcc: +outbox
-Attach:
+Nmh-Attach:
 ------
 This is a test of an empty attach header.
 EOF
@@ -136,6 +149,36 @@ MIME-Version: 1.0
 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"
 
 #
@@ -187,7 +230,7 @@ Fcc: +outbox
 Subject: An empty dist test
 EOF
 
-LC_ALL=en_US.UTF-8 run_prog mhbuild -dist "$draft"
+run_prog mhbuild -dist "$draft"
 
 cat > "$expected" <<EOF
 To: =?UTF-8?Q?Se=C3=B1or_Test?= <mrtest@example.com>
@@ -200,7 +243,7 @@ check "$draft" "$expected"
 
 #
 # Two parts, one attachment; make sure mixing of multiparts at different
-# levels works
+# levels works.  This also tests Attach: instead of Nmh-Attach:.
 #
 
 cat > "$draft" <<EOF
@@ -222,7 +265,7 @@ This is some HTML tëxt.
 #end
 EOF
 
-LC_ALL=en_US.UTF-8 run_prog mhbuild "$draft"
+run_prog mhbuild "$draft"
 
 cat > "$expected" <<EOF
 To: Mr Test <mrtest@example.com>
@@ -231,23 +274,25 @@ Fcc: +outbox
 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>
 
@@ -266,4 +311,99 @@ EOF
 
 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"
+
+# check that blank line is inserted between header and content
+
+cat > "$MH_TEST_DIR/Mail/oneline" <<EOF
+There needs to be a blank line before this content line.
+EOF
+
+cat > "$draft" <<EOF
+To: Mr Test <mrtest@example.com>
+cc:
+Fcc: +outbox
+Subject: test blank line between header and content
+--------
+#text/plain {inline} $MH_TEST_DIR/Mail/oneline
+#application/octet-stream {inline} $MH_TEST_DIR/Mail/oneline
+EOF
+
+run_prog mhbuild "$draft"
+
+cat > "$expected" <<EOF
+To: Mr Test <mrtest@example.com>
+cc:
+Fcc: +outbox
+Subject: test blank line between header and content
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
+
+------- =_aaaaaaaaaa0
+Content-Type: text/plain; charset="us-ascii"
+Content-Disposition: inline; filename="oneline"
+
+There needs to be a blank line before this content line.
+
+------- =_aaaaaaaaaa0
+Content-Type: application/octet-stream
+Content-Disposition: inline; filename="oneline"
+
+There needs to be a blank line before this content line.
+
+------- =_aaaaaaaaaa0--
+EOF
+
+check "$draft" "$expected"
+
+
+[ ${failed:=0} -eq 0 ]  &&  rm -f ${backup}
+
 exit ${failed:-0}