X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/64e8827c5d5def0325ab7181fe939623c77e807c..a30ef3465250ae21bb3928a6e120ba4351cf8ff0:/test/mhbuild/test-attach diff --git a/test/mhbuild/test-attach b/test/mhbuild/test-attach index 00fe1900..c97ec394 100755 --- a/test/mhbuild/test-attach +++ b/test/mhbuild/test-attach @@ -1,7 +1,7 @@ #!/bin/sh ###################################################### # -# Test the use of the Attach: header +# Test the use of the Nmh-Attach: header # ###################################################### @@ -14,7 +14,10 @@ fi setup_test +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 + draft="$MH_TEST_DIR/$$.draft" +backup="${MH_TEST_DIR}/`mhparam sbackup`$$.draft.orig" expected="$MH_TEST_DIR/$$.expected" # @@ -25,7 +28,7 @@ cat > "$draft" < cc: Fcc: +outbox -Attach: ${srcdir}/test/mhbuild/tiny.jpg +Nmh-Attach: ${srcdir}/test/mhbuild/tiny.jpg ------ EOF @@ -55,7 +58,8 @@ cat > "$draft" < 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 +86,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 +107,7 @@ cat > "$draft" < cc: Fcc: +outbox -Attach: +Nmh-Attach: ------ This is a test of an empty attach header. EOF @@ -136,6 +148,36 @@ MIME-Version: 1.0 Content-Type: text/plain EOF +# +# Check an md5'd attachment +# + +cat > "$draft" < +cc: +Fcc: +outbox +Subject: Test of digested part + +#text/plain; name="textplain" [ - ] ${srcdir}/test/mhbuild/textplain + +EOF + +mhbuild -check "$draft" + +cat > "$expected" < +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 +229,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" < @@ -200,7 +242,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" < "$expected" < @@ -231,23 +273,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 -This is some HTML t=C3=ABxt. +This is some HTML tëxt. @@ -266,4 +310,99 @@ EOF check "$draft" "$expected" +# +# One attachment, text/plain containing some binary characters, +# include NUL bytes. +# + +cat > "$draft" < +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" < +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" < "$draft" < +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" < +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}