mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-25 19:04:53 +01:00
test: modify multipart test to use test_expect_equal_file
Again, this is a much cleaner and more thorough test, and in fact exposes a bug in the format=text output, that will be fixed the next commit. Because of this, some of the multipart tests currently fail.
This commit is contained in:
parent
5b0bf70faa
commit
61ff61cc2c
1 changed files with 121 additions and 67 deletions
188
test/multipart
188
test/multipart
|
@ -92,9 +92,9 @@ increment_mtime "$MAIL_DIR"
|
|||
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
|
||||
notmuch show --format=text --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
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 signed unread)
|
||||
Subject: Multipart message
|
||||
|
@ -125,12 +125,23 @@ Non-text part: application/pgp-signature
|
|||
part}
|
||||
part}
|
||||
body}
|
||||
message}"
|
||||
message}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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
|
||||
test_begin_subtest "--format=text --part=0, full message"
|
||||
notmuch show --format=text --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
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 signed 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
|
||||
|
@ -150,12 +161,16 @@ And this message is signed.
|
|||
part{ ID: 7, Content-type: application/pgp-signature
|
||||
Non-text part: application/pgp-signature
|
||||
part}
|
||||
part}"
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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
|
||||
notmuch show --format=text --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
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
|
||||
|
@ -170,47 +185,59 @@ And this message is signed.
|
|||
|
||||
-Carl
|
||||
part}
|
||||
part}"
|
||||
part}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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
|
||||
notmuch show --format=text --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
part{ ID: 3, Content-type: message/rfc822
|
||||
part{ ID: 4, Content-type: text/html
|
||||
Non-text part: text/html
|
||||
part}
|
||||
part}"
|
||||
part}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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
|
||||
notmuch show --format=text --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
part{ ID: 4, Content-type: text/html
|
||||
Non-text part: text/html
|
||||
part}"
|
||||
part}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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
|
||||
notmuch show --format=text --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
attachment{ ID: 5, Content-type: text/plain
|
||||
Attachment: attachment (text/plain)
|
||||
This is a text attachment.
|
||||
attachment}"
|
||||
attachment}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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
|
||||
notmuch show --format=text --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
part{ ID: 6, Content-type: text/plain
|
||||
And this message is signed.
|
||||
|
||||
-Carl
|
||||
part}"
|
||||
part}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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
|
||||
notmuch show --format=text --part=7 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
part{ ID: 7, Content-type: application/pgp-signature
|
||||
Non-text part: application/pgp-signature
|
||||
part}"
|
||||
part}
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
test_expect_success \
|
||||
"--format=text --part=8, no part, expect error" \
|
||||
|
@ -230,11 +257,13 @@ 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_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
test_begin_subtest "--format=json --part=4, html part"
|
||||
output=$(notmuch show --format=json --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org')
|
||||
|
@ -261,17 +290,19 @@ test_expect_success \
|
|||
"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)"
|
||||
notmuch show --format=raw 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
test_expect_equal_file OUTPUT "${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)"
|
||||
notmuch show --format=raw --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
test_expect_equal_file OUTPUT "${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 embedded message, with a single html part.</p>
|
||||
notmuch show --format=raw --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
# output should *not* include newline
|
||||
echo >>OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
<p>This is an embedded message, with a single html part.</p>
|
||||
This is a text attachment.
|
||||
And this message is signed.
|
||||
|
||||
|
@ -282,65 +313,86 @@ Version: GnuPG v1.4.11 (GNU/Linux)
|
|||
iEYEARECAAYFAk3SA/gACgkQ6JDdNq8qSWj0sACghqVJEQJUs3yV8zbTzhgnSIcD
|
||||
W6cAmQE4dcYrx/LPLtYLZm1jsGauE5hE
|
||||
=zkga
|
||||
-----END PGP SIGNATURE-----'
|
||||
-----END PGP SIGNATURE-----
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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 embedded message, with a single html part.</p>
|
||||
notmuch show --format=raw --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
<p>This is an embedded message, with a single html part.</p>
|
||||
This is a text attachment.
|
||||
And this message is signed.
|
||||
|
||||
-Carl'
|
||||
-Carl
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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 embedded message, with a single html part.</p>'
|
||||
notmuch show --format=raw --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
<p>This is an embedded message, with a single html part.</p>
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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 embedded message, with a single html part.</p>'
|
||||
notmuch show --format=raw --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
<p>This is an embedded message, with a single html part.</p>
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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.'
|
||||
notmuch show --format=raw --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
This is a text attachment.
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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.
|
||||
notmuch show --format=raw --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
And this message is signed.
|
||||
|
||||
-Carl'
|
||||
-Carl
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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-----
|
||||
notmuch show --format=raw --part=7 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
# output should *not* include newline
|
||||
echo >>OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAk3SA/gACgkQ6JDdNq8qSWj0sACghqVJEQJUs3yV8zbTzhgnSIcD
|
||||
W6cAmQE4dcYrx/LPLtYLZm1jsGauE5hE
|
||||
=zkga
|
||||
-----END PGP SIGNATURE-----'
|
||||
-----END PGP SIGNATURE-----
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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)"
|
||||
notmuch show --format=mbox 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
printf "From cworth@cworth.org Fri Jan 5 15:43:57 2001\n" >EXPECTED
|
||||
cat "${MAIL_DIR}"/multipart >>EXPECTED
|
||||
# mbox output is expected to include a blank line
|
||||
echo >>EXPECTED
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
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>
|
||||
notmuch reply 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||
cat <<EOF >EXPECTED
|
||||
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>
|
||||
|
@ -355,7 +407,9 @@ Non-text part: text/html
|
|||
> And this message is signed.
|
||||
>
|
||||
> -Carl
|
||||
Non-text part: application/pgp-signature"
|
||||
Non-text part: application/pgp-signature
|
||||
EOF
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
|
||||
test_begin_subtest "'notmuch show --part' does not corrupt a part with CRLF pair"
|
||||
notmuch show --format=raw --part=3 id:base64-part-with-crlf > crlf.out
|
||||
|
|
Loading…
Reference in a new issue