From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id BE908429E32 for ; Sat, 28 May 2011 14:52:33 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -1.921 X-Spam-Level: X-Spam-Status: No, score=-1.921 tagged_above=-999 required=5 tests=[NO_DNS_FOR_FROM=0.379, RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z12iBzBGJQWJ for ; Sat, 28 May 2011 14:52:30 -0700 (PDT) Received: from outgoing-mail.its.caltech.edu (outgoing-mail.its.caltech.edu [131.215.239.19]) by olra.theworths.org (Postfix) with ESMTP id BEA4F429E40 for ; Sat, 28 May 2011 14:52:17 -0700 (PDT) Received: from earth-doxen.imss.caltech.edu (localhost [127.0.0.1]) by earth-doxen-postvirus (Postfix) with ESMTP id 4738366E02C5; Sat, 28 May 2011 14:52:16 -0700 (PDT) X-Spam-Scanned: at Caltech-IMSS on earth-doxen by amavisd-new Received: from servo.finestructure.net (cpe-98-149-172-122.socal.res.rr.com [98.149.172.122]) (Authenticated sender: jrollins) by earth-doxen-submit (Postfix) with ESMTP id D351266E019B; Sat, 28 May 2011 14:52:12 -0700 (PDT) Received: by servo.finestructure.net (Postfix, from userid 1000) id 626BD99E; Sat, 28 May 2011 14:52:05 -0700 (PDT) From: Jameson Graef Rollins To: Notmuch Mail Subject: [PATCH 24/25] test: modify multipart test to use test_expect_equal_file Date: Sat, 28 May 2011 14:51:59 -0700 Message-Id: <1306619520-25730-25-git-send-email-jrollins@finestructure.net> X-Mailer: git-send-email 1.7.4.4 In-Reply-To: <1306619520-25730-24-git-send-email-jrollins@finestructure.net> References: <1306619520-25730-1-git-send-email-jrollins@finestructure.net> <1306619520-25730-2-git-send-email-jrollins@finestructure.net> <1306619520-25730-3-git-send-email-jrollins@finestructure.net> <1306619520-25730-4-git-send-email-jrollins@finestructure.net> <1306619520-25730-5-git-send-email-jrollins@finestructure.net> <1306619520-25730-6-git-send-email-jrollins@finestructure.net> <1306619520-25730-7-git-send-email-jrollins@finestructure.net> <1306619520-25730-8-git-send-email-jrollins@finestructure.net> <1306619520-25730-9-git-send-email-jrollins@finestructure.net> <1306619520-25730-10-git-send-email-jrollins@finestructure.net> <1306619520-25730-11-git-send-email-jrollins@finestructure.net> <1306619520-25730-12-git-send-email-jrollins@finestructure.net> <1306619520-25730-13-git-send-email-jrollins@finestructure.net> <1306619520-25730-14-git-send-email-jrollins@finestructure.net> <1306619520-25730-15-git-send-email-jrollins@finestructure.net> <1306619520-25730-16-git-send-email-jrollins@finestructure.net> <1306619520-25730-17-git-send-email-jrollins@finestructure.net> <1306619520-25730-18-git-send-email-jrollins@finestructure.net> <1306619520-25730-19-git-send-email-jrollins@finestructure.net> <1306619520-25730-20-git-send-email-jrollins@finestructure.net> <1306619520-25730-21-git-send-email-jrollins@finestructure.net> <1306619520-25730-22-git-send-email-jrollins@finestructure.net> <1306619520-25730-23-git-send-email-jrollins@finestructure.net> <1306619520-25730-24-git-send-email-jrollins@finestructure.net> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 May 2011 21:52:34 -0000 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. --- test/multipart | 189 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 121 insertions(+), 68 deletions(-) diff --git a/test/multipart b/test/multipart index 62efd84..6d194a5 100755 --- a/test/multipart +++ b/test/multipart @@ -59,9 +59,9 @@ 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 +notmuch show --format=text --part=0 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT +cat <EXPECTED + message{ id:87liy5ap00.fsf@yoom.home.cworth.org depth:0 match:1 filename:${MAIL_DIR}/multipart header{ Carl Worth (2001-01-05) (attachment inbox signed unread) Subject: Multipart message @@ -92,12 +92,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 <EXPECTED + message{ id:87liy5ap00.fsf@yoom.home.cworth.org depth:0 match:1 filename:${MAIL_DIR}/multipart + header{ +Carl Worth (2001-01-05) (attachment inbox signed 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 @@ -117,12 +128,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 <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 @@ -137,47 +152,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 <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 <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 <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 <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 <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" \ @@ -197,11 +224,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') @@ -228,17 +257,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" \ -'

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

+notmuch show --format=raw --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT +# output should *not* include newline +echo >>OUTPUT +cat <EXPECTED +

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

This is a text attachment. And this message is signed. @@ -249,65 +280,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" \ -'

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

+notmuch show --format=raw --part=2 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT +cat <EXPECTED +

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

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" \ -'

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

' +notmuch show --format=raw --part=3 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT +cat <EXPECTED +

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

+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" \ -'

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

' +notmuch show --format=raw --part=4 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT +cat <EXPECTED +

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

+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 <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 <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 <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 +notmuch reply 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT +cat <EXPECTED +From: Notmuch Test Suite Subject: Re: Multipart message To: Carl Worth , cworth@cworth.org In-Reply-To: <87liy5ap00.fsf@yoom.home.cworth.org> @@ -322,7 +374,8 @@ 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_done -- 1.7.4.4