From: Jameson Graef Rollins Date: Sun, 12 Aug 2012 17:39:28 +0000 (+1700) Subject: [PATCH 2/2] test: move all emacs show tests to emacs-show test script X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=ca2965952e9fc3c79c681072e50a45a84bdfaa7f;p=notmuch-archives.git [PATCH 2/2] test: move all emacs show tests to emacs-show test script --- diff --git a/0a/9b1632d7f330d3196bea5100baa2d79c59b823 b/0a/9b1632d7f330d3196bea5100baa2d79c59b823 new file mode 100644 index 000000000..3a6629844 --- /dev/null +++ b/0a/9b1632d7f330d3196bea5100baa2d79c59b823 @@ -0,0 +1,945 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id CDBE5431FC4 + for ; Sun, 12 Aug 2012 10:39:50 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + 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 p4gO8qBhQKiv for ; + Sun, 12 Aug 2012 10:39:39 -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 7A44D431FBD + for ; Sun, 12 Aug 2012 10:39:37 -0700 (PDT) +Received: from earth-doxen.imss.caltech.edu (localhost [127.0.0.1]) + by earth-doxen-postvirus (Postfix) with ESMTP id 42A6766E0011 + for ; Sun, 12 Aug 2012 10:39:35 -0700 (PDT) +X-Spam-Scanned: at Caltech-IMSS on earth-doxen by amavisd-new +Received: from finestructure.net (unknown [76.89.192.57]) + (Authenticated sender: jrollins) + by earth-doxen-submit (Postfix) with ESMTP id 35A9866E00AD + for ; Sun, 12 Aug 2012 10:39:30 -0700 (PDT) +Received: by finestructure.net (Postfix, from userid 1000) + id CA276244; Sun, 12 Aug 2012 10:39:28 -0700 (PDT) +From: Jameson Graef Rollins +To: Notmuch Mail +Subject: [PATCH 2/2] test: move all emacs show tests to emacs-show test script +Date: Sun, 12 Aug 2012 10:39:28 -0700 +Message-Id: <1344793168-23555-2-git-send-email-jrollins@finestructure.net> +X-Mailer: git-send-email 1.7.10.4 +In-Reply-To: <1344793168-23555-1-git-send-email-jrollins@finestructure.net> +References: <87r4rf9q8x.fsf@qmul.ac.uk> + <1344793168-23555-1-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: Sun, 12 Aug 2012 17:39:51 -0000 + +No functional change. + +Most notmuch-show mode tests were in the emacs script, while some were +in the emacs-show script. This moves all the notmuch-show mode tests +to the emacs-show script, to make things a little more consistent. +--- +This patch is not necessary, but I think it makes the emacs tests +clearer, by not having tests for show-mode split across multiple test +scripts. + + test/emacs | 397 +---------------------------------------------------- + test/emacs-show | 409 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 410 insertions(+), 396 deletions(-) + +diff --git a/test/emacs b/test/emacs +index afe35ba..9cb5795 100755 +--- a/test/emacs ++++ b/test/emacs +@@ -54,49 +54,6 @@ test_emacs '(notmuch-hello) + (test-output)' + test_expect_equal_file OUTPUT $EXPECTED/notmuch-hello-view-inbox + +-test_begin_subtest "Basic notmuch-show view in emacs" +-maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) +-test_emacs "(notmuch-show \"$maildir_storage_thread\") +- (test-output)" +-test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage +- +-test_begin_subtest "Basic notmuch-show view in emacs default indentation" +-maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) +-test_emacs "(let ((notmuch-show-indent-messages-width 1)) +- (notmuch-show \"$maildir_storage_thread\") +- (test-output))" +-test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage +- +-test_begin_subtest "Basic notmuch-show view in emacs without indentation" +-maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) +-test_emacs "(let ((notmuch-show-indent-messages-width 0)) +- (notmuch-show \"$maildir_storage_thread\") +- (test-output))" +-test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage-without-indentation +- +-test_begin_subtest "Basic notmuch-show view in emacs with fourfold indentation" +-maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) +-test_emacs "(let ((notmuch-show-indent-messages-width 4)) +- (notmuch-show \"$maildir_storage_thread\") +- (test-output))" +-test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage-with-fourfold-indentation +- +-test_begin_subtest "notmuch-show for message with invalid From" +-add_message "[subject]=\"message-with-invalid-from\"" \ +- "[from]=\"\\\"Invalid \\\" From\\\" \"" +-thread=$(notmuch search --output=threads subject:message-with-invalid-from) +-test_emacs "(notmuch-show \"$thread\") +- (test-output)" +-cat <EXPECTED +-"Invalid " (2001-01-05) (inbox) +-Subject: message-with-invalid-from +-To: Notmuch Test Suite +-Date: Fri, 05 Jan 2001 15:43:57 +0000 +- +-This is just a test message (#1) +-EOF +-test_expect_equal_file OUTPUT EXPECTED +- + test_begin_subtest "Navigation of notmuch-search to thread view" + test_emacs '(notmuch-search "tag:inbox") + (notmuch-test-wait) +@@ -122,18 +79,6 @@ test_emacs "(notmuch-search \"$os_x_darwin_thread\") + output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) + test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)" + +-test_begin_subtest "Add tag from notmuch-show view" +-test_emacs "(notmuch-show \"$os_x_darwin_thread\") +- (execute-kbd-macro \"+tag-from-show-view\")" +-output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) +-test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox tag-from-show-view unread)" +- +-test_begin_subtest "Remove tag from notmuch-show view" +-test_emacs "(notmuch-show \"$os_x_darwin_thread\") +- (execute-kbd-macro \"-tag-from-show-view\")" +-output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) +-test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)" +- + test_begin_subtest "Message with .. in Message-Id:" + add_message [id]=123..456@example '[subject]="Message with .. in Message-Id"' + test_emacs '(notmuch-search "id:\"123..456@example\"") +@@ -351,248 +296,7 @@ Sender writes: + EOF + test_expect_equal_file OUTPUT EXPECTED + +-test_begin_subtest "Reply within emacs to a multipart/mixed message" +-test_emacs '(let ((message-hidden-headers ''())) +- (notmuch-show "id:20091118002059.067214ed@hikari") +- (notmuch-show-reply) +- (test-output))' +-sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT +-cat <EXPECTED +-From: Notmuch Test Suite +-To: Adrian Perez de Castro , notmuch@notmuchmail.org +-Subject: Re: [notmuch] Introducing myself +-In-Reply-To: <20091118002059.067214ed@hikari> +-Fcc: ${MAIL_DIR}/sent +-References: <20091118002059.067214ed@hikari> +-User-Agent: Notmuch/XXX Emacs/XXX +---text follows this line-- +-Adrian Perez de Castro writes: +- +-> Hello to all, +-> +-> I have just heard about Not Much today in some random Linux-related news +-> site (LWN?), my name is Adrian Perez and I work as systems administrator +-> (although I can do some code as well :P). I have always thought that the +-> ideas behind Sup were great, but after some time using it, I got tired of +-> the oddities that it has. I also do not like doing things like having to +-> install Ruby just for reading and sorting mails. Some time ago I thought +-> about doing something like Not Much and in fact I played a bit with the +-> Python+Xapian and the Python+Whoosh combinations, because I find relaxing +-> to code things in Python when I am not working and also it is installed +-> by default on most distribution. I got to have some mailboxes indexed and +-> basic searching working a couple of months ago. Lately I have been very +-> busy and had no time for coding, and them... boom! Not Much appears -- and +-> it is almost exactly what I was trying to do, but faster. I have been +-> playing a bit with Not Much today, and I think it has potential. +-> +-> Also, I would like to share one idea I had in mind, that you might find +-> interesting: One thing I have found very annoying is having to re-tag my +-> mail when the indexes get b0rked (it happened a couple of times to me while +-> using Sup), so I was planning to mails as read/unread and adding the tags +-> not just to the index, but to the mail text itself, e.g. by adding a +-> "X-Tags" header field or by reusing the "Keywords" one. This way, the index +-> could be totally recreated by re-reading the mail directories, and this +-> would also allow to a tools like OfflineIMAP [1] to get the mails into a +-> local maildir, tagging and indexing the mails with the e-mail reader and +-> then syncing back the messages with the "X-Tags" header to the IMAP server. +-> This would allow to use the mail reader from a different computer and still +-> have everything tagged finely. +-> +-> Best regards, +-> +-> +-> --- +-> [1] http://software.complete.org/software/projects/show/offlineimap +-> +-> -- +-> Adrian Perez de Castro +-> Igalia - Free Software Engineering +-> _______________________________________________ +-> notmuch mailing list +-> notmuch@notmuchmail.org +-> http://notmuchmail.org/mailman/listinfo/notmuch +-EOF +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Reply within emacs to a multipart/alternative message" +-test_emacs '(let ((message-hidden-headers ''())) +- (notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") +- (notmuch-show-reply) +- (test-output))' +-sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT +-cat <EXPECTED +-From: Notmuch Test Suite +-To: Alex Botero-Lowry , notmuch@notmuchmail.org +-Subject: Re: [notmuch] preliminary FreeBSD support +-In-Reply-To: +-Fcc: ${MAIL_DIR}/sent +-References: +-User-Agent: Notmuch/XXX Emacs/XXX +---text follows this line-- +-Alex Botero-Lowry writes: +- +-> I saw the announcement this morning, and was very excited, as I had been +-> hoping sup would be turned into a library, +-> since I like the concept more than the UI (I'd rather an emacs interface). +-> +-> I did a preliminary compile which worked out fine, but +-> sysconf(_SC_SC_GETPW_R_SIZE_MAX) returns -1 on +-> FreeBSD, so notmuch_config_open segfaulted. +-> +-> Attached is a patch that supplies a default buffer size of 64 in cases where +-> -1 is returned. +-> +-> http://www.opengroup.org/austin/docs/austin_328.txt - seems to indicate this +-> is acceptable behavior, +-> and http://mail-index.netbsd.org/pkgsrc-bugs/2006/06/07/msg016808.htmlspecifically +-> uses 64 as the +-> buffer size. +-> _______________________________________________ +-> notmuch mailing list +-> notmuch@notmuchmail.org +-> http://notmuchmail.org/mailman/listinfo/notmuch +-EOF +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Reply within emacs to an html-only message" +-add_message '[content-type]="text/html"' \ +- '[body]="Hi,
This is an HTML test message.

OK?"' +-test_emacs "(let ((message-hidden-headers '()) (mm-text-html-renderer 'html2text)) +- (notmuch-show \"id:${gen_msg_id}\") +- (notmuch-show-reply) +- (test-output))" +-sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT +-cat <EXPECTED +-From: Notmuch Test Suite +-To: +-Subject: Re: Reply within emacs to an html-only message +-In-Reply-To: <${gen_msg_id}> +-Fcc: ${MAIL_DIR}/sent +-References: <${gen_msg_id}> +-User-Agent: Notmuch/XXX Emacs/XXX +---text follows this line-- +-Notmuch Test Suite writes: +- +-> Hi,This is an HTML test message.OK? +-EOF +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Quote MML tags in reply" +-message_id='test-emacs-mml-quoting@message.id' +-add_message [id]="$message_id" \ +- "[subject]='$test_subtest_name'" \ +- '[body]="<#part disposition=inline>"' +-test_emacs "(let ((message-hidden-headers '())) +- (notmuch-show \"id:$message_id\") +- (notmuch-show-reply) +- (test-output))" +-sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT +-cat <EXPECTED +-From: Notmuch Test Suite +-To: +-Subject: Re: Quote MML tags in reply +-In-Reply-To: +-Fcc: ${MAIL_DIR}/sent +-References: +-User-Agent: Notmuch/XXX Emacs/XXX +---text follows this line-- +-Notmuch Test Suite writes: +- +-> <#!part disposition=inline> +-EOF +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Save attachment from within emacs using notmuch-show-save-attachments" +-# save as archive to test that Emacs does not re-compress .gz +-test_emacs '(let ((standard-input "\"attachment1.gz\"")) +- (notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") +- (notmuch-show-save-attachments))' +-test_expect_equal_file attachment1.gz "$EXPECTED/attachment" +- +-test_begin_subtest "Save attachment from within emacs using notmuch-show-save-part" +-# save as archive to test that Emacs does not re-compress .gz +-test_emacs '(let ((standard-input "\"attachment2.gz\"")) +- (notmuch-show-save-part "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com" 5))' +-test_expect_equal_file attachment2.gz "$EXPECTED/attachment" +- +-test_begin_subtest "View raw message within emacs" +-test_emacs '(notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") +- (notmuch-show-view-raw-message) +- (test-output)' +-test_expect_equal_file OUTPUT $EXPECTED/raw-message-cf0c4d-52ad0a +- +-test_begin_subtest "Hiding/showing signature in notmuch-show view" +-maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) +-test_emacs "(notmuch-show \"$maildir_storage_thread\") +- (search-forward \"Click/Enter to show.\") +- (button-activate (button-at (point))) +- (search-backward \"Click/Enter to hide.\") +- (button-activate (button-at (point))) +- (test-output)" +-test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage +- +-test_begin_subtest "Detection and hiding of top-post quoting of message" +-add_message '[subject]="The problem with top-posting"' \ +- [id]=top-post-target \ +- '[body]="A: Because it messes up the order in which people normally read text. +-Q: Why is top-posting such a bad thing? +-A: Top-posting. +-Q: What is the most annoying thing in e-mail?"' +-add_message '[from]="Top Poster "' \ +- [in-reply-to]=top-post-target \ +- [references]=top-post-target \ +- '[subject]="Re: The problem with top-posting"' \ +- '[body]="Thanks for the advice! I will be sure to put it to good use. +- +--Top Poster +- +------ Original Message ----- +-From: Notmuch Test Suite +-To: Notmuch Test Suite +-Sent: Fri, 05 Jan 2001 15:43:57 +0000 +-Subject: The problem with top-posting +- +-Q: Why is top-posting such a bad thing? +-A: Top-posting. +-Q: What is the most annoying thing in e-mail?"' +-test_emacs "(notmuch-show \"top-posting\") +- (test-visible-output)" +-echo "Notmuch Test Suite (2001-01-05) (inbox) +-Subject: The problem with top-posting +-To: Notmuch Test Suite +-Date: Fri, 05 Jan 2001 15:43:57 +0000 +- +-A: Because it messes up the order in which people normally read text. +-Q: Why is top-posting such a bad thing? +-A: Top-posting. +-Q: What is the most annoying thing in e-mail? +-Top Poster (2001-01-05) (inbox unread) +-Subject: Re: The problem with top-posting +-To: Notmuch Test Suite +-Date: Fri, 05 Jan 2001 15:43:57 +0000 +- +-Thanks for the advice! I will be sure to put it to good use. +- +--Top Poster +- +-[ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Hiding message in notmuch-show view" +-test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") +- (notmuch-show-toggle-message) +- (test-visible-output)' +-test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-with-hidden-messages +- +-test_begin_subtest "Hiding message with visible citation in notmuch-show view" +-test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") +- (search-forward "Click/Enter to show.") +- (button-activate (button-at (point))) +- (notmuch-show-toggle-message) +- (test-visible-output)' +-test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-with-hidden-messages +- +-test_begin_subtest "Stashing in notmuch-show" ++test_begin_subtest "Stashing in notmuch-search" + add_message '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \ + '[from]="Some One "' \ + '[to]="Some One Else "' \ +@@ -601,44 +305,6 @@ add_message '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \ + '[id]="bought"' \ + '[body]="Unable to stash body. Where did you get it in the first place?!?"' + notmuch tag +stashtest id:${gen_msg_id} +-test_emacs '(notmuch-show "id:\"bought\"") +- (notmuch-show-stash-date) +- (notmuch-show-stash-from) +- (notmuch-show-stash-to) +- (notmuch-show-stash-cc) +- (notmuch-show-stash-subject) +- (notmuch-show-stash-message-id) +- (notmuch-show-stash-message-id-stripped) +- (notmuch-show-stash-tags) +- (notmuch-show-stash-filename) +- (notmuch-show-stash-mlarchive-link "Gmane") +- (notmuch-show-stash-mlarchive-link "MARC") +- (notmuch-show-stash-mlarchive-link "Mail Archive, The") +- (switch-to-buffer +- (generate-new-buffer "*test-stashing*")) +- (dotimes (i 12) +- (yank) +- (insert "\n") +- (rotate-yank-pointer 1)) +- (reverse-region (point-min) (point-max)) +- (test-output)' +-cat <EXPECTED +-Sat, 01 Jan 2000 12:00:00 +0000 +-Some One +-Some One Else +-Notmuch +-Stash my stashables +-id:"bought" +-bought +-inbox,stashtest +-${gen_msg_filename} +-http://mid.gmane.org/bought +-http://marc.info/?i=bought +-http://mail-archive.com/search?l=mid&q=bought +-EOF +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Stashing in notmuch-search" + test_emacs '(notmuch-search "id:\"bought\"") + (notmuch-test-wait) + (notmuch-search-stash-thread-id) +@@ -649,67 +315,6 @@ test_emacs '(notmuch-search "id:\"bought\"") + sed -i -e 's/^thread:.*$/thread:XXX/' OUTPUT + test_expect_equal "$(cat OUTPUT)" "thread:XXX" + +-test_begin_subtest 'notmuch-show-advance-and-archive with invisible signature' +-message1='id:20091118010116.GC25380@dottiness.seas.harvard.edu' +-message2='id:1258491078-29658-1-git-send-email-dottedmag@dottedmag.net' +-test_emacs "(notmuch-search \"$message1 or $message2\") +- (notmuch-test-wait) +- (notmuch-search-show-thread) +- (goto-char (point-max)) +- (redisplay) +- (notmuch-show-advance-and-archive) +- (test-output)" +-test_emacs "(notmuch-show \"$message2\") +- (test-output \"EXPECTED\")" +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Refresh show buffer" +-test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") +- (test-visible-output "EXPECTED") +- (notmuch-show-refresh-view) +- (test-visible-output)' +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Refresh modified show buffer" +-test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") +- (notmuch-show-toggle-message) +- (notmuch-show-next-message) +- (notmuch-show-toggle-message) +- (test-visible-output "EXPECTED") +- (notmuch-show-refresh-view) +- (test-visible-output)' +-test_expect_equal_file OUTPUT EXPECTED +- +-test_begin_subtest "Do not call notmuch for non-inlinable application/mpeg parts" +-id='message-with-application/mpeg-attachment@notmuchmail.org' +-emacs_deliver_message \ +- 'Message with application/mpeg attachment' \ +- '' \ +- "(message-goto-eoh) +- (insert \"Message-ID: <$id>\n\") +- (message-goto-body) +- (mml-insert-part \"application/mpeg\") +- (insert \"a fake mp3 file\")" +-notmuch_counter_reset +-test_emacs "(let ((notmuch-command \"$notmuch_counter_command\")) +- (notmuch-show \"id:$id\"))" +-test_expect_equal $(notmuch_counter_value) 1 +- +-test_begin_subtest "Do not call notmuch for non-inlinable audio/mpeg parts" +-id='message-with-audio/mpeg-attachment@notmuchmail.org' +-emacs_deliver_message \ +- 'Message with audio/mpeg attachment' \ +- '' \ +- "(message-goto-eoh) +- (insert \"Message-ID: <$id>\n\") +- (message-goto-body) +- (mml-insert-part \"audio/mpeg\") +- (insert \"a fake mp3 file\")" +-notmuch_counter_reset +-test_emacs "(let ((notmuch-command \"$notmuch_counter_command\")) +- (notmuch-show \"id:$id\"))" +-test_expect_equal $(notmuch_counter_value) 1 +- + test_begin_subtest "notmuch-hello-mode hook is called" + counter=$(test_emacs \ + '(let ((notmuch-hello-mode-hook-counter 0)) +diff --git a/test/emacs-show b/test/emacs-show +index 695f929..923a808 100755 +--- a/test/emacs-show ++++ b/test/emacs-show +@@ -3,6 +3,67 @@ + test_description="emacs notmuch-show view" + . test-lib.sh + ++EXPECTED=$TEST_DIRECTORY/emacs.expected-output ++ ++add_email_corpus ++ ++test_begin_subtest "Basic notmuch-show view" ++maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) ++test_emacs "(notmuch-show \"$maildir_storage_thread\") ++ (test-output)" ++test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage ++ ++test_begin_subtest "Basic notmuch-show view default indentation" ++maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) ++test_emacs "(let ((notmuch-show-indent-messages-width 1)) ++ (notmuch-show \"$maildir_storage_thread\") ++ (test-output))" ++test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage ++ ++test_begin_subtest "Basic notmuch-show view without indentation" ++maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) ++test_emacs "(let ((notmuch-show-indent-messages-width 0)) ++ (notmuch-show \"$maildir_storage_thread\") ++ (test-output))" ++test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage-without-indentation ++ ++test_begin_subtest "Basic notmuch-show view with fourfold indentation" ++maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) ++test_emacs "(let ((notmuch-show-indent-messages-width 4)) ++ (notmuch-show \"$maildir_storage_thread\") ++ (test-output))" ++test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage-with-fourfold-indentation ++ ++test_begin_subtest "Message with invalid From" ++add_message "[subject]=\"message-with-invalid-from\"" \ ++ "[from]=\"\\\"Invalid \\\" From\\\" \"" ++thread=$(notmuch search --output=threads subject:message-with-invalid-from) ++test_emacs "(notmuch-show \"$thread\") ++ (test-output)" ++cat <EXPECTED ++"Invalid " (2001-01-05) (inbox) ++Subject: message-with-invalid-from ++To: Notmuch Test Suite ++Date: Fri, 05 Jan 2001 15:43:57 +0000 ++ ++This is just a test message (#1) ++EOF ++test_expect_equal_file OUTPUT EXPECTED ++ ++os_x_darwin_thread=$(notmuch search --output=threads id:ddd65cda0911171950o4eea4389v86de9525e46052d3@mail.gmail.com) ++ ++test_begin_subtest "Add tag" ++test_emacs "(notmuch-show \"$os_x_darwin_thread\") ++ (execute-kbd-macro \"+tag-from-show-view\")" ++output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) ++test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox tag-from-show-view unread)" ++ ++test_begin_subtest "Remove tag" ++test_emacs "(notmuch-show \"$os_x_darwin_thread\") ++ (execute-kbd-macro \"-tag-from-show-view\")" ++output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) ++test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)" ++ + test_begin_subtest "Hiding Original Message region at beginning of a message" + message_id='OriginalMessageHiding.1@notmuchmail.org' + add_message \ +@@ -24,6 +85,172 @@ test_emacs "(notmuch-show \"id:$message_id\") + (test-visible-output)" + test_expect_equal_file OUTPUT EXPECTED + ++test_begin_subtest "Do not call notmuch for non-inlinable application/mpeg parts" ++id='message-with-application/mpeg-attachment@notmuchmail.org' ++emacs_deliver_message \ ++ 'Message with application/mpeg attachment' \ ++ '' \ ++ "(message-goto-eoh) ++ (insert \"Message-ID: <$id>\n\") ++ (message-goto-body) ++ (mml-insert-part \"application/mpeg\") ++ (insert \"a fake mp3 file\")" ++notmuch_counter_reset ++test_emacs "(let ((notmuch-command \"$notmuch_counter_command\")) ++ (notmuch-show \"id:$id\"))" ++test_expect_equal $(notmuch_counter_value) 1 ++ ++test_begin_subtest "Do not call notmuch for non-inlinable audio/mpeg parts" ++id='message-with-audio/mpeg-attachment@notmuchmail.org' ++emacs_deliver_message \ ++ 'Message with audio/mpeg attachment' \ ++ '' \ ++ "(message-goto-eoh) ++ (insert \"Message-ID: <$id>\n\") ++ (message-goto-body) ++ (mml-insert-part \"audio/mpeg\") ++ (insert \"a fake mp3 file\")" ++notmuch_counter_reset ++test_emacs "(let ((notmuch-command \"$notmuch_counter_command\")) ++ (notmuch-show \"id:$id\"))" ++test_expect_equal $(notmuch_counter_value) 1 ++ ++test_begin_subtest "Save attachment using notmuch-show-save-attachments" ++# save as archive to test that Emacs does not re-compress .gz ++test_emacs '(let ((standard-input "\"attachment1.gz\"")) ++ (notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") ++ (notmuch-show-save-attachments))' ++test_expect_equal_file attachment1.gz "$EXPECTED/attachment" ++ ++test_begin_subtest "Save attachment using notmuch-show-save-part" ++# save as archive to test that Emacs does not re-compress .gz ++test_emacs '(let ((standard-input "\"attachment2.gz\"")) ++ (notmuch-show-save-part "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com" 5))' ++test_expect_equal_file attachment2.gz "$EXPECTED/attachment" ++ ++test_begin_subtest "View raw message" ++test_emacs '(notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") ++ (notmuch-show-view-raw-message) ++ (test-output)' ++test_expect_equal_file OUTPUT $EXPECTED/raw-message-cf0c4d-52ad0a ++ ++test_begin_subtest "Hide/show signature" ++maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) ++test_emacs "(notmuch-show \"$maildir_storage_thread\") ++ (search-forward \"Click/Enter to show.\") ++ (button-activate (button-at (point))) ++ (search-backward \"Click/Enter to hide.\") ++ (button-activate (button-at (point))) ++ (test-output)" ++test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-maildir-storage ++ ++test_begin_subtest "Detection and hiding of top-post quoting of message" ++add_message '[subject]="The problem with top-posting"' \ ++ [id]=top-post-target \ ++ '[body]="A: Because it messes up the order in which people normally read text. ++Q: Why is top-posting such a bad thing? ++A: Top-posting. ++Q: What is the most annoying thing in e-mail?"' ++add_message '[from]="Top Poster "' \ ++ [in-reply-to]=top-post-target \ ++ [references]=top-post-target \ ++ '[subject]="Re: The problem with top-posting"' \ ++ '[body]="Thanks for the advice! I will be sure to put it to good use. ++ ++-Top Poster ++ ++----- Original Message ----- ++From: Notmuch Test Suite ++To: Notmuch Test Suite ++Sent: Fri, 05 Jan 2001 15:43:57 +0000 ++Subject: The problem with top-posting ++ ++Q: Why is top-posting such a bad thing? ++A: Top-posting. ++Q: What is the most annoying thing in e-mail?"' ++test_emacs "(notmuch-show \"top-posting\") ++ (test-visible-output)" ++echo "Notmuch Test Suite (2001-01-05) (inbox) ++Subject: The problem with top-posting ++To: Notmuch Test Suite ++Date: Fri, 05 Jan 2001 15:43:57 +0000 ++ ++A: Because it messes up the order in which people normally read text. ++Q: Why is top-posting such a bad thing? ++A: Top-posting. ++Q: What is the most annoying thing in e-mail? ++Top Poster (2001-01-05) (inbox unread) ++Subject: Re: The problem with top-posting ++To: Notmuch Test Suite ++Date: Fri, 05 Jan 2001 15:43:57 +0000 ++ ++Thanks for the advice! I will be sure to put it to good use. ++ ++-Top Poster ++ ++[ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED ++test_expect_equal_file OUTPUT EXPECTED ++ ++test_begin_subtest "Hiding message" ++test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") ++ (notmuch-show-toggle-message) ++ (test-visible-output)' ++test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-with-hidden-messages ++ ++test_begin_subtest "Hiding message with visible citation" ++test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") ++ (search-forward "Click/Enter to show.") ++ (button-activate (button-at (point))) ++ (notmuch-show-toggle-message) ++ (test-visible-output)' ++test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-with-hidden-messages ++ ++test_begin_subtest "Stash commands" ++add_message '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \ ++ '[from]="Some One "' \ ++ '[to]="Some One Else "' \ ++ '[cc]="Notmuch "' \ ++ '[subject]="Stash my stashables"' \ ++ '[id]="bought"' \ ++ '[body]="Unable to stash body. Where did you get it in the first place?!?"' ++notmuch tag +stashtest id:${gen_msg_id} ++test_emacs '(notmuch-show "id:\"bought\"") ++ (notmuch-show-stash-date) ++ (notmuch-show-stash-from) ++ (notmuch-show-stash-to) ++ (notmuch-show-stash-cc) ++ (notmuch-show-stash-subject) ++ (notmuch-show-stash-message-id) ++ (notmuch-show-stash-message-id-stripped) ++ (notmuch-show-stash-tags) ++ (notmuch-show-stash-filename) ++ (notmuch-show-stash-mlarchive-link "Gmane") ++ (notmuch-show-stash-mlarchive-link "MARC") ++ (notmuch-show-stash-mlarchive-link "Mail Archive, The") ++ (switch-to-buffer ++ (generate-new-buffer "*test-stashing*")) ++ (dotimes (i 12) ++ (yank) ++ (insert "\n") ++ (rotate-yank-pointer 1)) ++ (reverse-region (point-min) (point-max)) ++ (test-output)' ++cat <EXPECTED ++Sat, 01 Jan 2000 12:00:00 +0000 ++Some One ++Some One Else ++Notmuch ++Stash my stashables ++id:"bought" ++bought ++inbox,stashtest ++${gen_msg_filename} ++http://mid.gmane.org/bought ++http://marc.info/?i=bought ++http://mail-archive.com/search?l=mid&q=bought ++EOF ++test_expect_equal_file OUTPUT EXPECTED ++ + test_begin_subtest "Bare subject #1" + output=$(test_emacs '(notmuch-show-strip-re "Re: subject")') + test_expect_equal "$output" '"subject"' +@@ -36,6 +263,37 @@ test_begin_subtest "Bare subject #3" + output=$(test_emacs '(notmuch-show-strip-re "the cure: fix the regexp")') + test_expect_equal "$output" '"the cure: fix the regexp"' + ++test_begin_subtest 'notmuch-show-advance-and-archive with invisible signature' ++message1='id:20091118010116.GC25380@dottiness.seas.harvard.edu' ++message2='id:1258491078-29658-1-git-send-email-dottedmag@dottedmag.net' ++test_emacs "(notmuch-search \"$message1 or $message2\") ++ (notmuch-test-wait) ++ (notmuch-search-show-thread) ++ (goto-char (point-max)) ++ (redisplay) ++ (notmuch-show-advance-and-archive) ++ (test-output)" ++test_emacs "(notmuch-show \"$message2\") ++ (test-output \"EXPECTED\")" ++test_expect_equal_file OUTPUT EXPECTED ++ ++test_begin_subtest "Refresh show buffer" ++test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") ++ (test-visible-output "EXPECTED") ++ (notmuch-show-refresh-view) ++ (test-visible-output)' ++test_expect_equal_file OUTPUT EXPECTED ++ ++test_begin_subtest "Refresh modified show buffer" ++test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com") ++ (notmuch-show-toggle-message) ++ (notmuch-show-next-message) ++ (notmuch-show-toggle-message) ++ (test-visible-output "EXPECTED") ++ (notmuch-show-refresh-view) ++ (test-visible-output)' ++test_expect_equal_file OUTPUT EXPECTED ++ + test_begin_subtest "Toggle display multipart/alternative" + cat < ${MAIL_DIR}/embedded_message + From: Carl Worth +@@ -83,4 +341,155 @@ cat <EXPECTED.diff + EOF + test_expect_equal_file {OUTPUT,EXPECTED}.diff + ++test_begin_subtest "Reply within emacs to a multipart/mixed message" ++test_emacs '(let ((message-hidden-headers ''())) ++ (notmuch-show "id:20091118002059.067214ed@hikari") ++ (notmuch-show-reply) ++ (test-output))' ++sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT ++cat <EXPECTED ++From: Notmuch Test Suite ++To: Adrian Perez de Castro , notmuch@notmuchmail.org ++Subject: Re: [notmuch] Introducing myself ++In-Reply-To: <20091118002059.067214ed@hikari> ++Fcc: ${MAIL_DIR}/sent ++References: <20091118002059.067214ed@hikari> ++User-Agent: Notmuch/XXX Emacs/XXX ++--text follows this line-- ++Adrian Perez de Castro writes: ++ ++> Hello to all, ++> ++> I have just heard about Not Much today in some random Linux-related news ++> site (LWN?), my name is Adrian Perez and I work as systems administrator ++> (although I can do some code as well :P). I have always thought that the ++> ideas behind Sup were great, but after some time using it, I got tired of ++> the oddities that it has. I also do not like doing things like having to ++> install Ruby just for reading and sorting mails. Some time ago I thought ++> about doing something like Not Much and in fact I played a bit with the ++> Python+Xapian and the Python+Whoosh combinations, because I find relaxing ++> to code things in Python when I am not working and also it is installed ++> by default on most distribution. I got to have some mailboxes indexed and ++> basic searching working a couple of months ago. Lately I have been very ++> busy and had no time for coding, and them... boom! Not Much appears -- and ++> it is almost exactly what I was trying to do, but faster. I have been ++> playing a bit with Not Much today, and I think it has potential. ++> ++> Also, I would like to share one idea I had in mind, that you might find ++> interesting: One thing I have found very annoying is having to re-tag my ++> mail when the indexes get b0rked (it happened a couple of times to me while ++> using Sup), so I was planning to mails as read/unread and adding the tags ++> not just to the index, but to the mail text itself, e.g. by adding a ++> "X-Tags" header field or by reusing the "Keywords" one. This way, the index ++> could be totally recreated by re-reading the mail directories, and this ++> would also allow to a tools like OfflineIMAP [1] to get the mails into a ++> local maildir, tagging and indexing the mails with the e-mail reader and ++> then syncing back the messages with the "X-Tags" header to the IMAP server. ++> This would allow to use the mail reader from a different computer and still ++> have everything tagged finely. ++> ++> Best regards, ++> ++> ++> --- ++> [1] http://software.complete.org/software/projects/show/offlineimap ++> ++> -- ++> Adrian Perez de Castro ++> Igalia - Free Software Engineering ++> _______________________________________________ ++> notmuch mailing list ++> notmuch@notmuchmail.org ++> http://notmuchmail.org/mailman/listinfo/notmuch ++EOF ++test_expect_equal_file OUTPUT EXPECTED ++ ++test_begin_subtest "Reply within emacs to a multipart/alternative message" ++test_emacs '(let ((message-hidden-headers ''())) ++ (notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") ++ (notmuch-show-reply) ++ (test-output))' ++sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT ++cat <EXPECTED ++From: Notmuch Test Suite ++To: Alex Botero-Lowry , notmuch@notmuchmail.org ++Subject: Re: [notmuch] preliminary FreeBSD support ++In-Reply-To: ++Fcc: ${MAIL_DIR}/sent ++References: ++User-Agent: Notmuch/XXX Emacs/XXX ++--text follows this line-- ++Alex Botero-Lowry writes: ++ ++> I saw the announcement this morning, and was very excited, as I had been ++> hoping sup would be turned into a library, ++> since I like the concept more than the UI (I'd rather an emacs interface). ++> ++> I did a preliminary compile which worked out fine, but ++> sysconf(_SC_SC_GETPW_R_SIZE_MAX) returns -1 on ++> FreeBSD, so notmuch_config_open segfaulted. ++> ++> Attached is a patch that supplies a default buffer size of 64 in cases where ++> -1 is returned. ++> ++> http://www.opengroup.org/austin/docs/austin_328.txt - seems to indicate this ++> is acceptable behavior, ++> and http://mail-index.netbsd.org/pkgsrc-bugs/2006/06/07/msg016808.htmlspecifically ++> uses 64 as the ++> buffer size. ++> _______________________________________________ ++> notmuch mailing list ++> notmuch@notmuchmail.org ++> http://notmuchmail.org/mailman/listinfo/notmuch ++EOF ++test_expect_equal_file OUTPUT EXPECTED ++ ++test_begin_subtest "Reply within emacs to an html-only message" ++add_message '[content-type]="text/html"' \ ++ '[body]="Hi,
This is an HTML test message.

OK?"' ++test_emacs "(let ((message-hidden-headers '()) (mm-text-html-renderer 'html2text)) ++ (notmuch-show \"id:${gen_msg_id}\") ++ (notmuch-show-reply) ++ (test-output))" ++sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT ++cat <EXPECTED ++From: Notmuch Test Suite ++To: ++Subject: Re: Reply within emacs to an html-only message ++In-Reply-To: <${gen_msg_id}> ++Fcc: ${MAIL_DIR}/sent ++References: <${gen_msg_id}> ++User-Agent: Notmuch/XXX Emacs/XXX ++--text follows this line-- ++Notmuch Test Suite writes: ++ ++> Hi,This is an HTML test message.OK? ++EOF ++test_expect_equal_file OUTPUT EXPECTED ++ ++test_begin_subtest "Quote MML tags in reply" ++message_id='test-emacs-mml-quoting@message.id' ++add_message [id]="$message_id" \ ++ "[subject]='$test_subtest_name'" \ ++ '[body]="<#part disposition=inline>"' ++test_emacs "(let ((message-hidden-headers '())) ++ (notmuch-show \"id:$message_id\") ++ (notmuch-show-reply) ++ (test-output))" ++sed -i -e 's,^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' OUTPUT ++cat <EXPECTED ++From: Notmuch Test Suite ++To: ++Subject: Re: Quote MML tags in reply ++In-Reply-To: ++Fcc: ${MAIL_DIR}/sent ++References: ++User-Agent: Notmuch/XXX Emacs/XXX ++--text follows this line-- ++Notmuch Test Suite writes: ++ ++> <#!part disposition=inline> ++EOF ++test_expect_equal_file OUTPUT EXPECTED ++ + test_done +-- +1.7.10.4 +