mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
a3883a7e17
Now that the FCC code is fixed to use the notmuch database path, we can actually enable this by default, which should be highly useful for all new users of notmuch.
94 lines
5.3 KiB
Bash
Executable file
94 lines
5.3 KiB
Bash
Executable file
#!/bin/bash
|
|
test_description="emacs interface"
|
|
. test-lib.sh
|
|
|
|
EXPECTED=../emacs.expected-output
|
|
|
|
add_email_corpus
|
|
|
|
test_begin_subtest "Basic notmuch-hello view in emacs"
|
|
output=$(test_emacs '(notmuch-hello) (message (buffer-string))' 2>&1)
|
|
expected=$(cat $EXPECTED/notmuch-hello)
|
|
test_expect_equal "$output" "$expected"
|
|
|
|
test_begin_subtest "Basic notmuch-search view in emacs"
|
|
output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (message (buffer-string))' 2>&1)
|
|
expected=$(cat $EXPECTED/notmuch-search-tag-inbox)
|
|
test_expect_equal "$output" "$expected"
|
|
|
|
test_begin_subtest "Navigation of notmuch-hello to search results
|
|
[XXX: Need to decide the correct order of the search results]"
|
|
output=$(test_emacs '(notmuch-hello) (goto-char (point-min)) (re-search-forward "inbox") (widget-button-press (point)) (notmuch-test-wait) (message (buffer-string))' 2>&1)
|
|
test_expect_equal_failure "$output" "$expected"
|
|
|
|
test_begin_subtest "Basic notmuch-show view in emacs"
|
|
output=$(test_emacs '(notmuch-show "thread:0000000000000009") (message (buffer-string))' 2>&1)
|
|
expected=$(cat $EXPECTED/notmuch-show-thread-9)
|
|
test_expect_equal "$output" "$expected"
|
|
|
|
test_begin_subtest "Navigation of notmuch-search to thread view"
|
|
output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (goto-char (point-min)) (re-search-forward "Working with Maildir") (notmuch-search-show-thread) (notmuch-test-wait) (message (buffer-string))' 2>&1)
|
|
test_expect_equal "$output" "$expected"
|
|
|
|
test_begin_subtest "Add tag from search view"
|
|
test_emacs '(notmuch-search "thread:0000000000000001") (notmuch-test-wait) (notmuch-search-add-tag "tag-from-search-view")'
|
|
output=$(notmuch search thread:0000000000000001)
|
|
test_expect_equal "$output" "thread:0000000000000001 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox tag-from-search-view unread)"
|
|
|
|
test_begin_subtest "Remove tag from search view"
|
|
test_emacs '(notmuch-search "thread:0000000000000001") (notmuch-test-wait) (notmuch-search-remove-tag "tag-from-search-view")'
|
|
output=$(notmuch search thread:0000000000000001)
|
|
test_expect_equal "$output" "thread:0000000000000001 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 "thread:0000000000000001") (notmuch-show-add-tag "tag-from-show-view")'
|
|
output=$(notmuch search thread:0000000000000001)
|
|
test_expect_equal "$output" "thread:0000000000000001 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 "thread:0000000000000001") (notmuch-show-remove-tag "tag-from-show-view")'
|
|
output=$(notmuch search thread:0000000000000001)
|
|
test_expect_equal "$output" "thread:0000000000000001 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\"") (notmuch-test-wait) (notmuch-search-add-tag "search-add") (notmuch-search-add-tag "search-remove") (notmuch-search-remove-tag "search-remove") (notmuch-show "id:\"123..456@example\"") (notmuch-test-wait) (notmuch-show-add-tag "show-add") (notmuch-show-add-tag "show-remove") (notmuch-show-remove-tag "show-remove")'
|
|
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"
|
|
|
|
# Before we can send a message, we have to prepare the FCC maildir
|
|
mkdir -p mail/sent/cur
|
|
mkdir -p mail/sent/new
|
|
mkdir -p mail/sent/tmp
|
|
|
|
../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}
|
|
|
|
# XXX: Masking away the User-Agent, Date, and Message-ID makes sense,
|
|
# since these fields are inherently unpredictable. But doing the same
|
|
# thing with the From address is cheating. What should really be
|
|
# happening here is that the emacs interface should be using something
|
|
# like "notmuch compose" to construct the initial message and it
|
|
# should be getting the user's name and email address from the notmuch
|
|
# configuration file.
|
|
|
|
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
|