aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/emacs
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-10-27 10:42:46 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-10-27 10:42:46 -0700
commit102c57c825d22c8f4741332f1e02e08f66f6cd2f (patch)
tree8674b1a2789470e376bad45b6875b6152725be76 /test/emacs
parentf30200a4296f972474f9254dc3cba89570cd7bc0 (diff)
test: Add test that emacs interface actually sends mail.
Rather than *reall* sending mail here, we instead have a new test program, smtp-dummy which implements (a small piece of) the server-side SMTP protocol and saves a mail message to the filename provided. This gives us reasonable test coverage of a large chunk of the notmuch+emacs code base (down to talking to an SMTP server with the final mail contents).
Diffstat (limited to 'test/emacs')
-rwxr-xr-xtest/emacs20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/emacs b/test/emacs
index 38effd0e..5c788290 100755
--- a/test/emacs
+++ b/test/emacs
@@ -56,4 +56,24 @@ test_emacs '(notmuch-search "id:\"123..456@example\"") (notmuch-test-wait) (notm
output=$(notmuch search 'id:"123..456@example"' | notmuch_search_sanitize)
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Message with .. in Message-Id (inbox search-add show-add)"
+test_begin_subtest "Sending a message via (fake) SMTP"
+../smtp-dummy sent_message &
+smtp_dummy_pid=$!
+test_emacs "(setq message-send-mail-function 'message-smtpmail-send-it) (setq smtpmail-smtp-server \"localhost\") (setq smtpmail-smtp-service \"25025\") (notmuch-hello) (notmuch-mua-mail) (message-goto-to) (insert \"user@example.com\") (message-goto-subject) (insert \"Testing message sent via SMTP\") (message-goto-body) (insert \"This is a test that messages are sent via SMTP\") (message-send-and-exit)" >/dev/null 2>&1
+wait ${smtp_dummy_pid}
+output=$(sed -e 's,^From: .*,From: XXX,' \
+ -e s',^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' \
+ -e s',^Date:.*,Date: XXX,' \
+ -e s',^Message-ID: <.*>$,Message-ID: <XXX>,' < sent_message)
+test_expect_equal "$output" "From: XXX
+To: user@example.com
+Subject: Testing message sent via SMTP
+User-Agent: Notmuch/XXX Emacs/XXX
+Date: XXX
+Message-ID: <XXX>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+
+This is a test that messages are sent via SMTP"
+
test_done