#!/bin/bash test_description="output of multipart message" . ./test-lib.sh cat < ${MAIL_DIR}/multipart From: Carl Worth To: cworth@cworth.org Subject: Multipart message Date: Tue, 05 Jan 2001 15:43:57 -0000 User-Agent: Notmuch/0.5 (http://notmuchmail.org) Emacs/23.3.1 (i486-pc-linux-gnu) Message-ID: <87liy5ap00.fsf@yoom.home.cworth.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: message/rfc822 Content-Disposition: inline From: Carl Worth To: cworth@cworth.org Subject: html message Date: Tue, 05 Jan 2001 15:42:57 -0000 User-Agent: Notmuch/0.5 (http://notmuchmail.org) Emacs/23.3.1 (i486-pc-linux-gnu) Message-ID: <87liy5ap01.fsf@yoom.home.cworth.org> MIME-Version: 1.0 Content-Type: text/html

This is an imbeded message, with a single html part.

--=-=-= Content-Disposition: attachment; filename=attachment This is a text attachment. --=-=-= And this message is signed. -Carl --=-=-=-- --==-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk3SA/gACgkQ6JDdNq8qSWj0sACghqVJEQJUs3yV8zbTzhgnSIcD W6cAmQE4dcYrx/LPLtYLZm1jsGauE5hE =zkga -----END PGP SIGNATURE----- --==-=-=-- EOF notmuch new > /dev/null test_begin_subtest "--format=text --part=0, full message" output=$(notmuch show --format=text --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " message{ id:87liy5ap00.fsf@yoom.home.cworth.org depth:0 match:1 filename:${MAIL_DIR}/multipart header{ Carl Worth (2001-01-05) (attachment inbox unread) Subject: Multipart message From: Carl Worth To: cworth@cworth.org Date: Tue, 05 Jan 2001 15:43:57 -0000 header} body{ part{ ID: 1, Content-type: multipart/signed part{ ID: 2, Content-type: multipart/mixed part{ ID: 3, Content-type: message/rfc822 part{ ID: 4, Content-type: text/html Non-text part: text/html part} part} attachment{ ID: 5, Content-type: text/plain Attachment: attachment (text/plain) This is a text attachment. attachment} part{ ID: 6, Content-type: text/plain And this message is signed. -Carl part} part} part{ ID: 7, Content-type: application/pgp-signature Non-text part: application/pgp-signature part} part} body} message}" test_begin_subtest "--format=text --part=1, message body" output=$(notmuch show --format=text --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " part{ ID: 1, Content-type: multipart/signed part{ ID: 2, Content-type: multipart/mixed part{ ID: 3, Content-type: message/rfc822 part{ ID: 4, Content-type: text/html Non-text part: text/html part} part} attachment{ ID: 5, Content-type: text/plain Attachment: attachment (text/plain) This is a text attachment. attachment} part{ ID: 6, Content-type: text/plain And this message is signed. -Carl part} part} part{ ID: 7, Content-type: application/pgp-signature Non-text part: application/pgp-signature part} part}" test_begin_subtest "--format=text --part=2, multipart/mixed" output=$(notmuch show --format=text --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " part{ ID: 2, Content-type: multipart/mixed part{ ID: 3, Content-type: message/rfc822 part{ ID: 4, Content-type: text/html Non-text part: text/html part} part} attachment{ ID: 5, Content-type: text/plain Attachment: attachment (text/plain) This is a text attachment. attachment} part{ ID: 6, Content-type: text/plain And this message is signed. -Carl part} part}" test_begin_subtest "--format=text --part=3, rfc822 multipart" output=$(notmuch show --format=text --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " part{ ID: 3, Content-type: message/rfc822 part{ ID: 4, Content-type: text/html Non-text part: text/html part} part}" test_begin_subtest "--format=text --part=4, html part" output=$(notmuch show --format=text --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " part{ ID: 4, Content-type: text/html Non-text part: text/html part}" test_begin_subtest "--format=text --part=5, inline attachement" output=$(notmuch show --format=text --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " attachment{ ID: 5, Content-type: text/plain Attachment: attachment (text/plain) This is a text attachment. attachment}" test_begin_subtest "--format=text --part=6, plain text part" output=$(notmuch show --format=text --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " part{ ID: 6, Content-type: text/plain And this message is signed. -Carl part}" test_begin_subtest "--format=text --part=7, pgp signature (unverified)" output=$(notmuch show --format=text --part=7 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ " part{ ID: 7, Content-type: application/pgp-signature Non-text part: application/pgp-signature part}" test_expect_success \ "--format=text --part=8, no part, expect error" \ "notmuch show --format=text --part=8 'id:87liy5ap00.fsf@yoom.home.cworth.org'" test_begin_subtest "--format=json --part=0, full message" output=$(notmuch show --format=json --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": "87liy5ap00.fsf@yoom.home.cworth.org", "match": true, "filename": "'"${MAIL_DIR}/multipart"'", "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["attachment","inbox","unread"], "headers": {"Subject": "Multipart message", "From": "Carl Worth ", "To": "cworth@cworth.org", "Cc": "", "Bcc": "", "Date": "Tue, 05 Jan 2001 15:43:57 -0000"}, "body": [{"id": 1, "content-type": "multipart/signed", "content": [{"id": 2, "content-type": "multipart/mixed", "content": [{"id": 3, "content-type": "message/rfc822", "content": [{"id": 4, "content-type": "text/html"}]}, {"id": 5, "content-type": "text/plain", "filename": "attachment", "content": "This is a text attachment.\n"}, {"id": 6, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}]}, {"id": 7, "content-type": "application/pgp-signature"}]}]}' test_begin_subtest "--format=json --part=1, message body" output=$(notmuch show --format=json --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": 1, "content-type": "multipart/signed", "content": [{"id": 2, "content-type": "multipart/mixed", "content": [{"id": 3, "content-type": "message/rfc822", "content": [{"id": 4, "content-type": "text/html"}]}, {"id": 5, "content-type": "text/plain", "filename": "attachment", "content": "This is a text attachment.\n"}, {"id": 6, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}]}, {"id": 7, "content-type": "application/pgp-signature"}]}' test_begin_subtest "--format=json --part=2, multipart/mixed" output=$(notmuch show --format=json --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": 2, "content-type": "multipart/mixed", "content": [{"id": 3, "content-type": "message/rfc822", "content": [{"id": 4, "content-type": "text/html"}]}, {"id": 5, "content-type": "text/plain", "filename": "attachment", "content": "This is a text attachment.\n"}, {"id": 6, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}]}' test_begin_subtest "--format=json --part=3, rfc822 multipart" output=$(notmuch show --format=json --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": 3, "content-type": "message/rfc822", "content": [{"id": 4, "content-type": "text/html"}]}' test_begin_subtest "--format=json --part=4, html part" output=$(notmuch show --format=json --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": 4, "content-type": "text/html"}' test_begin_subtest "--format=json --part=5, inline attachment" output=$(notmuch show --format=json --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": 5, "content-type": "text/plain", "filename": "attachment", "content": "This is a text attachment.\n"}' test_begin_subtest "--format=json --part=6, plain text part" output=$(notmuch show --format=json --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": 6, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}' test_begin_subtest "--format=json --part=7, pgp signature (unverified)" output=$(notmuch show --format=json --part=7 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '{"id": 7, "content-type": "application/pgp-signature"}' test_expect_success \ "--format=json --part=8, no part, expect error" \ "notmuch show --format=json --part=8 'id:87liy5ap00.fsf@yoom.home.cworth.org'" test_begin_subtest "--format=raw" output=$(notmuch show --format=raw 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" "$(cat "${MAIL_DIR}"/multipart)" test_begin_subtest "--format=raw --part=0, full message" output=$(notmuch show --format=raw --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" "$(cat "${MAIL_DIR}"/multipart)" test_begin_subtest "--format=raw --part=1, message body" output=$(notmuch show --format=raw --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '

This is an imbeded message, with a single html part.

This is a text attachment. And this message is signed. -Carl -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk3SA/gACgkQ6JDdNq8qSWj0sACghqVJEQJUs3yV8zbTzhgnSIcD W6cAmQE4dcYrx/LPLtYLZm1jsGauE5hE =zkga -----END PGP SIGNATURE-----' test_begin_subtest "--format=raw --part=2, multipart/mixed" output=$(notmuch show --format=raw --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '

This is an imbeded message, with a single html part.

This is a text attachment. And this message is signed. -Carl' test_begin_subtest "--format=raw --part=3, rfc822 multipart" output=$(notmuch show --format=raw --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '

This is an imbeded message, with a single html part.

' test_begin_subtest "--format=raw --part=4, html part" output=$(notmuch show --format=raw --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '

This is an imbeded message, with a single html part.

' test_begin_subtest "--format=raw --part=5, inline attachment" output=$(notmuch show --format=raw --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ 'This is a text attachment.' test_begin_subtest "--format=raw --part=6, plain text part" output=$(notmuch show --format=raw --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ 'And this message is signed. -Carl' test_begin_subtest "--format=raw --part=7, pgp signature (unverified)" output=$(notmuch show --format=raw --part=7 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" \ '-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk3SA/gACgkQ6JDdNq8qSWj0sACghqVJEQJUs3yV8zbTzhgnSIcD W6cAmQE4dcYrx/LPLtYLZm1jsGauE5hE =zkga -----END PGP SIGNATURE-----' test_expect_success \ "--format=raw --part=8, no part, expect error" \ "notmuch show --format=raw --part=8 'id:87liy5ap00.fsf@yoom.home.cworth.org'" test_begin_subtest "--format=mbox" output=$(notmuch show --format=mbox 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" "$(printf "From cworth@cworth.org Fri Jan 5 15:43:57 2001\n"; cat "${MAIL_DIR}"/multipart)" test_expect_success \ "--format=mbox --part=1, incompatible, expect error" \ "! notmuch show --format=mbox --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org'" test_begin_subtest "'notmuch reply' to a multipart message" output=$(notmuch reply 'id:87liy5ap00.fsf@yoom.home.cworth.org') test_expect_equal "$output" "From: Notmuch Test Suite Subject: Re: Multipart message To: Carl Worth , cworth@cworth.org In-Reply-To: <87liy5ap00.fsf@yoom.home.cworth.org> References: <87liy5ap00.fsf@yoom.home.cworth.org> On Tue, 05 Jan 2001 15:43:57 -0000, Carl Worth wrote: Non-text part: multipart/signed Non-text part: multipart/mixed Non-text part: message/rfc822 Non-text part: text/html > This is a text attachment. > And this message is signed. > > -Carl Non-text part: application/pgp-signature" test_done