mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-01-08 17:51:42 +01:00
c51d5b3cdb
Previously, the outer multipart part of any multipart/mixed, multipart/signed, etc. MIME message was silently omitted from the "notmuch show" output. This prevented any client from correctly determining to which parts a signature applies, for example. Now, we actually emit these parts as their own parts. The output is still flattened---the contained parts are not yet included "within" the multipart part---so it's still not possible to determine to which parts a signature applies, but this is one step along the path. The test suite is updated to reflect this change, (though we'll eventually want to fix the emacs interface to not display buttons for the multipart enclosure parts as there's nothing useful for the user to actually do with them).
88 lines
3 KiB
Bash
Executable file
88 lines
3 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="=-=-="
|
||
|
||
--=-=-=
|
||
|
||
This is an inline text 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 "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
|
||
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}
|
||
part{ ID: 2, Content-type: multipart/mixed
|
||
part}
|
||
part{ ID: 3, Content-type: text/plain
|
||
This is an inline text part.
|
||
part}
|
||
attachment{ ID: 4, Content-type: text/plain
|
||
Attachment: attachment (text/plain)
|
||
This is a text attachment.
|
||
attachment}
|
||
part{ ID: 5, Content-type: text/plain
|
||
And this message is signed.
|
||
|
||
-Carl
|
||
part}
|
||
part{ ID: 6, Content-type: application/pgp-signature
|
||
Non-text part: application/pgp-signature
|
||
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 <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"}, {"id": 2, "content-type": "multipart/mixed"}, {"id": 3, "content-type": "text/plain", "content": "This is an inline text part.\n"}, {"id": 4, "content-type": "text/plain", "filename": "attachment", "content": "This is a text attachment.\n"}, {"id": 5, "content-type": "text/plain", "content": "And this message is signed.\n\n-Carl\n"}, {"id": 6, "content-type": "application/pgp-signature"}]}, []]]]'
|
||
|
||
test_done
|
||
|