test: Add tests for naming threads with changing subjects.

We recently added a feature to name threads based on the messages that
actually matched the search, (as opposed to simply the oldest or
newest message in the thread whether it matched or not). So add tests
for that, and (surprise, surprise!) the feature does not entirely
work.
This commit is contained in:
Carl Worth 2010-04-21 15:50:33 -07:00
parent 36e4459a32
commit 2a1a4f0551

View file

@ -146,7 +146,7 @@ EOF
# Generate a new message and add it to the index. # Generate a new message and add it to the index.
# #
# All of the arguments and return values supported by generate_message # All of the arguments and return values supported by generate_message
# are alos supported here, so see that function for details. # are also supported here, so see that function for details.
add_message () add_message ()
{ {
generate_message "$@" generate_message "$@"
@ -442,6 +442,68 @@ thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unr
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; 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)" thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
printf "\nTesting naming of threads with changing subject:\n"
add_message '[subject]="thread-naming: Initial thread subject"' \
'[date]="Fri, 05 Jan 2001 15:43:56 -0800"'
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}
printf " Initial thread name (oldest-first search)...\t"
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)"
printf " Initial thread name (newest-first search)...\t"
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
printf " Changed thread name (oldest-first search)...\t"
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)"
printf " Changed thread name (newest-first search)...\t"
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)"
printf " Ignore added reply prefix (Re:)...\t\t"
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)"
printf " Ignore added reply prefix (Aw:)...\t\t"
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)"
printf " Ignore added reply prefix (Vs:)...\t\t"
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)"
printf " Ignore added reply prefix (Sv:)...\t\t"
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)"
printf "\nTesting \"notmuch reply\" in several variations:\n" printf "\nTesting \"notmuch reply\" in several variations:\n"
printf " Basic reply...\t\t\t\t\t" printf " Basic reply...\t\t\t\t\t"