From 513a36d105995c327c23fec5f60ea70c65b986dd Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 14 Dec 2013 22:39:54 +0800 Subject: [PATCH] test: add emacs_fcc_message that does not use smtp-dummy Most of the tests previously using emacs_deliver_message do not use the actual transmitted message, so we replace it with a simpler (and presumably more reliable function) that only saves (and indexes) an fcc copy of the message. --- test/crypto | 10 +++------- test/emacs | 4 ++-- test/json | 2 +- test/sexp | 2 +- test/test-lib.sh | 30 ++++++++++++++++++++++++++++++ 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/test/crypto b/test/crypto index 9e5ff4f7..477b397e 100755 --- a/test/crypto +++ b/test/crypto @@ -28,12 +28,8 @@ add_gnupg_home # get key fingerprint FINGERPRINT=$(gpg --no-tty --list-secret-keys --with-colons --fingerprint | grep '^fpr:' | cut -d: -f10) -# for some reason this is needed for emacs_deliver_message to work, -# although I can't figure out why -add_email_corpus - test_expect_success 'emacs delivery of signed message' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test signed message 001" \ "This is a test signed message." \ "(mml-secure-message-sign)"' @@ -143,7 +139,7 @@ cat <TESTATTACHMENT This is a test file. EOF test_expect_success 'emacs delivery of encrypted message with attachment' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test encrypted message 001" \ "This is a test encrypted message.\n" \ "(mml-attach-file \"TESTATTACHMENT\") (mml-secure-message-encrypt)"' @@ -270,7 +266,7 @@ test_expect_equal_json \ mv "${GNUPGHOME}"{.bak,} test_expect_success 'emacs delivery of encrypted + signed message' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test encrypted message 002" \ "This is another test encrypted message.\n" \ "(mml-secure-message-sign-encrypt)"' diff --git a/test/emacs b/test/emacs index 1b1ebe31..863219d9 100755 --- a/test/emacs +++ b/test/emacs @@ -771,7 +771,7 @@ 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 \ +emacs_fcc_message \ 'Message with application/mpeg attachment' \ '' \ "(message-goto-eoh) @@ -786,7 +786,7 @@ 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 \ +emacs_fcc_message \ 'Message with audio/mpeg attachment' \ '' \ "(message-goto-eoh) diff --git a/test/json b/test/json index e07a2904..c1cf649d 100755 --- a/test/json +++ b/test/json @@ -38,7 +38,7 @@ test_expect_equal_json "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true test_begin_subtest "Show message: json, inline attachment filename" subject='json-show-inline-attachment-filename' id="json-show-inline-attachment-filename@notmuchmail.org" -emacs_deliver_message \ +emacs_fcc_message \ "$subject" \ 'This is a test message with inline attachment with a filename' \ "(mml-attach-file \"$TEST_DIRECTORY/README\" nil nil \"inline\") diff --git a/test/sexp b/test/sexp index be815e12..667e3195 100755 --- a/test/sexp +++ b/test/sexp @@ -29,7 +29,7 @@ test_expect_equal "$output" "((((:id \"${gen_msg_id}\" :match t :excluded nil :f test_begin_subtest "Show message: sexp, inline attachment filename" subject='sexp-show-inline-attachment-filename' id="sexp-show-inline-attachment-filename@notmuchmail.org" -emacs_deliver_message \ +emacs_fcc_message \ "$subject" \ 'This is a test message with inline attachment with a filename' \ "(mml-attach-file \"$TEST_DIRECTORY/README\" nil nil \"inline\") diff --git a/test/test-lib.sh b/test/test-lib.sh index 53cb9475..be0c133b 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -470,6 +470,36 @@ emacs_deliver_message () notmuch new >/dev/null } +# Pretend to deliver a message with emacs. Really save it to a file +# and add it to the database +# +# Uses emacs to generate and deliver a message to the mail store. +# Accepts arbitrary extra emacs/elisp functions to modify the message +# before sending, which is useful to doing things like attaching files +# to the message and encrypting/signing. +emacs_fcc_message () +{ + local subject="$1" + local body="$2" + shift 2 + # before we can send a message, we have to prepare the FCC maildir + mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp} + + test_emacs \ + "(let ((message-send-mail-function (lambda () t)) + (mail-host-address \"example.com\")) + (notmuch-mua-mail) + (message-goto-to) + (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") + (message-goto-subject) + (insert \"${subject}\") + (message-goto-body) + (insert \"${body}\") + $@ + (message-send-and-exit))" || return 1 + notmuch new >/dev/null +} + # Generate a corpus of email and add it to the database. # # This corpus is fixed, (it happens to be 50 messages from early in -- 2.26.2