X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Fmultipart;h=7757b3774b8ecb2785b31dd2549c10455804bbf6;hp=dde25abc2fa7c0b0e6b175178b4e740a4a979c50;hb=33cf04c6a5f76cba2bf56a27504eaf9ac022f5a2;hpb=d67f75549785117a8e0c3bc4f0bd71352a29974c diff --git a/test/multipart b/test/multipart index dde25abc..7757b377 100755 --- a/test/multipart +++ b/test/multipart @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash test_description="output of multipart message" . ./test-lib.sh @@ -17,8 +17,19 @@ Content-Type: multipart/signed; boundary="==-=-="; Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= +Content-Type: message/rfc822 +Content-Disposition: inline -This is an inline text part. +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 @@ -47,9 +58,10 @@ W6cAmQE4dcYrx/LPLtYLZm1jsGauE5hE EOF notmuch new > /dev/null -test_begin_subtest "Show multipart MIME message (--format=text)" -output=$(notmuch show --format=text 'id:87liy5ap00.fsf@yoom.home.cworth.org') -test_expect_equal "$output" " message{ id:87liy5ap00.fsf@yoom.home.cworth.org depth:0 match:1 filename:/home/cworth/src/notmuch/test/tmp.multipart/mail/multipart +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 @@ -58,27 +70,259 @@ To: cworth@cworth.org Date: Tue, 05 Jan 2001 15:43:57 -0000 header} body{ - part{ ID: 1, Content-type: text/plain -This is an inline text part. + 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: 2, Content-type: text/plain + attachment{ ID: 5, Content-type: text/plain Attachment: attachment (text/plain) This is a text attachment. attachment} - part{ ID: 3, Content-type: text/plain + part{ ID: 6, Content-type: text/plain And this message is signed. -Carl part} - part{ ID: 4, Content-type: application/pgp-signature + part} + part{ ID: 7, Content-type: application/pgp-signature Non-text part: application/pgp-signature part} + part} body} message}" -test_begin_subtest "Show multipart MIME message (--format=json)" -output=$(notmuch show --format=json 'id:87liy5ap00.fsf@yoom.home.cworth.org') -test_expect_equal "$output" '[[[{"id": "87liy5ap00.fsf@yoom.home.cworth.org", "match": true, "filename": "/home/cworth/src/notmuch/test/tmp.multipart/mail/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": "text/plain", "content": "This is an inline text part.\n"}, {"id": 2, "content-type": "text/plain", "filename": "attachment", "content": "This is a text attachment.\n"}, {"id": 3, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}, {"id": 4, "content-type": "application/pgp-signature"}]}, []]]]' +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_done +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