mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
Convert the actual tests to the new framework
The changes are: - The notmuch-test was split into several files (t000?-*.sh). - Removed helper functions which were moved to test-lib.sh - Replaced every printf with test_expect_success. - Test commands chained with && (test-lib.sh doesn't use "set -e" in order to complete the test suite even if something fails) - Many variables such as ${MAIL_DIR} were properly quoted as they contain spaces. - Changed quoting patterns in add_message and generate_message (single quotes are already used by the test framework). - ${TEST_DIR} replaced by ${PWD} QUICK HOWTO: To run the whole test suite make To run only a single test ./t0001-new.sh To stop on the first error ./t0001-new.sh -i then mail store and database can be inspected in "trash directory.t0001-new" To see the output of tests ./t0001-new.sh -v To not remove trash directory at the end: ./t0001-new.sh -d To run all tests verbosely: make GIT_TEST_OPTS="-v" Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
This commit is contained in:
parent
04d454f582
commit
5398e6966a
14 changed files with 1053 additions and 1189 deletions
1190
test/notmuch-test
1190
test/notmuch-test
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2005 Junio C Hamano
|
||||
#
|
||||
|
|
164
test/t0001-new.sh
Executable file
164
test/t0001-new.sh
Executable file
|
@ -0,0 +1,164 @@
|
|||
#!/bin/bash
|
||||
test_description="\"notmuch new\" in several variations"
|
||||
. ./test-lib.sh
|
||||
test_expect_success "No new messages" '
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail."
|
||||
|
||||
'
|
||||
test_expect_success "Single new message" '
|
||||
generate_message &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Multiple new messages" '
|
||||
generate_message &&
|
||||
generate_message &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 2 new messages to the database."
|
||||
|
||||
'
|
||||
test_expect_success "No new messages (non-empty DB)" '
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail."
|
||||
|
||||
'
|
||||
test_expect_success "New directories" '
|
||||
rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch &&
|
||||
mkdir "${MAIL_DIR}"/def &&
|
||||
mkdir "${MAIL_DIR}"/ghi &&
|
||||
generate_message [dir]=def &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Alternate inode order" '
|
||||
|
||||
rm -rf "${MAIL_DIR}"/.notmuch &&
|
||||
mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc &&
|
||||
rm "${MAIL_DIR}"/def/* &&
|
||||
generate_message [dir]=abc &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Message moved in" '
|
||||
rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch &&
|
||||
generate_message &&
|
||||
tmp_msg_filename=tmp/"$gen_msg_filename" &&
|
||||
mkdir -p "$(dirname "$tmp_msg_filename")" &&
|
||||
mv "$gen_msg_filename" "$tmp_msg_filename" &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
$NOTMUCH new > /dev/null &&
|
||||
mv "$tmp_msg_filename" "$gen_msg_filename" &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Renamed message" '
|
||||
|
||||
generate_message &&
|
||||
$NOTMUCH new > /dev/null &&
|
||||
mv "$gen_msg_filename" "${gen_msg_filename}"-renamed &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail. Detected 1 file rename."
|
||||
|
||||
'
|
||||
test_expect_success "Deleted message" '
|
||||
|
||||
rm "${gen_msg_filename}"-renamed &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail. Removed 1 message."
|
||||
|
||||
'
|
||||
test_expect_success "Renamed directory" '
|
||||
|
||||
generate_message [dir]=dir &&
|
||||
generate_message [dir]=dir &&
|
||||
generate_message [dir]=dir &&
|
||||
|
||||
$NOTMUCH new > /dev/null &&
|
||||
|
||||
mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail. Detected 3 file renames."
|
||||
|
||||
'
|
||||
test_expect_success "Deleted directory" '
|
||||
|
||||
rm -rf "${MAIL_DIR}"/dir-renamed &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail. Removed 3 messages."
|
||||
|
||||
'
|
||||
test_expect_success "New directory (at end of list)" '
|
||||
|
||||
generate_message [dir]=zzz &&
|
||||
generate_message [dir]=zzz &&
|
||||
generate_message [dir]=zzz &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 3 new messages to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Deleted directory (end of list)" '
|
||||
|
||||
rm -rf "${MAIL_DIR}"/zzz &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail. Removed 3 messages."
|
||||
|
||||
'
|
||||
test_expect_success "New symlink to directory" '
|
||||
|
||||
rm -rf "${MAIL_DIR}"/.notmuch &&
|
||||
mv "${MAIL_DIR}" "$PWD"/actual_maildir &&
|
||||
|
||||
mkdir "${MAIL_DIR}" &&
|
||||
ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "New symlink to a file" '
|
||||
generate_message &&
|
||||
external_msg_filename="$PWD"/external/"$(basename "$gen_msg_filename")" &&
|
||||
mkdir -p "$(dirname "$external_msg_filename")" &&
|
||||
mv "$gen_msg_filename" "$external_msg_filename" &&
|
||||
ln -s "$external_msg_filename" "$gen_msg_filename" &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "New two-level directory" '
|
||||
|
||||
generate_message [dir]=two/levels &&
|
||||
generate_message [dir]=two/levels &&
|
||||
generate_message [dir]=two/levels &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 3 new messages to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Deleted two-level directory" '
|
||||
|
||||
rm -rf "${MAIL_DIR}"/two &&
|
||||
increment_mtime "${MAIL_DIR}" &&
|
||||
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "No new mail. Removed 3 messages."
|
||||
'
|
||||
test_done
|
111
test/t0002-search.sh
Executable file
111
test/t0002-search.sh
Executable file
|
@ -0,0 +1,111 @@
|
|||
#!/bin/bash
|
||||
test_description="\"notmuch search\" in several variations"
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success "Search body" '
|
||||
add_message "[subject]=\"body search\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [body]=bodysearchtest &&
|
||||
output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by from:" '
|
||||
add_message "[subject]=\"search by from\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom &&
|
||||
output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by to:" '
|
||||
add_message "[subject]=\"search by to\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto &&
|
||||
output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by subject:" '
|
||||
add_message [subject]=subjectsearchtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by id:" '
|
||||
add_message "[subject]=\"search by id\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by tag:" '
|
||||
add_message "[subject]=\"search by tag\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
$NOTMUCH tag +searchbytag id:${gen_msg_id} &&
|
||||
output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by thread:" '
|
||||
add_message "[subject]=\"search by thread\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e "s/thread:\([a-f0-9]*\).*/\1/") &&
|
||||
output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search body (phrase)" '
|
||||
add_message "[subject]=\"body search (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"body search (phrase)\"" &&
|
||||
add_message "[subject]=\"negative result\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"This phrase should not match the body search\"" &&
|
||||
output=$($NOTMUCH search "\"body search (phrase)\"" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by from: (address)" '
|
||||
add_message "[subject]=\"search by from (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom@example.com &&
|
||||
output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by from: (name)" '
|
||||
add_message "[subject]=\"search by from (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[from]=\"Search By From Name <test@example.com>\"" &&
|
||||
output=$($NOTMUCH search from:"Search By From Name" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by to: (address)" '
|
||||
add_message "[subject]=\"search by to (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto@example.com &&
|
||||
output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by to: (name)" '
|
||||
add_message "[subject]=\"search by to (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[to]=\"Search By To Name <test@example.com>\"" &&
|
||||
output=$($NOTMUCH search to:"Search By To Name" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search by subject: (phrase)" '
|
||||
add_message "[subject]=\"subject search test (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
add_message "[subject]=\"this phrase should not match the subject search test\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$($NOTMUCH search "subject:\"subject search test (phrase)\"" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search for all messages (\"*\"):" '
|
||||
output=$($NOTMUCH search "*" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)
|
||||
thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Search body (utf-8):" '
|
||||
add_message "[subject]=\"utf8-message-body-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"message body utf8: bödý\"" &&
|
||||
output=$($NOTMUCH search "bödý" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
|
||||
'
|
||||
test_done
|
46
test/t0003-json.sh
Executable file
46
test/t0003-json.sh
Executable file
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
test_description="--format=json output"
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success "Show message: json" '
|
||||
add_message "[subject]=\"json-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-show-message\"" &&
|
||||
output=$($NOTMUCH show --format=json "json-show-message") &&
|
||||
pass_if_equal "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true, \"filename\": \"${gen_msg_filename}\", \"timestamp\": 946728000, \"date_relative\": \"2000-01-01\", \"tags\": [\"inbox\",\"unread\"], \"headers\": {\"Subject\": \"json-show-subject\", \"From\": \"Notmuch Test Suite <test_suite@notmuchmail.org>\", \"To\": \"Notmuch Test Suite <test_suite@notmuchmail.org>\", \"Cc\": \"\", \"Bcc\": \"\", \"Date\": \"Sat, 01 Jan 2000 12:00:00 -0000\"}, \"body\": [{\"id\": 1, \"content-type\": \"text/plain\", \"content\": \"json-show-message\n\"}]}, []]]]"
|
||||
|
||||
'
|
||||
test_expect_success "Search message: json" '
|
||||
add_message "[subject]=\"json-search-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-search-message\"" &&
|
||||
output=$($NOTMUCH search --format=json "json-search-message" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "[{\"thread\": \"XXX\",
|
||||
\"timestamp\": 946728000,
|
||||
\"matched\": 1,
|
||||
\"total\": 1,
|
||||
\"authors\": \"Notmuch Test Suite\",
|
||||
\"subject\": \"json-search-subject\",
|
||||
\"tags\": [\"inbox\", \"unread\"]}]"
|
||||
|
||||
'
|
||||
test_expect_success "Search by subject (utf-8):" '
|
||||
add_message [subject]=utf8-sübjéct "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Show message: json, utf-8" '
|
||||
add_message "[subject]=\"json-show-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-show-méssage\"" &&
|
||||
output=$($NOTMUCH show --format=json "jsön-show-méssage") &&
|
||||
pass_if_equal "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true, \"filename\": \"${gen_msg_filename}\", \"timestamp\": 946728000, \"date_relative\": \"2000-01-01\", \"tags\": [\"inbox\",\"unread\"], \"headers\": {\"Subject\": \"json-show-utf8-body-sübjéct\", \"From\": \"Notmuch Test Suite <test_suite@notmuchmail.org>\", \"To\": \"Notmuch Test Suite <test_suite@notmuchmail.org>\", \"Cc\": \"\", \"Bcc\": \"\", \"Date\": \"Sat, 01 Jan 2000 12:00:00 -0000\"}, \"body\": [{\"id\": 1, \"content-type\": \"text/plain\", \"content\": \"jsön-show-méssage\n\"}]}, []]]]"
|
||||
|
||||
'
|
||||
test_expect_success "Search message: json, utf-8" '
|
||||
add_message "[subject]=\"json-search-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-search-méssage\"" &&
|
||||
output=$($NOTMUCH search --format=json "jsön-search-méssage" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "[{\"thread\": \"XXX\",
|
||||
\"timestamp\": 946728000,
|
||||
\"matched\": 1,
|
||||
\"total\": 1,
|
||||
\"authors\": \"Notmuch Test Suite\",
|
||||
\"subject\": \"json-search-utf8-body-sübjéct\",
|
||||
\"tags\": [\"inbox\", \"unread\"]}]"
|
||||
'
|
||||
test_done
|
191
test/t0004-thread-naming.sh
Executable file
191
test/t0004-thread-naming.sh
Executable file
|
@ -0,0 +1,191 @@
|
|||
#!/bin/bash
|
||||
test_description="naming of threads with changing subject"
|
||||
. ./test-lib.sh
|
||||
test_expect_success 'Generate some messages' '
|
||||
add_message "[subject]=\"thread-naming: Initial thread subject\"" \
|
||||
"[date]=\"Fri, 05 Jan 2001 15:43:56 -0800\"" &&
|
||||
first=${gen_msg_cnt} &&
|
||||
parent=${gen_msg_id} &&
|
||||
add_message "[subject]=\"thread-naming: Older changed subject\"" \
|
||||
"[date]=\"Sat, 06 Jan 2001 15:43:56 -0800\"" \
|
||||
"[in-reply-to]=\<$parent\>" &&
|
||||
add_message "[subject]=\"thread-naming: Newer changed subject\"" \
|
||||
"[date]=\"Sun, 07 Jan 2001 15:43:56 -0800\"" \
|
||||
"[in-reply-to]=\<$parent\>" &&
|
||||
add_message "[subject]=\"thread-naming: Final thread subject\"" \
|
||||
"[date]=\"Mon, 08 Jan 2001 15:43:56 -0800\"" \
|
||||
"[in-reply-to]=\<$parent\>" &&
|
||||
final=${gen_msg_id}
|
||||
|
||||
'
|
||||
test_expect_success "Initial thread name (oldest-first search)" '
|
||||
output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Initial thread name (newest-first search)" '
|
||||
output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)"
|
||||
|
||||
# Remove oldest and newest messages from search results
|
||||
$NOTMUCH tag -inbox id:$parent or id:$final
|
||||
|
||||
'
|
||||
test_expect_success "Changed thread name (oldest-first search)" '
|
||||
output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Changed thread name (newest-first search)" '
|
||||
output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Ignore added reply prefix (Re:)" '
|
||||
add_message "[subject]=\"Re: thread-naming: Initial thread subject\"" \
|
||||
"[date]=\"Tue, 09 Jan 2001 15:43:45 -0800\"" \
|
||||
"[in-reply-to]=\<$parent\>" &&
|
||||
output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Ignore added reply prefix (Aw:)" '
|
||||
add_message "[subject]=\"Aw: thread-naming: Initial thread subject\"" \
|
||||
"[date]=\"Wed, 10 Jan 2001 15:43:45 -0800\"" \
|
||||
"[in-reply-to]=\<$parent\>" &&
|
||||
output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Ignore added reply prefix (Vs:)" '
|
||||
add_message "[subject]=\"Vs: thread-naming: Initial thread subject\"" \
|
||||
"[date]=\"Thu, 11 Jan 2001 15:43:45 -0800\"" \
|
||||
"[in-reply-to]=\<$parent\>" &&
|
||||
output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Ignore added reply prefix (Sv:)" '
|
||||
add_message "[subject]=\"Sv: thread-naming: Initial thread subject\"" \
|
||||
"[date]=\"Fri, 12 Jan 2001 15:43:45 -0800\"" \
|
||||
"[in-reply-to]=\<$parent\>" &&
|
||||
output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
|
||||
|
||||
'
|
||||
test_expect_success "Test order of messages in \"notmuch show\"" '
|
||||
output=$($NOTMUCH show thread-naming | notmuch_show_sanitize) &&
|
||||
pass_if_equal "$output" "message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first)
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (unread)
|
||||
Subject: thread-naming: Initial thread subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Fri, 05 Jan 2001 15:43:56 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$first)
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1)))
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-06) (inbox unread)
|
||||
Subject: thread-naming: Older changed subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Sat, 06 Jan 2001 15:43:56 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$((first + 1)))
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2)))
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-07) (inbox unread)
|
||||
Subject: thread-naming: Newer changed subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Sun, 07 Jan 2001 15:43:56 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$((first + 2)))
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3)))
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-08) (unread)
|
||||
Subject: thread-naming: Final thread subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Mon, 08 Jan 2001 15:43:56 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$((first + 3)))
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4)))
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-09) (inbox unread)
|
||||
Subject: Re: thread-naming: Initial thread subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Tue, 09 Jan 2001 15:43:45 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$((first + 4)))
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5)))
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-10) (inbox unread)
|
||||
Subject: Aw: thread-naming: Initial thread subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Wed, 10 Jan 2001 15:43:45 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$((first + 5)))
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6)))
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-11) (inbox unread)
|
||||
Subject: Vs: thread-naming: Initial thread subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Thu, 11 Jan 2001 15:43:45 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$((first + 6)))
|
||||
part}
|
||||
body}
|
||||
message}
|
||||
message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7)))
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-12) (inbox unread)
|
||||
Subject: Sv: thread-naming: Initial thread subject
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Fri, 12 Jan 2001 15:43:45 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
This is just a test message (#$((first + 7)))
|
||||
part}
|
||||
body}
|
||||
message}"
|
||||
'
|
||||
test_done
|
137
test/t0005-reply.sh
Executable file
137
test/t0005-reply.sh
Executable file
|
@ -0,0 +1,137 @@
|
|||
#!/bin/bash
|
||||
test_description="\"notmuch reply\" in several variations"
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success "Basic reply" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=test_suite@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"basic reply test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> basic reply test"
|
||||
|
||||
'
|
||||
test_expect_success "Multiple recipients" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
"[to]=\"test_suite@notmuchmail.org, Someone Else <someone@example.com>\"" \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"Multiple recipients\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, Someone Else <someone@example.com>
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> Multiple recipients"
|
||||
|
||||
'
|
||||
test_expect_success "Reply with CC" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=test_suite@notmuchmail.org \
|
||||
"[cc]=\"Other Parties <cc@example.com>\"" \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"reply with CC\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>
|
||||
Cc: Other Parties <cc@example.com>
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> reply with CC"
|
||||
|
||||
'
|
||||
test_expect_success "Reply from alternate address" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=test_suite_other@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"reply from alternate address\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> reply from alternate address"
|
||||
|
||||
'
|
||||
test_expect_success "Support for Reply-To" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=test_suite@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"support for reply-to\"" \
|
||||
"[reply-to]=\"Sender <elsewhere@example.com>\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <elsewhere@example.com>
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> support for reply-to"
|
||||
|
||||
'
|
||||
test_expect_success "Un-munging Reply-To" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
"[to]=\"Some List <list@example.com>\"" \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"Un-munging Reply-To\"" \
|
||||
"[reply-to]=\"Evil Munging List <list@example.com>\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, Some List <list@example.com>
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> Un-munging Reply-To"
|
||||
'
|
||||
|
||||
test_expect_success "Message with header of exactly 200 bytes" '
|
||||
add_message "[subject]=\"This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"200-byte header\"" &&
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Notmuch Test Suite <test_suite@notmuchmail.org> wrote:
|
||||
> 200-byte header"
|
||||
'
|
||||
test_done
|
30
test/t0006-dump-restore.sh
Executable file
30
test/t0006-dump-restore.sh
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
test_description="\"notmuch dump\" and \"notmuch restore\""
|
||||
. ./test-lib.sh
|
||||
test_expect_success 'Generate some message' '
|
||||
generate_message &&
|
||||
notmuch new
|
||||
'
|
||||
test_expect_success "Dumping all tags" '
|
||||
$NOTMUCH dump dump.expected &&
|
||||
pass_if_equal "$?" "0"
|
||||
|
||||
'
|
||||
test_expect_success "Clearing all tags" '
|
||||
sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected
|
||||
$NOTMUCH restore clear.expected &&
|
||||
$NOTMUCH dump clear.actual &&
|
||||
pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
|
||||
|
||||
'
|
||||
test_expect_success "Restoring original tags" '
|
||||
$NOTMUCH restore dump.expected &&
|
||||
$NOTMUCH dump dump.actual &&
|
||||
pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
|
||||
|
||||
'
|
||||
test_expect_success "Restore with nothing to do" '
|
||||
$NOTMUCH restore dump.expected &&
|
||||
pass_if_equal "$?" "0"
|
||||
'
|
||||
test_done
|
36
test/t0007-uuencode.sh
Executable file
36
test/t0007-uuencode.sh
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
test_description="handling of uuencoded data"
|
||||
. ./test-lib.sh
|
||||
test_expect_success 'Generate message' '
|
||||
|
||||
add_message [subject]=uuencodetest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
|
||||
"[body]=\"This message is used to ensure that notmuch correctly handles a
|
||||
message containing a block of uuencoded data. First, we have a marker
|
||||
this content beforeuudata . Then we beging the uunencoded data itself:
|
||||
|
||||
begin 644 bogus-uuencoded-data
|
||||
M0123456789012345678901234567890123456789012345678901234567890
|
||||
MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA.
|
||||
MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA
|
||||
MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE
|
||||
MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY
|
||||
MSEARCH RESULT.
|
||||
\\\`
|
||||
end
|
||||
|
||||
Finally, we have our afteruudata marker as well.\""
|
||||
|
||||
'
|
||||
test_expect_success "Ensure content before uu data is indexed" '
|
||||
output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
|
||||
'
|
||||
test_expect_success "Ensure uu data is not indexed" '
|
||||
output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" ""
|
||||
'
|
||||
test_expect_success "Ensure content after uu data is indexed" '
|
||||
output=$($NOTMUCH search afteruudata | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
|
||||
'
|
||||
test_done
|
31
test/t0008-threading-out-of-order.sh
Executable file
31
test/t0008-threading-out-of-order.sh
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/bash
|
||||
test_description="threading when messages received out of order"
|
||||
. ./test-lib.sh
|
||||
test_expect_success "Adding initial child message" '
|
||||
generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
'
|
||||
test_expect_success "Searching returns the message" '
|
||||
output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
|
||||
'
|
||||
test_expect_success "Adding second child message" '
|
||||
generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
'
|
||||
test_expect_success "Searching returns both messages in one thread" '
|
||||
output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)"
|
||||
'
|
||||
test_expect_success "Adding parent message" '
|
||||
generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
'
|
||||
test_expect_success "Searching returns all three messages in one thread" '
|
||||
output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
|
||||
'
|
||||
test_done
|
35
test/t0009-author-reordering.sh
Executable file
35
test/t0009-author-reordering.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
test_description="author reordering;"
|
||||
. ./test-lib.sh
|
||||
test_expect_success "Adding parent message" '
|
||||
generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest "[from]=\"User <user@example.com>\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
'
|
||||
test_expect_success "Adding initial child message" '
|
||||
generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest "[from]=\"User1 <user1@example.com>\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
'
|
||||
test_expect_success "Adding second child message" '
|
||||
generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest "[from]=\"User2 <user2@example.com>\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
'
|
||||
test_expect_success "Searching when all three messages match" '
|
||||
output=$($NOTMUCH search findme | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
|
||||
'
|
||||
test_expect_success "Searching when two messages match" '
|
||||
output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
|
||||
'
|
||||
test_expect_success "Searching when only one message matches" '
|
||||
output=$($NOTMUCH search User2 | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
|
||||
'
|
||||
test_expect_success "Searching when only first message matches" '
|
||||
output=$($NOTMUCH search User | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
|
||||
'
|
||||
test_done
|
215
test/t0010-from-line-heuristics.sh
Executable file
215
test/t0010-from-line-heuristics.sh
Executable file
|
@ -0,0 +1,215 @@
|
|||
#!/bin/bash
|
||||
test_description="From line heuristics (with multiple configured addresses)"
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success "Magic from guessing (nothing to go on)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (Envelope-to:)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (X-Original-To:)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (Received: .. for ..)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
|
||||
by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
|
||||
for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (Received: domain)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
|
||||
by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
|
||||
Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
|
||||
'
|
||||
test_expect_success "Testing From line heuristics (with single configured address)" '
|
||||
sed -i -e "s/^other_email.*//" "${NOTMUCH_CONFIG}"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (nothing to go on)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (Envelope-to:)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (X-Original-To:)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (Received: .. for ..)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
|
||||
by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
|
||||
for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
|
||||
'
|
||||
test_expect_success "Magic from guessing (Received: domain)" '
|
||||
add_message "[from]=\"Sender <sender@example.com>\"" \
|
||||
[to]=mailinglist@notmuchmail.org \
|
||||
[subject]=notmuch-reply-test \
|
||||
"[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
|
||||
by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
|
||||
Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
|
||||
"[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
|
||||
"[body]=\"from guessing test\"" &&
|
||||
|
||||
output=$($NOTMUCH reply id:${gen_msg_id}) &&
|
||||
pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Subject: Re: notmuch-reply-test
|
||||
To: Sender <sender@example.com>, mailinglist@notmuchmail.org
|
||||
Bcc: test_suite@notmuchmail.org
|
||||
In-Reply-To: <${gen_msg_id}>
|
||||
References: <${gen_msg_id}>
|
||||
|
||||
On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
|
||||
> from guessing test"
|
||||
'
|
||||
test_done
|
29
test/t0011-long-msgid.sh
Executable file
29
test/t0011-long-msgid.sh
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
test_description="Testing messages with ridiculously-long message IDs"
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success "Referencing long ID before adding" '
|
||||
generate_message "[subject]=\"Reference of ridiculously-long message ID\"" \
|
||||
"[references]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
'
|
||||
test_expect_success "Adding message with long ID" '
|
||||
generate_message "[subject]=\"A ridiculously-long message ID\"" \
|
||||
"[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Referencing long ID after adding" '
|
||||
generate_message "[subject]=\"Reply to ridiculously-long message ID\"" \
|
||||
"[in-reply-to]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>" &&
|
||||
output=$(NOTMUCH_NEW) &&
|
||||
pass_if_equal "$output" "Added 1 new message to the database."
|
||||
|
||||
'
|
||||
test_expect_success "Ensure all messages were threaded together" '
|
||||
output=$($NOTMUCH search "subject:\"a ridiculously-long message ID\"" | notmuch_search_sanitize) &&
|
||||
pass_if_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)"
|
||||
'
|
||||
test_done
|
25
test/t0012-encoding-issues.sh
Executable file
25
test/t0012-encoding-issues.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
test_description="Testing encoding issues"
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success "Message with text of unknown charset" '
|
||||
add_message "[content-type]=\"text/plain; charset=unknown-8bit\"" \
|
||||
"[body]=irrelevant" &&
|
||||
output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) &&
|
||||
pass_if_equal "$output" "message{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001
|
||||
header{
|
||||
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)
|
||||
Subject: Test message #1
|
||||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||
Date: Tue, 05 Jan 2001 15:43:57 -0800
|
||||
header}
|
||||
body{
|
||||
part{ ID: 1, Content-type: text/plain
|
||||
irrelevant
|
||||
part}
|
||||
body}
|
||||
message}"
|
||||
'
|
||||
|
||||
test_done
|
Loading…
Reference in a new issue