mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
e267f9a467
This gives coverage for the segmentation fault in "notmuch reply" that was just fixed with the previous commit.
328 lines
12 KiB
Bash
Executable file
328 lines
12 KiB
Bash
Executable file
#!/bin/bash
|
||
test_description="output of multipart message"
|
||
. ./test-lib.sh
|
||
|
||
cat <<EOF > ${MAIL_DIR}/multipart
|
||
From: Carl Worth <cworth@cworth.org>
|
||
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 <cworth@cworth.org>
|
||
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
|
||
|
||
<p>This is an imbeded message, with a single html part.</p>
|
||
|
||
--=-=-=
|
||
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 <cworth@cworth.org> (2001-01-05) (attachment inbox unread)
|
||
Subject: Multipart message
|
||
From: Carl Worth <cworth@cworth.org>
|
||
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 <cworth@cworth.org>", "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" \
|
||
'<p>This is an imbeded message, with a single html part.</p>
|
||
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" \
|
||
'<p>This is an imbeded message, with a single html part.</p>
|
||
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" \
|
||
'<p>This is an imbeded message, with a single html part.</p>'
|
||
|
||
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" \
|
||
'<p>This is an imbeded message, with a single html part.</p>'
|
||
|
||
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 <test_suite@notmuchmail.org>
|
||
Subject: Re: Multipart message
|
||
To: Carl Worth <cworth@cworth.org>, 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 <cworth@cworth.org> 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
|