1 Return-Path: <sojkam1@fel.cvut.cz>
\r
2 X-Original-To: notmuch@notmuchmail.org
\r
3 Delivered-To: notmuch@notmuchmail.org
\r
4 Received: from localhost (localhost [127.0.0.1])
\r
5 by olra.theworths.org (Postfix) with ESMTP id 9B1294196F0
\r
6 for <notmuch@notmuchmail.org>; Mon, 10 May 2010 09:49:18 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5
\r
12 tests=[BAYES_00=-1.9, NORMAL_HTTP_TO_IP=0.001] autolearn=ham
\r
13 Received: from olra.theworths.org ([127.0.0.1])
\r
14 by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
\r
15 with ESMTP id WAJh6kUfZGaA for <notmuch@notmuchmail.org>;
\r
16 Mon, 10 May 2010 09:48:55 -0700 (PDT)
\r
17 Received: from max.feld.cvut.cz (max.feld.cvut.cz [147.32.192.36])
\r
18 by olra.theworths.org (Postfix) with ESMTP id D5CCF418C34
\r
19 for <notmuch@notmuchmail.org>; Mon, 10 May 2010 09:48:23 -0700 (PDT)
\r
20 Received: from localhost (unknown [192.168.200.4])
\r
21 by max.feld.cvut.cz (Postfix) with ESMTP id 37BE119F3439;
\r
22 Mon, 10 May 2010 18:48:23 +0200 (CEST)
\r
23 X-Virus-Scanned: IMAP AMAVIS
\r
24 Received: from max.feld.cvut.cz ([192.168.200.1])
\r
25 by localhost (styx.feld.cvut.cz [192.168.200.4]) (amavisd-new,
\r
27 with ESMTP id 2gcqQPNSabAx; Mon, 10 May 2010 18:48:14 +0200 (CEST)
\r
28 Received: from imap.feld.cvut.cz (imap.feld.cvut.cz [147.32.192.34])
\r
29 by max.feld.cvut.cz (Postfix) with ESMTP id 9D71B19F343F;
\r
30 Mon, 10 May 2010 18:48:14 +0200 (CEST)
\r
31 Received: from steelpick.2x.cz (k335-30.felk.cvut.cz [147.32.86.30])
\r
32 (Authenticated sender: sojkam1)
\r
33 by imap.feld.cvut.cz (Postfix) with ESMTPSA id 93EBAFA003;
\r
34 Mon, 10 May 2010 18:48:14 +0200 (CEST)
\r
35 Received: from wsh by steelpick.2x.cz with local (Exim 4.71)
\r
36 (envelope-from <sojkam1@fel.cvut.cz>)
\r
37 id 1OBW9O-0005Be-EL; Mon, 10 May 2010 18:48:14 +0200
\r
38 From: Michal Sojka <sojkam1@fel.cvut.cz>
\r
39 To: notmuch@notmuchmail.org
\r
40 Subject: [PATCH v2 4/5] Convert the actual tests to the new framework
\r
41 Date: Mon, 10 May 2010 18:48:03 +0200
\r
42 Message-Id: <1273510084-19896-5-git-send-email-sojkam1@fel.cvut.cz>
\r
43 X-Mailer: git-send-email 1.7.1
\r
44 In-Reply-To: <1273510084-19896-1-git-send-email-sojkam1@fel.cvut.cz>
\r
45 References: <1273510084-19896-1-git-send-email-sojkam1@fel.cvut.cz>
\r
46 X-BeenThere: notmuch@notmuchmail.org
\r
47 X-Mailman-Version: 2.1.13
\r
49 List-Id: "Use and development of the notmuch mail system."
\r
50 <notmuch.notmuchmail.org>
\r
51 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
52 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
53 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
54 List-Post: <mailto:notmuch@notmuchmail.org>
\r
55 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
56 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
57 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
58 X-List-Received-Date: Mon, 10 May 2010 16:49:18 -0000
\r
61 - The notmuch-test was split into several files (t000?-*.sh).
\r
62 - Removed helper functions which were moved to test-lib.sh
\r
63 - Replaced every printf with test_expect_success.
\r
64 - Test commands chained with && (test-lib.sh doesn't use "set -e" in
\r
65 order to complete the test suite even if something fails)
\r
66 - Many variables such as ${MAIL_DIR} were properly quoted as they
\r
68 - Changed quoting patterns in add_message and generate_message (single
\r
69 quotes are already used by the test framework).
\r
70 - ${TEST_DIR} replaced by ${PWD}
\r
74 To run the whole test suite
\r
77 To run only a single test
\r
80 To stop on the first error
\r
82 then mail store and database can be inspected in
\r
83 "trash directory.t0001-new"
\r
85 To see the output of tests
\r
88 To not remove trash directory at the end:
\r
91 To run all tests verbosely:
\r
92 make GIT_TEST_OPTS="-v"
\r
94 Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
\r
96 test/notmuch-test | 1114 +---------------------------------
\r
97 test/t0000-basic.sh | 2 +-
\r
98 test/t0001-new.sh | 164 +++++
\r
99 test/t0002-search.sh | 111 ++++
\r
100 test/t0003-json.sh | 46 ++
\r
101 test/t0004-thread-naming.sh | 191 ++++++
\r
102 test/t0005-reply.sh | 122 ++++
\r
103 test/t0006-dump-restore.sh | 30 +
\r
104 test/t0007-uuencode.sh | 36 ++
\r
105 test/t0008-threading-out-of-order.sh | 31 +
\r
106 test/t0009-author-reordering.sh | 35 ++
\r
107 test/t0010-from-line-heuristics.sh | 214 +++++++
\r
108 12 files changed, 983 insertions(+), 1113 deletions(-)
\r
109 create mode 100755 test/t0001-new.sh
\r
110 create mode 100755 test/t0002-search.sh
\r
111 create mode 100755 test/t0003-json.sh
\r
112 create mode 100755 test/t0004-thread-naming.sh
\r
113 create mode 100755 test/t0005-reply.sh
\r
114 create mode 100755 test/t0006-dump-restore.sh
\r
115 create mode 100755 test/t0007-uuencode.sh
\r
116 create mode 100755 test/t0008-threading-out-of-order.sh
\r
117 create mode 100755 test/t0009-author-reordering.sh
\r
118 create mode 100755 test/t0010-from-line-heuristics.sh
\r
120 diff --git a/test/notmuch-test b/test/notmuch-test
\r
121 index a861df1..5c066ed 100755
\r
122 --- a/test/notmuch-test
\r
123 +++ b/test/notmuch-test
\r
128 -# Messages contain time/date values with time zone and notmuch
\r
129 -# displays them converted to the local time zone. We need to set fixed
\r
130 -# timezone here so that the output of the tests is always the same
\r
131 -# without regard to the time zone of where the test suite is run.
\r
134 -find_notmuch_binary ()
\r
138 - while [ -n "$dir" ]; do
\r
140 - if [ -x $bin ]; then
\r
144 - dir=$(dirname $dir)
\r
145 - if [ "$dir" = "/" ]; then
\r
153 -increment_mtime_amount=0
\r
154 -increment_mtime ()
\r
158 - increment_mtime_amount=$((increment_mtime_amount + 1))
\r
159 - touch -d "+${increment_mtime_amount} seconds" $dir
\r
162 -# Generate a new message in the mail directory, with a unique message
\r
163 -# ID and subject. The message is not added to the index.
\r
165 -# After this function returns, the filename of the generated message
\r
166 -# is available as $gen_msg_filename and the message ID is available as
\r
169 -# This function supports named parameters with the bash syntax for
\r
170 -# assigning a value to an associative array ([name]=value). The
\r
171 -# supported parameters are:
\r
173 -# [dir]=directory/of/choice
\r
175 -# Generate the message in directory 'directory/of/choice' within
\r
176 -# the mail store. The directory will be created if necessary.
\r
180 -# Text to use as the body of the email message
\r
182 -# '[from]="Some User <user@example.com>"'
\r
183 -# '[to]="Some User <user@example.com>"'
\r
184 -# '[subject]="Subject of email message"'
\r
185 -# '[date]="RFC 822 Date"'
\r
187 -# Values for email headers. If not provided, default values will
\r
188 -# be generated instead.
\r
190 -# '[cc]="Some User <user@example.com>"'
\r
191 -# [reply-to]=some-address
\r
192 -# [in-reply-to]=<message-id>
\r
193 -# '[header]=full header line, including keyword'
\r
195 -# Additional values for email headers. If these are not provided
\r
196 -# then the relevant headers will simply not appear in the
\r
199 -# '[id]=<message-id>'
\r
201 -# Controls the message-id of the created message.
\r
203 -gen_msg_filename=""
\r
205 -generate_message ()
\r
207 - # This is our (bash-specific) magic for doing named parameters
\r
208 - local -A template="($@)"
\r
209 - local additional_headers
\r
211 - if [ -z "${template[id]}" ]; then
\r
212 - gen_msg_cnt=$((gen_msg_cnt + 1))
\r
213 - gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt)
\r
214 - gen_msg_id="${gen_msg_name}@notmuch-test-suite"
\r
216 - gen_msg_name="msg-${template[id]}"
\r
217 - gen_msg_id="${template[id]}"
\r
220 - if [ -z "${template[dir]}" ]; then
\r
221 - gen_msg_filename="${MAIL_DIR}/$gen_msg_name"
\r
223 - gen_msg_filename="${MAIL_DIR}/${template[dir]}/$gen_msg_name"
\r
224 - mkdir -p $(dirname $gen_msg_filename)
\r
227 - if [ -z "${template[body]}" ]; then
\r
228 - template[body]="This is just a test message (#${gen_msg_cnt})"
\r
231 - if [ -z "${template[from]}" ]; then
\r
232 - template[from]="Notmuch Test Suite <test_suite@notmuchmail.org>"
\r
235 - if [ -z "${template[to]}" ]; then
\r
236 - template[to]="Notmuch Test Suite <test_suite@notmuchmail.org>"
\r
239 - if [ -z "${template[subject]}" ]; then
\r
240 - template[subject]="Test message #${gen_msg_cnt}"
\r
243 - if [ -z "${template[date]}" ]; then
\r
244 - template[date]="Tue, 05 Jan 2001 15:43:57 -0800"
\r
247 - additional_headers=""
\r
248 - if [ ! -z "${template[header]}" ]; then
\r
249 - additional_headers="${template[header]}
\r
250 -${additional_headers}"
\r
253 - if [ ! -z "${template[reply-to]}" ]; then
\r
254 - additional_headers="Reply-To: ${template[reply-to]}
\r
255 -${additional_headers}"
\r
258 - if [ ! -z "${template[in-reply-to]}" ]; then
\r
259 - additional_headers="In-Reply-To: ${template[in-reply-to]}
\r
260 -${additional_headers}"
\r
263 - if [ ! -z "${template[cc]}" ]; then
\r
264 - additional_headers="Cc: ${template[cc]}
\r
265 -${additional_headers}"
\r
269 -cat <<EOF >$gen_msg_filename
\r
270 -From: ${template[from]}
\r
271 -To: ${template[to]}
\r
272 -Message-Id: <${gen_msg_id}>
\r
273 -Subject: ${template[subject]}
\r
274 -Date: ${template[date]}
\r
275 -${additional_headers}
\r
279 - # Ensure that the mtime of the containing directory is updated
\r
280 - increment_mtime $(dirname ${gen_msg_filename})
\r
283 -# Generate a new message and add it to the index.
\r
285 -# All of the arguments and return values supported by generate_message
\r
286 -# are also supported here, so see that function for details.
\r
289 - generate_message "$@"
\r
291 - $NOTMUCH new > /dev/null
\r
302 - tests=$((tests + 1))
\r
304 - if [ "$output" = "$expected" ]; then
\r
308 - testname=test-$(printf "%03d" $tests)
\r
309 - echo "$expected" > $testname.expected
\r
310 - echo "$output" > $testname.output
\r
311 - diff -u $testname.expected $testname.output || true
\r
312 - test_failures=$((test_failures + 1))
\r
316 -TEST_DIR=$(pwd)/test.$$
\r
317 -MAIL_DIR=${TEST_DIR}/mail
\r
318 -export NOTMUCH_CONFIG=${TEST_DIR}/notmuch-config
\r
319 -NOTMUCH=$(find_notmuch_binary $(pwd))
\r
323 - $NOTMUCH new | grep -v -E -e '^Processed [0-9]*( total)? file|Found [0-9]* total file'
\r
326 -notmuch_search_sanitize ()
\r
328 - sed -r -e 's/("?thread"?: ?)("?)................("?)/\1\2XXX\3/'
\r
331 -NOTMUCH_SHOW_FILENAME_SQUELCH='s,filename:.*/mail,filename:/XXX/mail,'
\r
332 -notmuch_show_sanitize ()
\r
334 - sed -e "$NOTMUCH_SHOW_FILENAME_SQUELCH"
\r
337 -rm -rf ${TEST_DIR}
\r
343 -cat <<EOF > ${NOTMUCH_CONFIG}
\r
348 -name=Notmuch Test Suite
\r
349 -primary_email=test_suite@notmuchmail.org
\r
350 -other_email=test_suite_other@notmuchmail.org;test_suite@otherdomain.org
\r
353 -printf "Testing \"notmuch new\" in several variations:\n"
\r
354 -printf " No new messages...\t\t\t\t"
\r
355 -output=$(NOTMUCH_NEW)
\r
356 -pass_if_equal "$output" "No new mail."
\r
358 -printf " Single new message...\t\t\t\t"
\r
360 -output=$(NOTMUCH_NEW)
\r
361 -pass_if_equal "$output" "Added 1 new message to the database."
\r
363 -printf " Multiple new messages...\t\t\t"
\r
366 -output=$(NOTMUCH_NEW)
\r
367 -pass_if_equal "$output" "Added 2 new messages to the database."
\r
369 -printf " No new messages (non-empty DB)...\t\t"
\r
370 -output=$(NOTMUCH_NEW)
\r
371 -pass_if_equal "$output" "No new mail."
\r
373 -printf " New directories...\t\t\t\t"
\r
374 -rm -rf ${MAIL_DIR}/* ${MAIL_DIR}/.notmuch
\r
375 -mkdir ${MAIL_DIR}/def
\r
376 -mkdir ${MAIL_DIR}/ghi
\r
377 -generate_message [dir]=def
\r
379 -output=$(NOTMUCH_NEW)
\r
380 -pass_if_equal "$output" "Added 1 new message to the database."
\r
382 -printf " Alternate inode order...\t\t\t"
\r
384 -rm -rf ${MAIL_DIR}/.notmuch
\r
385 -mv ${MAIL_DIR}/ghi ${MAIL_DIR}/abc
\r
386 -rm ${MAIL_DIR}/def/*
\r
387 -generate_message [dir]=abc
\r
389 -output=$(NOTMUCH_NEW)
\r
390 -pass_if_equal "$output" "Added 1 new message to the database."
\r
392 -printf " Message moved in...\t\t\t\t"
\r
393 -rm -rf ${MAIL_DIR}/* ${MAIL_DIR}/.notmuch
\r
395 -tmp_msg_filename=tmp/$gen_msg_filename
\r
396 -mkdir -p $(dirname $tmp_msg_filename)
\r
397 -mv $gen_msg_filename $tmp_msg_filename
\r
398 -increment_mtime ${MAIL_DIR}
\r
399 -$NOTMUCH new > /dev/null
\r
400 -mv $tmp_msg_filename $gen_msg_filename
\r
401 -increment_mtime ${MAIL_DIR}
\r
402 -output=$(NOTMUCH_NEW)
\r
403 -pass_if_equal "$output" "Added 1 new message to the database."
\r
405 -printf " Renamed message...\t\t\t\t"
\r
408 -$NOTMUCH new > /dev/null
\r
409 -mv $gen_msg_filename ${gen_msg_filename}-renamed
\r
410 -increment_mtime ${MAIL_DIR}
\r
411 -output=$(NOTMUCH_NEW)
\r
412 -pass_if_equal "$output" "No new mail. Detected 1 file rename."
\r
414 -printf " Deleted message...\t\t\t\t"
\r
416 -rm ${gen_msg_filename}-renamed
\r
417 -increment_mtime ${MAIL_DIR}
\r
418 -output=$(NOTMUCH_NEW)
\r
419 -pass_if_equal "$output" "No new mail. Removed 1 message."
\r
421 -printf " Renamed directory...\t\t\t\t"
\r
423 -generate_message [dir]=dir
\r
424 -generate_message [dir]=dir
\r
425 -generate_message [dir]=dir
\r
427 -$NOTMUCH new > /dev/null
\r
429 -mv ${MAIL_DIR}/dir ${MAIL_DIR}/dir-renamed
\r
430 -increment_mtime ${MAIL_DIR}
\r
432 -output=$(NOTMUCH_NEW)
\r
433 -pass_if_equal "$output" "No new mail. Detected 3 file renames."
\r
435 -printf " Deleted directory...\t\t\t\t"
\r
437 -rm -rf ${MAIL_DIR}/dir-renamed
\r
438 -increment_mtime ${MAIL_DIR}
\r
440 -output=$(NOTMUCH_NEW)
\r
441 -pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
443 -printf " New directory (at end of list)...\t\t"
\r
445 -generate_message [dir]=zzz
\r
446 -generate_message [dir]=zzz
\r
447 -generate_message [dir]=zzz
\r
449 -output=$(NOTMUCH_NEW)
\r
450 -pass_if_equal "$output" "Added 3 new messages to the database."
\r
452 -printf " Deleted directory (end of list)...\t\t"
\r
454 -rm -rf ${MAIL_DIR}/zzz
\r
455 -increment_mtime ${MAIL_DIR}
\r
457 -output=$(NOTMUCH_NEW)
\r
458 -pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
460 -printf " New symlink to directory...\t\t\t"
\r
462 -rm -rf ${MAIL_DIR}/.notmuch
\r
463 -mv ${MAIL_DIR} ${TEST_DIR}/actual_maildir
\r
466 -ln -s ${TEST_DIR}/actual_maildir ${MAIL_DIR}/symlink
\r
468 -output=$(NOTMUCH_NEW)
\r
469 -pass_if_equal "$output" "Added 1 new message to the database."
\r
471 -printf " New symlink to a file...\t\t\t"
\r
473 -external_msg_filename=${TEST_DIR}/external/$(basename $gen_msg_filename)
\r
474 -mkdir -p $(dirname $external_msg_filename)
\r
475 -mv $gen_msg_filename $external_msg_filename
\r
476 -ln -s $external_msg_filename $gen_msg_filename
\r
477 -increment_mtime ${MAIL_DIR}
\r
478 -output=$(NOTMUCH_NEW)
\r
479 -pass_if_equal "$output" "Added 1 new message to the database."
\r
481 -printf " New two-level directory...\t\t\t"
\r
483 -generate_message [dir]=two/levels
\r
484 -generate_message [dir]=two/levels
\r
485 -generate_message [dir]=two/levels
\r
487 -output=$(NOTMUCH_NEW)
\r
488 -pass_if_equal "$output" "Added 3 new messages to the database."
\r
490 -printf " Deleted two-level directory...\t\t\t"
\r
492 -rm -rf ${MAIL_DIR}/two
\r
493 -increment_mtime ${MAIL_DIR}
\r
495 -output=$(NOTMUCH_NEW)
\r
496 -pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
498 -printf "\nTesting \"notmuch search\" in several variations:\n"
\r
500 -printf " Search body...\t\t\t\t\t"
\r
501 -add_message '[subject]="body search"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [body]=bodysearchtest
\r
502 -output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize)
\r
503 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
\r
505 -printf " Search by from:...\t\t\t\t"
\r
506 -add_message '[subject]="search by from"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom
\r
507 -output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize)
\r
508 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
\r
510 -printf " Search by to:...\t\t\t\t"
\r
511 -add_message '[subject]="search by to"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto
\r
512 -output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize)
\r
513 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
\r
515 -printf " Search by subject:...\t\t\t\t"
\r
516 -add_message [subject]=subjectsearchtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
517 -output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize)
\r
518 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
\r
520 -printf " Search by id:...\t\t\t\t"
\r
521 -add_message '[subject]="search by id"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
522 -output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize)
\r
523 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
\r
525 -printf " Search by tag:...\t\t\t\t"
\r
526 -add_message '[subject]="search by tag"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
527 -$NOTMUCH tag +searchbytag id:${gen_msg_id}
\r
528 -output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize)
\r
529 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
\r
531 -printf " Search by thread:...\t\t\t\t"
\r
532 -add_message '[subject]="search by thread"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
533 -thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e 's/thread:\([a-f0-9]*\).*/\1/')
\r
534 -output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize)
\r
535 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
\r
537 -printf " Search body (phrase)...\t\t\t"
\r
538 -add_message '[subject]="body search (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="body search (phrase)"'
\r
539 -add_message '[subject]="negative result"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="This phrase should not match the body search"'
\r
540 -output=$($NOTMUCH search '\"body search (phrase)\"' | notmuch_search_sanitize)
\r
541 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
\r
543 -printf " Search by from: (address)...\t\t\t"
\r
544 -add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom@example.com
\r
545 -output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize)
\r
546 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
\r
548 -printf " Search by from: (name)...\t\t\t"
\r
549 -add_message '[subject]="search by from (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]="Search By From Name <test@example.com>"'
\r
550 -output=$($NOTMUCH search from:'Search By From Name' | notmuch_search_sanitize)
\r
551 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
\r
553 -printf " Search by to: (address)...\t\t\t"
\r
554 -add_message '[subject]="search by to (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto@example.com
\r
555 -output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize)
\r
556 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
\r
558 -printf " Search by to: (name)...\t\t\t"
\r
559 -add_message '[subject]="search by to (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[to]="Search By To Name <test@example.com>"'
\r
560 -output=$($NOTMUCH search to:'Search By To Name' | notmuch_search_sanitize)
\r
561 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
\r
563 -printf " Search by subject: (phrase)...\t\t\t"
\r
564 -add_message '[subject]="subject search test (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
565 -add_message '[subject]="this phrase should not match the subject search test"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
566 -output=$($NOTMUCH search 'subject:\"subject search test (phrase)\"' | notmuch_search_sanitize)
\r
567 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
\r
569 -printf " Search for all messages (\"*\"):...\t\t"
\r
570 -output=$($NOTMUCH search '*' | notmuch_search_sanitize)
\r
571 -pass_if_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #6 (inbox unread)
\r
572 -thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #14 (inbox unread)
\r
573 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
\r
574 -thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)
\r
575 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)
\r
576 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)
\r
577 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)
\r
578 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)
\r
579 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)
\r
580 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)
\r
581 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread)
\r
582 -thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)
\r
583 -thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)
\r
584 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)
\r
585 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)
\r
586 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)
\r
587 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
\r
589 -printf " Search body (utf-8):...\t\t\t"
\r
590 -add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="message body utf8: bödý"'
\r
591 -output=$($NOTMUCH search 'bödý' | notmuch_search_sanitize)
\r
592 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
\r
594 -printf "\nTesting --format=json output:\n"
\r
596 -printf " Show message: json...\t\t\t\t"
\r
597 -add_message '[subject]="json-show-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="json-show-message"'
\r
598 -output=$($NOTMUCH show --format=json 'json-show-message')
\r
599 -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"}]}, []]]]'
\r
601 -printf " Search message: json...\t\t\t"
\r
602 -add_message '[subject]="json-search-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="json-search-message"'
\r
603 -output=$($NOTMUCH search --format=json 'json-search-message' | notmuch_search_sanitize)
\r
604 -pass_if_equal "$output" '[{"thread": "XXX",
\r
605 -"timestamp": 946728000,
\r
608 -"authors": "Notmuch Test Suite",
\r
609 -"subject": "json-search-subject",
\r
610 -"tags": ["inbox", "unread"]}]'
\r
612 -printf " Search by subject (utf-8):...\t\t\t"
\r
613 -add_message [subject]=utf8-sübjéct '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
614 -output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize)
\r
615 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)"
\r
617 -printf " Show message: json, utf-8...\t\t\t"
\r
618 -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"'
\r
619 -output=$($NOTMUCH show --format=json 'jsön-show-méssage')
\r
620 -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"}]}, []]]]'
\r
622 -printf " Search message: json, utf-8...\t\t\t"
\r
623 -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"'
\r
624 -output=$($NOTMUCH search --format=json 'jsön-search-méssage' | notmuch_search_sanitize)
\r
625 -pass_if_equal "$output" '[{"thread": "XXX",
\r
626 -"timestamp": 946728000,
\r
629 -"authors": "Notmuch Test Suite",
\r
630 -"subject": "json-search-utf8-body-sübjéct",
\r
631 -"tags": ["inbox", "unread"]}]'
\r
633 -printf "\nTesting naming of threads with changing subject:\n"
\r
634 -add_message '[subject]="thread-naming: Initial thread subject"' \
\r
635 - '[date]="Fri, 05 Jan 2001 15:43:56 -0800"'
\r
636 -first=${gen_msg_cnt}
\r
637 -parent=${gen_msg_id}
\r
638 -add_message '[subject]="thread-naming: Older changed subject"' \
\r
639 - '[date]="Sat, 06 Jan 2001 15:43:56 -0800"' \
\r
640 - "[in-reply-to]=\<$parent\>"
\r
641 -add_message '[subject]="thread-naming: Newer changed subject"' \
\r
642 - '[date]="Sun, 07 Jan 2001 15:43:56 -0800"' \
\r
643 - "[in-reply-to]=\<$parent\>"
\r
644 -add_message '[subject]="thread-naming: Final thread subject"' \
\r
645 - '[date]="Mon, 08 Jan 2001 15:43:56 -0800"' \
\r
646 - "[in-reply-to]=\<$parent\>"
\r
647 -final=${gen_msg_id}
\r
649 -printf " Initial thread name (oldest-first search)...\t"
\r
650 -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
651 -pass_if_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
653 -printf " Initial thread name (newest-first search)...\t"
\r
654 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
655 -pass_if_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)"
\r
657 -# Remove oldest and newest messages from search results
\r
658 -$NOTMUCH tag -inbox id:$parent or id:$final
\r
660 -printf " Changed thread name (oldest-first search)...\t"
\r
661 -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
662 -pass_if_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)"
\r
664 -printf " Changed thread name (newest-first search)...\t"
\r
665 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
666 -pass_if_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)"
\r
668 -printf " Ignore added reply prefix (Re:)...\t\t"
\r
669 -add_message '[subject]="Re: thread-naming: Initial thread subject"' \
\r
670 - '[date]="Tue, 09 Jan 2001 15:43:45 -0800"' \
\r
671 - "[in-reply-to]=\<$parent\>"
\r
672 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
673 -pass_if_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
675 -printf " Ignore added reply prefix (Aw:)...\t\t"
\r
676 -add_message '[subject]="Aw: thread-naming: Initial thread subject"' \
\r
677 - '[date]="Wed, 10 Jan 2001 15:43:45 -0800"' \
\r
678 - "[in-reply-to]=\<$parent\>"
\r
679 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
680 -pass_if_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
682 -printf " Ignore added reply prefix (Vs:)...\t\t"
\r
683 -add_message '[subject]="Vs: thread-naming: Initial thread subject"' \
\r
684 - '[date]="Thu, 11 Jan 2001 15:43:45 -0800"' \
\r
685 - "[in-reply-to]=\<$parent\>"
\r
686 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
687 -pass_if_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
689 -printf " Ignore added reply prefix (Sv:)...\t\t"
\r
690 -add_message '[subject]="Sv: thread-naming: Initial thread subject"' \
\r
691 - '[date]="Fri, 12 Jan 2001 15:43:45 -0800"' \
\r
692 - "[in-reply-to]=\<$parent\>"
\r
693 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
694 -pass_if_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
696 -printf " Test order of messages in \"notmuch show\"\t"
\r
697 -output=$($NOTMUCH show thread-naming | notmuch_show_sanitize)
\r
698 -pass_if_equal "$output" "
\f\r
699 message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first)
\r
702 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (unread)
\r
703 -Subject: thread-naming: Initial thread subject
\r
704 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
705 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
706 -Date: Fri, 05 Jan 2001 15:43:56 -0800
\r
712 part{ ID: 1, Content-type: text/plain
\r
713 -This is just a test message (#$first)
\r
721 message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1)))
\r
724 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-06) (inbox unread)
\r
725 -Subject: thread-naming: Older changed subject
\r
726 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
727 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
728 -Date: Sat, 06 Jan 2001 15:43:56 -0800
\r
734 part{ ID: 1, Content-type: text/plain
\r
735 -This is just a test message (#$((first + 1)))
\r
743 message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2)))
\r
746 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-07) (inbox unread)
\r
747 -Subject: thread-naming: Newer changed subject
\r
748 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
749 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
750 -Date: Sun, 07 Jan 2001 15:43:56 -0800
\r
756 part{ ID: 1, Content-type: text/plain
\r
757 -This is just a test message (#$((first + 2)))
\r
765 message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3)))
\r
768 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-08) (unread)
\r
769 -Subject: thread-naming: Final thread subject
\r
770 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
771 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
772 -Date: Mon, 08 Jan 2001 15:43:56 -0800
\r
778 part{ ID: 1, Content-type: text/plain
\r
779 -This is just a test message (#$((first + 3)))
\r
787 message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4)))
\r
790 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-09) (inbox unread)
\r
791 -Subject: Re: thread-naming: Initial thread subject
\r
792 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
793 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
794 -Date: Tue, 09 Jan 2001 15:43:45 -0800
\r
800 part{ ID: 1, Content-type: text/plain
\r
801 -This is just a test message (#$((first + 4)))
\r
809 message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5)))
\r
812 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-10) (inbox unread)
\r
813 -Subject: Aw: thread-naming: Initial thread subject
\r
814 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
815 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
816 -Date: Wed, 10 Jan 2001 15:43:45 -0800
\r
822 part{ ID: 1, Content-type: text/plain
\r
823 -This is just a test message (#$((first + 5)))
\r
831 message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6)))
\r
834 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-11) (inbox unread)
\r
835 -Subject: Vs: thread-naming: Initial thread subject
\r
836 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
837 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
838 -Date: Thu, 11 Jan 2001 15:43:45 -0800
\r
844 part{ ID: 1, Content-type: text/plain
\r
845 -This is just a test message (#$((first + 6)))
\r
853 message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7)))
\r
856 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-12) (inbox unread)
\r
857 -Subject: Sv: thread-naming: Initial thread subject
\r
858 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
859 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
860 -Date: Fri, 12 Jan 2001 15:43:45 -0800
\r
866 part{ ID: 1, Content-type: text/plain
\r
867 -This is just a test message (#$((first + 7)))
\r
875 -printf "\nTesting \"notmuch reply\" in several variations:\n"
\r
877 -printf " Basic reply...\t\t\t\t\t"
\r
878 -add_message '[from]="Sender <sender@example.com>"' \
\r
879 - [to]=test_suite@notmuchmail.org \
\r
880 - [subject]=notmuch-reply-test \
\r
881 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
882 - '[body]="basic reply test"'
\r
884 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
885 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
886 -Subject: Re: notmuch-reply-test
\r
887 -To: Sender <sender@example.com>
\r
888 -Bcc: test_suite@notmuchmail.org
\r
889 -In-Reply-To: <${gen_msg_id}>
\r
890 -References: <${gen_msg_id}>
\r
892 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
893 -> basic reply test"
\r
895 -printf " Multiple recipients...\t\t\t\t"
\r
896 -add_message '[from]="Sender <sender@example.com>"' \
\r
897 - '[to]="test_suite@notmuchmail.org, Someone Else <someone@example.com>"' \
\r
898 - [subject]=notmuch-reply-test \
\r
899 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
900 - '[body]="Multiple recipients"'
\r
902 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
903 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
904 -Subject: Re: notmuch-reply-test
\r
905 -To: Sender <sender@example.com>, Someone Else <someone@example.com>
\r
906 -Bcc: test_suite@notmuchmail.org
\r
907 -In-Reply-To: <${gen_msg_id}>
\r
908 -References: <${gen_msg_id}>
\r
910 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
911 -> Multiple recipients"
\r
913 -printf " Reply with CC...\t\t\t\t"
\r
914 -add_message '[from]="Sender <sender@example.com>"' \
\r
915 - [to]=test_suite@notmuchmail.org \
\r
916 - '[cc]="Other Parties <cc@example.com>"' \
\r
917 - [subject]=notmuch-reply-test \
\r
918 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
919 - '[body]="reply with CC"'
\r
921 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
922 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
923 -Subject: Re: notmuch-reply-test
\r
924 -To: Sender <sender@example.com>
\r
925 -Cc: Other Parties <cc@example.com>
\r
926 -Bcc: test_suite@notmuchmail.org
\r
927 -In-Reply-To: <${gen_msg_id}>
\r
928 -References: <${gen_msg_id}>
\r
930 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
933 -printf " Reply from alternate address...\t\t"
\r
934 -add_message '[from]="Sender <sender@example.com>"' \
\r
935 - [to]=test_suite_other@notmuchmail.org \
\r
936 - [subject]=notmuch-reply-test \
\r
937 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
938 - '[body]="reply from alternate address"'
\r
940 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
941 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
942 -Subject: Re: notmuch-reply-test
\r
943 -To: Sender <sender@example.com>
\r
944 -Bcc: test_suite@notmuchmail.org
\r
945 -In-Reply-To: <${gen_msg_id}>
\r
946 -References: <${gen_msg_id}>
\r
948 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
949 -> reply from alternate address"
\r
951 -printf " Support for Reply-To...\t\t\t"
\r
952 -add_message '[from]="Sender <sender@example.com>"' \
\r
953 - [to]=test_suite@notmuchmail.org \
\r
954 - [subject]=notmuch-reply-test \
\r
955 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
956 - '[body]="support for reply-to"' \
\r
957 - '[reply-to]="Sender <elsewhere@example.com>"'
\r
959 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
960 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
961 -Subject: Re: notmuch-reply-test
\r
962 -To: Sender <elsewhere@example.com>
\r
963 -Bcc: test_suite@notmuchmail.org
\r
964 -In-Reply-To: <${gen_msg_id}>
\r
965 -References: <${gen_msg_id}>
\r
967 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
968 -> support for reply-to"
\r
970 -printf " Un-munging Reply-To...\t\t\t\t"
\r
971 -add_message '[from]="Sender <sender@example.com>"' \
\r
972 - '[to]="Some List <list@example.com>"' \
\r
973 - [subject]=notmuch-reply-test \
\r
974 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
975 - '[body]="Un-munging Reply-To"' \
\r
976 - '[reply-to]="Evil Munging List <list@example.com>"'
\r
978 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
979 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
980 -Subject: Re: notmuch-reply-test
\r
981 -To: Sender <sender@example.com>, Some List <list@example.com>
\r
982 -Bcc: test_suite@notmuchmail.org
\r
983 -In-Reply-To: <${gen_msg_id}>
\r
984 -References: <${gen_msg_id}>
\r
986 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
987 -> Un-munging Reply-To"
\r
989 -printf "\nTesting handling of uuencoded data:\n"
\r
991 -add_message [subject]=uuencodetest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \
\r
992 -'[body]="This message is used to ensure that notmuch correctly handles a
\r
993 -message containing a block of uuencoded data. First, we have a marker
\r
994 -this content beforeuudata . Then we beging the uunencoded data itself:
\r
996 -begin 644 bogus-uuencoded-data
\r
997 -M0123456789012345678901234567890123456789012345678901234567890
\r
998 -MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA.
\r
999 -MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA
\r
1000 -MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE
\r
1001 -MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY
\r
1006 -Finally, we have our afteruudata marker as well."'
\r
1008 -printf " Ensure content before uu data is indexed...\t"
\r
1009 -output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize)
\r
1010 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
1011 -printf " Ensure uu data is not indexed...\t\t"
\r
1012 -output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize)
\r
1013 -pass_if_equal "$output" ""
\r
1014 -printf " Ensure content after uu data is indexed...\t"
\r
1015 -output=$($NOTMUCH search afteruudata | notmuch_search_sanitize)
\r
1016 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
1018 -printf "\nTesting \"notmuch dump\" and \"notmuch restore\":\n"
\r
1020 -printf " Dumping all tags...\t\t\t\t"
\r
1021 -$NOTMUCH dump dump.expected
\r
1022 -pass_if_equal "$?" "0"
\r
1024 -printf " Clearing all tags...\t\t\t\t"
\r
1025 -sed -e 's/(\([^(]*\))$/()/' < dump.expected > clear.expected
\r
1026 -$NOTMUCH restore clear.expected
\r
1027 -$NOTMUCH dump clear.actual
\r
1028 -pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
\r
1030 -printf " Restoring original tags...\t\t\t"
\r
1031 -$NOTMUCH restore dump.expected
\r
1032 -$NOTMUCH dump dump.actual
\r
1033 -pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
\r
1035 -printf " Restore with nothing to do...\t\t\t"
\r
1036 -$NOTMUCH restore dump.expected
\r
1037 -pass_if_equal "$?" "0"
\r
1039 -printf "\nTesting threading when messages received out of order:\n"
\r
1040 -printf " Adding initial child message...\t\t"
\r
1041 -generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
1042 -output=$(NOTMUCH_NEW)
\r
1043 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1044 -printf " Searching returns the message...\t\t"
\r
1045 -output=$($NOTMUCH search foo | notmuch_search_sanitize)
\r
1046 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
1047 -printf " Adding second child message...\t\t\t"
\r
1048 -generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
1049 -output=$(NOTMUCH_NEW)
\r
1050 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1051 -printf " Searching returns both messages in one thread..."
\r
1052 -output=$($NOTMUCH search foo | notmuch_search_sanitize)
\r
1053 -pass_if_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
1054 -printf " Adding parent message...\t\t\t"
\r
1055 -generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
1056 -output=$(NOTMUCH_NEW)
\r
1057 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1058 -printf " Searching returns all three messages in one thread..."
\r
1059 -output=$($NOTMUCH search foo | notmuch_search_sanitize)
\r
1060 -pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
1062 -printf "\nTesting author reordering;\n"
\r
1063 -printf " Adding parent message...\t\t\t"
\r
1064 -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"'
\r
1065 -output=$(NOTMUCH_NEW)
\r
1066 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1067 -printf " Adding initial child message...\t\t"
\r
1068 -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"'
\r
1069 -output=$(NOTMUCH_NEW)
\r
1070 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1071 -printf " Adding second child message...\t\t\t"
\r
1072 -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"'
\r
1073 -output=$(NOTMUCH_NEW)
\r
1074 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1075 -printf " Searching when all three messages match...\t"
\r
1076 -output=$($NOTMUCH search findme | notmuch_search_sanitize)
\r
1077 -pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
\r
1078 -printf " Searching when two messages match...\t\t"
\r
1079 -output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize)
\r
1080 -pass_if_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
\r
1081 -printf " Searching when only one message matches...\t"
\r
1082 -output=$($NOTMUCH search User2 | notmuch_search_sanitize)
\r
1083 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
\r
1084 -printf " Searching when only first message matches...\t"
\r
1085 -output=$($NOTMUCH search User | notmuch_search_sanitize)
\r
1086 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
\r
1088 -printf "\nTesting From line heuristics (with multiple configured addresses):\n"
\r
1089 -printf " Magic from guessing (nothing to go on)...\t"
\r
1090 -add_message '[from]="Sender <sender@example.com>"' \
\r
1091 - [to]=mailinglist@notmuchmail.org \
\r
1092 - [subject]=notmuch-reply-test \
\r
1093 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1094 - '[body]="from guessing test"'
\r
1096 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1097 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1098 -Subject: Re: notmuch-reply-test
\r
1099 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1100 -Bcc: test_suite@notmuchmail.org
\r
1101 -In-Reply-To: <${gen_msg_id}>
\r
1102 -References: <${gen_msg_id}>
\r
1104 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1105 -> from guessing test"
\r
1107 -printf " Magic from guessing (Envelope-to:)...\t\t"
\r
1108 -add_message '[from]="Sender <sender@example.com>"' \
\r
1109 - [to]=mailinglist@notmuchmail.org \
\r
1110 - [subject]=notmuch-reply-test \
\r
1111 - '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \
\r
1112 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1113 - '[body]="from guessing test"'
\r
1115 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1116 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
1117 -Subject: Re: notmuch-reply-test
\r
1118 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1119 -Bcc: test_suite@notmuchmail.org
\r
1120 -In-Reply-To: <${gen_msg_id}>
\r
1121 -References: <${gen_msg_id}>
\r
1123 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1124 -> from guessing test"
\r
1126 -printf " Magic from guessing (X-Original-To:)...\t"
\r
1127 -add_message '[from]="Sender <sender@example.com>"' \
\r
1128 - [to]=mailinglist@notmuchmail.org \
\r
1129 - [subject]=notmuch-reply-test \
\r
1130 - '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \
\r
1131 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1132 - '[body]="from guessing test"'
\r
1134 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1135 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
1136 -Subject: Re: notmuch-reply-test
\r
1137 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1138 -Bcc: test_suite@notmuchmail.org
\r
1139 -In-Reply-To: <${gen_msg_id}>
\r
1140 -References: <${gen_msg_id}>
\r
1142 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1143 -> from guessing test"
\r
1145 -printf " Magic from guessing (Received: .. for ..)...\t"
\r
1146 -add_message '[from]="Sender <sender@example.com>"' \
\r
1147 - [to]=mailinglist@notmuchmail.org \
\r
1148 - [subject]=notmuch-reply-test \
\r
1149 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1150 - by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
1151 - for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1152 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1153 - '[body]="from guessing test"'
\r
1155 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1156 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
1157 -Subject: Re: notmuch-reply-test
\r
1158 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1159 -Bcc: test_suite@notmuchmail.org
\r
1160 -In-Reply-To: <${gen_msg_id}>
\r
1161 -References: <${gen_msg_id}>
\r
1163 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1164 -> from guessing test"
\r
1166 -printf " Magic from guessing (Received: domain)...\t"
\r
1167 -add_message '[from]="Sender <sender@example.com>"' \
\r
1168 - [to]=mailinglist@notmuchmail.org \
\r
1169 - [subject]=notmuch-reply-test \
\r
1170 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1171 - by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
1172 - Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1173 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1174 - '[body]="from guessing test"'
\r
1176 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1177 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
\r
1178 -Subject: Re: notmuch-reply-test
\r
1179 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1180 -Bcc: test_suite@notmuchmail.org
\r
1181 -In-Reply-To: <${gen_msg_id}>
\r
1182 -References: <${gen_msg_id}>
\r
1184 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1185 -> from guessing test"
\r
1188 -printf "\nTesting From line heuristics (with single configured address):\n"
\r
1189 -sed -i -e 's/^other_email.*//' ${NOTMUCH_CONFIG}
\r
1191 -printf " Magic from guessing (nothing to go on)...\t"
\r
1192 -add_message '[from]="Sender <sender@example.com>"' \
\r
1193 - [to]=mailinglist@notmuchmail.org \
\r
1194 - [subject]=notmuch-reply-test \
\r
1195 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1196 - '[body]="from guessing test"'
\r
1198 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1199 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1200 -Subject: Re: notmuch-reply-test
\r
1201 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1202 -Bcc: test_suite@notmuchmail.org
\r
1203 -In-Reply-To: <${gen_msg_id}>
\r
1204 -References: <${gen_msg_id}>
\r
1206 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1207 -> from guessing test"
\r
1209 -printf " Magic from guessing (Envelope-to:)...\t\t"
\r
1210 -add_message '[from]="Sender <sender@example.com>"' \
\r
1211 - [to]=mailinglist@notmuchmail.org \
\r
1212 - [subject]=notmuch-reply-test \
\r
1213 - '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \
\r
1214 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1215 - '[body]="from guessing test"'
\r
1217 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1218 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1219 -Subject: Re: notmuch-reply-test
\r
1220 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1221 -Bcc: test_suite@notmuchmail.org
\r
1222 -In-Reply-To: <${gen_msg_id}>
\r
1223 -References: <${gen_msg_id}>
\r
1225 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1226 -> from guessing test"
\r
1228 -printf " Magic from guessing (X-Original-To:)...\t"
\r
1229 -add_message '[from]="Sender <sender@example.com>"' \
\r
1230 - [to]=mailinglist@notmuchmail.org \
\r
1231 - [subject]=notmuch-reply-test \
\r
1232 - '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \
\r
1233 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1234 - '[body]="from guessing test"'
\r
1236 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1237 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1238 -Subject: Re: notmuch-reply-test
\r
1239 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1240 -Bcc: test_suite@notmuchmail.org
\r
1241 -In-Reply-To: <${gen_msg_id}>
\r
1242 -References: <${gen_msg_id}>
\r
1244 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1245 -> from guessing test"
\r
1247 -printf " Magic from guessing (Received: .. for ..)...\t"
\r
1248 -add_message '[from]="Sender <sender@example.com>"' \
\r
1249 - [to]=mailinglist@notmuchmail.org \
\r
1250 - [subject]=notmuch-reply-test \
\r
1251 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1252 - by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
1253 - for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1254 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1255 - '[body]="from guessing test"'
\r
1257 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1258 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1259 -Subject: Re: notmuch-reply-test
\r
1260 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1261 -Bcc: test_suite@notmuchmail.org
\r
1262 -In-Reply-To: <${gen_msg_id}>
\r
1263 -References: <${gen_msg_id}>
\r
1265 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1266 -> from guessing test"
\r
1268 -printf " Magic from guessing (Received: domain)...\t"
\r
1269 -add_message '[from]="Sender <sender@example.com>"' \
\r
1270 - [to]=mailinglist@notmuchmail.org \
\r
1271 - [subject]=notmuch-reply-test \
\r
1272 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1273 - by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
1274 - Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1275 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1276 - '[body]="from guessing test"'
\r
1278 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1279 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1280 -Subject: Re: notmuch-reply-test
\r
1281 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1282 -Bcc: test_suite@notmuchmail.org
\r
1283 -In-Reply-To: <${gen_msg_id}>
\r
1284 -References: <${gen_msg_id}>
\r
1286 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1287 -> from guessing test"
\r
1290 -echo "Notmuch test suite complete."
\r
1292 -if [ "$test_failures" = "0" ]; then
\r
1293 - echo "All $tests tests passed."
\r
1294 - rm -rf ${TEST_DIR}
\r
1296 - echo "$test_failures/$tests tests failed. The failures can be investigated in:"
\r
1297 - echo "${TEST_DIR}"
\r
1302 -exit $test_failures
\r
1305 diff --git a/test/t0000-basic.sh b/test/t0000-basic.sh
\r
1306 index caade68..511e200 100755
\r
1307 --- a/test/t0000-basic.sh
\r
1308 +++ b/test/t0000-basic.sh
\r
1313 # Copyright (c) 2005 Junio C Hamano
\r
1315 diff --git a/test/t0001-new.sh b/test/t0001-new.sh
\r
1316 new file mode 100755
\r
1317 index 0000000..97726e7
\r
1319 +++ b/test/t0001-new.sh
\r
1322 +test_description="\"notmuch new\" in several variations"
\r
1324 +test_expect_success "No new messages" '
\r
1325 +output=$(NOTMUCH_NEW) &&
\r
1326 +pass_if_equal "$output" "No new mail."
\r
1329 +test_expect_success "Single new message" '
\r
1330 +generate_message &&
\r
1331 +output=$(NOTMUCH_NEW) &&
\r
1332 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1335 +test_expect_success "Multiple new messages" '
\r
1336 +generate_message &&
\r
1337 +generate_message &&
\r
1338 +output=$(NOTMUCH_NEW) &&
\r
1339 +pass_if_equal "$output" "Added 2 new messages to the database."
\r
1342 +test_expect_success "No new messages (non-empty DB)" '
\r
1343 +output=$(NOTMUCH_NEW) &&
\r
1344 +pass_if_equal "$output" "No new mail."
\r
1347 +test_expect_success "New directories" '
\r
1348 +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch &&
\r
1349 +mkdir "${MAIL_DIR}"/def &&
\r
1350 +mkdir "${MAIL_DIR}"/ghi &&
\r
1351 +generate_message [dir]=def &&
\r
1353 +output=$(NOTMUCH_NEW) &&
\r
1354 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1357 +test_expect_success "Alternate inode order" '
\r
1359 +rm -rf "${MAIL_DIR}"/.notmuch &&
\r
1360 +mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc &&
\r
1361 +rm "${MAIL_DIR}"/def/* &&
\r
1362 +generate_message [dir]=abc &&
\r
1364 +output=$(NOTMUCH_NEW) &&
\r
1365 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1368 +test_expect_success "Message moved in" '
\r
1369 +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch &&
\r
1370 +generate_message &&
\r
1371 +tmp_msg_filename=tmp/"$gen_msg_filename" &&
\r
1372 +mkdir -p "$(dirname "$tmp_msg_filename")" &&
\r
1373 +mv "$gen_msg_filename" "$tmp_msg_filename" &&
\r
1374 +increment_mtime "${MAIL_DIR}" &&
\r
1375 +$NOTMUCH new > /dev/null &&
\r
1376 +mv "$tmp_msg_filename" "$gen_msg_filename" &&
\r
1377 +increment_mtime "${MAIL_DIR}" &&
\r
1378 +output=$(NOTMUCH_NEW) &&
\r
1379 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1382 +test_expect_success "Renamed message" '
\r
1384 +generate_message &&
\r
1385 +$NOTMUCH new > /dev/null &&
\r
1386 +mv "$gen_msg_filename" "${gen_msg_filename}"-renamed &&
\r
1387 +increment_mtime "${MAIL_DIR}" &&
\r
1388 +output=$(NOTMUCH_NEW) &&
\r
1389 +pass_if_equal "$output" "No new mail. Detected 1 file rename."
\r
1392 +test_expect_success "Deleted message" '
\r
1394 +rm "${gen_msg_filename}"-renamed &&
\r
1395 +increment_mtime "${MAIL_DIR}" &&
\r
1396 +output=$(NOTMUCH_NEW) &&
\r
1397 +pass_if_equal "$output" "No new mail. Removed 1 message."
\r
1400 +test_expect_success "Renamed directory" '
\r
1402 +generate_message [dir]=dir &&
\r
1403 +generate_message [dir]=dir &&
\r
1404 +generate_message [dir]=dir &&
\r
1406 +$NOTMUCH new > /dev/null &&
\r
1408 +mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed &&
\r
1409 +increment_mtime "${MAIL_DIR}" &&
\r
1411 +output=$(NOTMUCH_NEW) &&
\r
1412 +pass_if_equal "$output" "No new mail. Detected 3 file renames."
\r
1415 +test_expect_success "Deleted directory" '
\r
1417 +rm -rf "${MAIL_DIR}"/dir-renamed &&
\r
1418 +increment_mtime "${MAIL_DIR}" &&
\r
1420 +output=$(NOTMUCH_NEW) &&
\r
1421 +pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
1424 +test_expect_success "New directory (at end of list)" '
\r
1426 +generate_message [dir]=zzz &&
\r
1427 +generate_message [dir]=zzz &&
\r
1428 +generate_message [dir]=zzz &&
\r
1430 +output=$(NOTMUCH_NEW) &&
\r
1431 +pass_if_equal "$output" "Added 3 new messages to the database."
\r
1434 +test_expect_success "Deleted directory (end of list)" '
\r
1436 +rm -rf "${MAIL_DIR}"/zzz &&
\r
1437 +increment_mtime "${MAIL_DIR}" &&
\r
1439 +output=$(NOTMUCH_NEW) &&
\r
1440 +pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
1443 +test_expect_success "New symlink to directory" '
\r
1445 +rm -rf "${MAIL_DIR}"/.notmuch &&
\r
1446 +mv "${MAIL_DIR}" "$PWD"/actual_maildir &&
\r
1448 +mkdir "${MAIL_DIR}" &&
\r
1449 +ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink &&
\r
1451 +output=$(NOTMUCH_NEW) &&
\r
1452 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1455 +test_expect_success "New symlink to a file" '
\r
1456 +generate_message &&
\r
1457 +external_msg_filename="$PWD"/external/"$(basename "$gen_msg_filename")" &&
\r
1458 +mkdir -p "$(dirname "$external_msg_filename")" &&
\r
1459 +mv "$gen_msg_filename" "$external_msg_filename" &&
\r
1460 +ln -s "$external_msg_filename" "$gen_msg_filename" &&
\r
1461 +increment_mtime "${MAIL_DIR}" &&
\r
1462 +output=$(NOTMUCH_NEW) &&
\r
1463 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1466 +test_expect_success "New two-level directory" '
\r
1468 +generate_message [dir]=two/levels &&
\r
1469 +generate_message [dir]=two/levels &&
\r
1470 +generate_message [dir]=two/levels &&
\r
1472 +output=$(NOTMUCH_NEW) &&
\r
1473 +pass_if_equal "$output" "Added 3 new messages to the database."
\r
1476 +test_expect_success "Deleted two-level directory" '
\r
1478 +rm -rf "${MAIL_DIR}"/two &&
\r
1479 +increment_mtime "${MAIL_DIR}" &&
\r
1481 +output=$(NOTMUCH_NEW) &&
\r
1482 +pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
1485 diff --git a/test/t0002-search.sh b/test/t0002-search.sh
\r
1486 new file mode 100755
\r
1487 index 0000000..7de4d47
\r
1489 +++ b/test/t0002-search.sh
\r
1492 +test_description="\"notmuch search\" in several variations"
\r
1495 +test_expect_success "Search body" '
\r
1496 +add_message "[subject]=\"body search\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [body]=bodysearchtest &&
\r
1497 +output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize) &&
\r
1498 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
\r
1501 +test_expect_success "Search by from:" '
\r
1502 +add_message "[subject]=\"search by from\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom &&
\r
1503 +output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize) &&
\r
1504 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
\r
1507 +test_expect_success "Search by to:" '
\r
1508 +add_message "[subject]=\"search by to\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto &&
\r
1509 +output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize) &&
\r
1510 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
\r
1513 +test_expect_success "Search by subject:" '
\r
1514 +add_message [subject]=subjectsearchtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1515 +output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize) &&
\r
1516 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
\r
1519 +test_expect_success "Search by id:" '
\r
1520 +add_message "[subject]=\"search by id\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1521 +output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize) &&
\r
1522 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
\r
1525 +test_expect_success "Search by tag:" '
\r
1526 +add_message "[subject]=\"search by tag\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1527 +$NOTMUCH tag +searchbytag id:${gen_msg_id} &&
\r
1528 +output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize) &&
\r
1529 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
\r
1532 +test_expect_success "Search by thread:" '
\r
1533 +add_message "[subject]=\"search by thread\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1534 +thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e "s/thread:\([a-f0-9]*\).*/\1/") &&
\r
1535 +output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize) &&
\r
1536 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
\r
1539 +test_expect_success "Search body (phrase)" '
\r
1540 +add_message "[subject]=\"body search (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"body search (phrase)\"" &&
\r
1541 +add_message "[subject]=\"negative result\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"This phrase should not match the body search\"" &&
\r
1542 +output=$($NOTMUCH search "\"body search (phrase)\"" | notmuch_search_sanitize) &&
\r
1543 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
\r
1546 +test_expect_success "Search by from: (address)" '
\r
1547 +add_message "[subject]=\"search by from (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom@example.com &&
\r
1548 +output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize) &&
\r
1549 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
\r
1552 +test_expect_success "Search by from: (name)" '
\r
1553 +add_message "[subject]=\"search by from (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[from]=\"Search By From Name <test@example.com>\"" &&
\r
1554 +output=$($NOTMUCH search from:"Search By From Name" | notmuch_search_sanitize) &&
\r
1555 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
\r
1558 +test_expect_success "Search by to: (address)" '
\r
1559 +add_message "[subject]=\"search by to (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto@example.com &&
\r
1560 +output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize) &&
\r
1561 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
\r
1564 +test_expect_success "Search by to: (name)" '
\r
1565 +add_message "[subject]=\"search by to (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[to]=\"Search By To Name <test@example.com>\"" &&
\r
1566 +output=$($NOTMUCH search to:"Search By To Name" | notmuch_search_sanitize) &&
\r
1567 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
\r
1570 +test_expect_success "Search by subject: (phrase)" '
\r
1571 +add_message "[subject]=\"subject search test (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1572 +add_message "[subject]=\"this phrase should not match the subject search test\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1573 +output=$($NOTMUCH search "subject:\"subject search test (phrase)\"" | notmuch_search_sanitize) &&
\r
1574 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
\r
1577 +test_expect_success "Search for all messages (\"*\"):" '
\r
1578 +output=$($NOTMUCH search "*" | notmuch_search_sanitize) &&
\r
1579 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
\r
1580 +thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)
\r
1581 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)
\r
1582 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)
\r
1583 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)
\r
1584 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)
\r
1585 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)
\r
1586 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)
\r
1587 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread)
\r
1588 +thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)
\r
1589 +thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)
\r
1590 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)
\r
1591 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)
\r
1592 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)
\r
1593 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
\r
1596 +test_expect_success "Search body (utf-8):" '
\r
1597 +add_message "[subject]=\"utf8-message-body-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"message body utf8: bödý\"" &&
\r
1598 +output=$($NOTMUCH search "bödý" | notmuch_search_sanitize) &&
\r
1599 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
\r
1602 diff --git a/test/t0003-json.sh b/test/t0003-json.sh
\r
1603 new file mode 100755
\r
1604 index 0000000..810262c
\r
1606 +++ b/test/t0003-json.sh
\r
1609 +test_description="--format=json output"
\r
1612 +test_expect_success "Show message: json" '
\r
1613 +add_message "[subject]=\"json-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-show-message\"" &&
\r
1614 +output=$($NOTMUCH show --format=json "json-show-message") &&
\r
1615 +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\"}]}, []]]]"
\r
1618 +test_expect_success "Search message: json" '
\r
1619 +add_message "[subject]=\"json-search-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-search-message\"" &&
\r
1620 +output=$($NOTMUCH search --format=json "json-search-message" | notmuch_search_sanitize) &&
\r
1621 +pass_if_equal "$output" "[{\"thread\": \"XXX\",
\r
1622 +\"timestamp\": 946728000,
\r
1625 +\"authors\": \"Notmuch Test Suite\",
\r
1626 +\"subject\": \"json-search-subject\",
\r
1627 +\"tags\": [\"inbox\", \"unread\"]}]"
\r
1630 +test_expect_success "Search by subject (utf-8):" '
\r
1631 +add_message [subject]=utf8-sübjéct "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1632 +output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize) &&
\r
1633 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)"
\r
1636 +test_expect_success "Show message: json, utf-8" '
\r
1637 +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\"" &&
\r
1638 +output=$($NOTMUCH show --format=json "jsön-show-méssage") &&
\r
1639 +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\"}]}, []]]]"
\r
1642 +test_expect_success "Search message: json, utf-8" '
\r
1643 +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\"" &&
\r
1644 +output=$($NOTMUCH search --format=json "jsön-search-méssage" | notmuch_search_sanitize) &&
\r
1645 +pass_if_equal "$output" "[{\"thread\": \"XXX\",
\r
1646 +\"timestamp\": 946728000,
\r
1649 +\"authors\": \"Notmuch Test Suite\",
\r
1650 +\"subject\": \"json-search-utf8-body-sübjéct\",
\r
1651 +\"tags\": [\"inbox\", \"unread\"]}]"
\r
1654 diff --git a/test/t0004-thread-naming.sh b/test/t0004-thread-naming.sh
\r
1655 new file mode 100755
\r
1656 index 0000000..88216f2
\r
1658 +++ b/test/t0004-thread-naming.sh
\r
1661 +test_description="naming of threads with changing subject"
\r
1663 +test_expect_success 'Generate some messages' '
\r
1664 +add_message "[subject]=\"thread-naming: Initial thread subject\"" \
\r
1665 + "[date]=\"Fri, 05 Jan 2001 15:43:56 -0800\"" &&
\r
1666 +first=${gen_msg_cnt} &&
\r
1667 +parent=${gen_msg_id} &&
\r
1668 +add_message "[subject]=\"thread-naming: Older changed subject\"" \
\r
1669 + "[date]=\"Sat, 06 Jan 2001 15:43:56 -0800\"" \
\r
1670 + "[in-reply-to]=\<$parent\>" &&
\r
1671 +add_message "[subject]=\"thread-naming: Newer changed subject\"" \
\r
1672 + "[date]=\"Sun, 07 Jan 2001 15:43:56 -0800\"" \
\r
1673 + "[in-reply-to]=\<$parent\>" &&
\r
1674 +add_message "[subject]=\"thread-naming: Final thread subject\"" \
\r
1675 + "[date]=\"Mon, 08 Jan 2001 15:43:56 -0800\"" \
\r
1676 + "[in-reply-to]=\<$parent\>" &&
\r
1677 +final=${gen_msg_id}
\r
1680 +test_expect_success "Initial thread name (oldest-first search)" '
\r
1681 +output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1682 +pass_if_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1685 +test_expect_success "Initial thread name (newest-first search)" '
\r
1686 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1687 +pass_if_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)"
\r
1689 +# Remove oldest and newest messages from search results
\r
1690 +$NOTMUCH tag -inbox id:$parent or id:$final
\r
1693 +test_expect_success "Changed thread name (oldest-first search)" '
\r
1694 +output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1695 +pass_if_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)"
\r
1698 +test_expect_success "Changed thread name (newest-first search)" '
\r
1699 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1700 +pass_if_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)"
\r
1703 +test_expect_success "Ignore added reply prefix (Re:)" '
\r
1704 +add_message "[subject]=\"Re: thread-naming: Initial thread subject\"" \
\r
1705 + "[date]=\"Tue, 09 Jan 2001 15:43:45 -0800\"" \
\r
1706 + "[in-reply-to]=\<$parent\>" &&
\r
1707 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1708 +pass_if_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1711 +test_expect_success "Ignore added reply prefix (Aw:)" '
\r
1712 +add_message "[subject]=\"Aw: thread-naming: Initial thread subject\"" \
\r
1713 + "[date]=\"Wed, 10 Jan 2001 15:43:45 -0800\"" \
\r
1714 + "[in-reply-to]=\<$parent\>" &&
\r
1715 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1716 +pass_if_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1719 +test_expect_success "Ignore added reply prefix (Vs:)" '
\r
1720 +add_message "[subject]=\"Vs: thread-naming: Initial thread subject\"" \
\r
1721 + "[date]=\"Thu, 11 Jan 2001 15:43:45 -0800\"" \
\r
1722 + "[in-reply-to]=\<$parent\>" &&
\r
1723 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1724 +pass_if_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1727 +test_expect_success "Ignore added reply prefix (Sv:)" '
\r
1728 +add_message "[subject]=\"Sv: thread-naming: Initial thread subject\"" \
\r
1729 + "[date]=\"Fri, 12 Jan 2001 15:43:45 -0800\"" \
\r
1730 + "[in-reply-to]=\<$parent\>" &&
\r
1731 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1732 +pass_if_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1735 +test_expect_success "Test order of messages in \"notmuch show\"" '
\r
1736 +output=$($NOTMUCH show thread-naming | notmuch_show_sanitize) &&
\r
1737 +pass_if_equal "$output" "
\f\r
1738 message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first)
\r
1741 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (unread)
\r
1742 +Subject: thread-naming: Initial thread subject
\r
1743 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1744 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1745 +Date: Fri, 05 Jan 2001 15:43:56 -0800
\r
1751 part{ ID: 1, Content-type: text/plain
\r
1752 +This is just a test message (#$first)
\r
1760 message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1)))
\r
1763 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-06) (inbox unread)
\r
1764 +Subject: thread-naming: Older changed subject
\r
1765 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1766 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1767 +Date: Sat, 06 Jan 2001 15:43:56 -0800
\r
1773 part{ ID: 1, Content-type: text/plain
\r
1774 +This is just a test message (#$((first + 1)))
\r
1782 message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2)))
\r
1785 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-07) (inbox unread)
\r
1786 +Subject: thread-naming: Newer changed subject
\r
1787 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1788 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1789 +Date: Sun, 07 Jan 2001 15:43:56 -0800
\r
1795 part{ ID: 1, Content-type: text/plain
\r
1796 +This is just a test message (#$((first + 2)))
\r
1804 message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3)))
\r
1807 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-08) (unread)
\r
1808 +Subject: thread-naming: Final thread subject
\r
1809 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1810 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1811 +Date: Mon, 08 Jan 2001 15:43:56 -0800
\r
1817 part{ ID: 1, Content-type: text/plain
\r
1818 +This is just a test message (#$((first + 3)))
\r
1826 message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4)))
\r
1829 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-09) (inbox unread)
\r
1830 +Subject: Re: thread-naming: Initial thread subject
\r
1831 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1832 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1833 +Date: Tue, 09 Jan 2001 15:43:45 -0800
\r
1839 part{ ID: 1, Content-type: text/plain
\r
1840 +This is just a test message (#$((first + 4)))
\r
1848 message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5)))
\r
1851 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-10) (inbox unread)
\r
1852 +Subject: Aw: thread-naming: Initial thread subject
\r
1853 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1854 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1855 +Date: Wed, 10 Jan 2001 15:43:45 -0800
\r
1861 part{ ID: 1, Content-type: text/plain
\r
1862 +This is just a test message (#$((first + 5)))
\r
1870 message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6)))
\r
1873 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-11) (inbox unread)
\r
1874 +Subject: Vs: thread-naming: Initial thread subject
\r
1875 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1876 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1877 +Date: Thu, 11 Jan 2001 15:43:45 -0800
\r
1883 part{ ID: 1, Content-type: text/plain
\r
1884 +This is just a test message (#$((first + 6)))
\r
1892 message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7)))
\r
1895 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-12) (inbox unread)
\r
1896 +Subject: Sv: thread-naming: Initial thread subject
\r
1897 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1898 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1899 +Date: Fri, 12 Jan 2001 15:43:45 -0800
\r
1905 part{ ID: 1, Content-type: text/plain
\r
1906 +This is just a test message (#$((first + 7)))
\r
1915 diff --git a/test/t0005-reply.sh b/test/t0005-reply.sh
\r
1916 new file mode 100755
\r
1917 index 0000000..670bc73
\r
1919 +++ b/test/t0005-reply.sh
\r
1922 +test_description="\"notmuch reply\" in several variations"
\r
1925 +test_expect_success "Basic reply" '
\r
1926 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
1927 + [to]=test_suite@notmuchmail.org \
\r
1928 + [subject]=notmuch-reply-test \
\r
1929 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
1930 + "[body]=\"basic reply test\"" &&
\r
1932 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
1933 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1934 +Subject: Re: notmuch-reply-test
\r
1935 +To: Sender <sender@example.com>
\r
1936 +Bcc: test_suite@notmuchmail.org
\r
1937 +In-Reply-To: <${gen_msg_id}>
\r
1938 +References: <${gen_msg_id}>
\r
1940 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1941 +> basic reply test"
\r
1944 +test_expect_success "Multiple recipients" '
\r
1945 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
1946 + "[to]=\"test_suite@notmuchmail.org, Someone Else <someone@example.com>\"" \
\r
1947 + [subject]=notmuch-reply-test \
\r
1948 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
1949 + "[body]=\"Multiple recipients\"" &&
\r
1951 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
1952 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1953 +Subject: Re: notmuch-reply-test
\r
1954 +To: Sender <sender@example.com>, Someone Else <someone@example.com>
\r
1955 +Bcc: test_suite@notmuchmail.org
\r
1956 +In-Reply-To: <${gen_msg_id}>
\r
1957 +References: <${gen_msg_id}>
\r
1959 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1960 +> Multiple recipients"
\r
1963 +test_expect_success "Reply with CC" '
\r
1964 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
1965 + [to]=test_suite@notmuchmail.org \
\r
1966 + "[cc]=\"Other Parties <cc@example.com>\"" \
\r
1967 + [subject]=notmuch-reply-test \
\r
1968 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
1969 + "[body]=\"reply with CC\"" &&
\r
1971 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
1972 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1973 +Subject: Re: notmuch-reply-test
\r
1974 +To: Sender <sender@example.com>
\r
1975 +Cc: Other Parties <cc@example.com>
\r
1976 +Bcc: test_suite@notmuchmail.org
\r
1977 +In-Reply-To: <${gen_msg_id}>
\r
1978 +References: <${gen_msg_id}>
\r
1980 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1984 +test_expect_success "Reply from alternate address" '
\r
1985 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
1986 + [to]=test_suite_other@notmuchmail.org \
\r
1987 + [subject]=notmuch-reply-test \
\r
1988 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
1989 + "[body]=\"reply from alternate address\"" &&
\r
1991 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
1992 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
1993 +Subject: Re: notmuch-reply-test
\r
1994 +To: Sender <sender@example.com>
\r
1995 +Bcc: test_suite@notmuchmail.org
\r
1996 +In-Reply-To: <${gen_msg_id}>
\r
1997 +References: <${gen_msg_id}>
\r
1999 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2000 +> reply from alternate address"
\r
2003 +test_expect_success "Support for Reply-To" '
\r
2004 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2005 + [to]=test_suite@notmuchmail.org \
\r
2006 + [subject]=notmuch-reply-test \
\r
2007 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2008 + "[body]=\"support for reply-to\"" \
\r
2009 + "[reply-to]=\"Sender <elsewhere@example.com>\"" &&
\r
2011 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2012 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2013 +Subject: Re: notmuch-reply-test
\r
2014 +To: Sender <elsewhere@example.com>
\r
2015 +Bcc: test_suite@notmuchmail.org
\r
2016 +In-Reply-To: <${gen_msg_id}>
\r
2017 +References: <${gen_msg_id}>
\r
2019 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2020 +> support for reply-to"
\r
2023 +test_expect_success "Un-munging Reply-To" '
\r
2024 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2025 + "[to]=\"Some List <list@example.com>\"" \
\r
2026 + [subject]=notmuch-reply-test \
\r
2027 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2028 + "[body]=\"Un-munging Reply-To\"" \
\r
2029 + "[reply-to]=\"Evil Munging List <list@example.com>\"" &&
\r
2031 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2032 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2033 +Subject: Re: notmuch-reply-test
\r
2034 +To: Sender <sender@example.com>, Some List <list@example.com>
\r
2035 +Bcc: test_suite@notmuchmail.org
\r
2036 +In-Reply-To: <${gen_msg_id}>
\r
2037 +References: <${gen_msg_id}>
\r
2039 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2040 +> Un-munging Reply-To"
\r
2043 diff --git a/test/t0006-dump-restore.sh b/test/t0006-dump-restore.sh
\r
2044 new file mode 100755
\r
2045 index 0000000..f971181
\r
2047 +++ b/test/t0006-dump-restore.sh
\r
2050 +test_description="\"notmuch dump\" and \"notmuch restore\""
\r
2052 +test_expect_success 'Generate some message' '
\r
2053 +generate_message &&
\r
2056 +test_expect_success "Dumping all tags" '
\r
2057 +$NOTMUCH dump dump.expected &&
\r
2058 +pass_if_equal "$?" "0"
\r
2061 +test_expect_success "Clearing all tags" '
\r
2062 +sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected
\r
2063 +$NOTMUCH restore clear.expected &&
\r
2064 +$NOTMUCH dump clear.actual &&
\r
2065 +pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
\r
2068 +test_expect_success "Restoring original tags" '
\r
2069 +$NOTMUCH restore dump.expected &&
\r
2070 +$NOTMUCH dump dump.actual &&
\r
2071 +pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
\r
2074 +test_expect_success "Restore with nothing to do" '
\r
2075 +$NOTMUCH restore dump.expected &&
\r
2076 +pass_if_equal "$?" "0"
\r
2079 diff --git a/test/t0007-uuencode.sh b/test/t0007-uuencode.sh
\r
2080 new file mode 100755
\r
2081 index 0000000..e290610
\r
2083 +++ b/test/t0007-uuencode.sh
\r
2086 +test_description="handling of uuencoded data"
\r
2088 +test_expect_success 'Generate message' '
\r
2090 +add_message [subject]=uuencodetest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
\r
2091 +"[body]=\"This message is used to ensure that notmuch correctly handles a
\r
2092 +message containing a block of uuencoded data. First, we have a marker
\r
2093 +this content beforeuudata . Then we beging the uunencoded data itself:
\r
2095 +begin 644 bogus-uuencoded-data
\r
2096 +M0123456789012345678901234567890123456789012345678901234567890
\r
2097 +MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA.
\r
2098 +MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA
\r
2099 +MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE
\r
2100 +MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY
\r
2105 +Finally, we have our afteruudata marker as well.\""
\r
2108 +test_expect_success "Ensure content before uu data is indexed" '
\r
2109 +output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize) &&
\r
2110 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
2112 +test_expect_success "Ensure uu data is not indexed" '
\r
2113 +output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize) &&
\r
2114 +pass_if_equal "$output" ""
\r
2116 +test_expect_success "Ensure content after uu data is indexed" '
\r
2117 +output=$($NOTMUCH search afteruudata | notmuch_search_sanitize) &&
\r
2118 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
2121 diff --git a/test/t0008-threading-out-of-order.sh b/test/t0008-threading-out-of-order.sh
\r
2122 new file mode 100755
\r
2123 index 0000000..9f360b7
\r
2125 +++ b/test/t0008-threading-out-of-order.sh
\r
2128 +test_description="threading when messages received out of order"
\r
2130 +test_expect_success "Adding initial child message" '
\r
2131 +generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
2132 +output=$(NOTMUCH_NEW) &&
\r
2133 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2135 +test_expect_success "Searching returns the message" '
\r
2136 +output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
\r
2137 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
2139 +test_expect_success "Adding second child message" '
\r
2140 +generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
2141 +output=$(NOTMUCH_NEW) &&
\r
2142 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2144 +test_expect_success "Searching returns both messages in one thread" '
\r
2145 +output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
\r
2146 +pass_if_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
2148 +test_expect_success "Adding parent message" '
\r
2149 +generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
2150 +output=$(NOTMUCH_NEW) &&
\r
2151 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2153 +test_expect_success "Searching returns all three messages in one thread" '
\r
2154 +output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
\r
2155 +pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
2158 diff --git a/test/t0009-author-reordering.sh b/test/t0009-author-reordering.sh
\r
2159 new file mode 100755
\r
2160 index 0000000..b993341
\r
2162 +++ b/test/t0009-author-reordering.sh
\r
2165 +test_description="author reordering;"
\r
2167 +test_expect_success "Adding parent message" '
\r
2168 +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\"" &&
\r
2169 +output=$(NOTMUCH_NEW) &&
\r
2170 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2172 +test_expect_success "Adding initial child message" '
\r
2173 +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\"" &&
\r
2174 +output=$(NOTMUCH_NEW) &&
\r
2175 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2177 +test_expect_success "Adding second child message" '
\r
2178 +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\"" &&
\r
2179 +output=$(NOTMUCH_NEW) &&
\r
2180 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2182 +test_expect_success "Searching when all three messages match" '
\r
2183 +output=$($NOTMUCH search findme | notmuch_search_sanitize) &&
\r
2184 +pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
\r
2186 +test_expect_success "Searching when two messages match" '
\r
2187 +output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize) &&
\r
2188 +pass_if_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
\r
2190 +test_expect_success "Searching when only one message matches" '
\r
2191 +output=$($NOTMUCH search User2 | notmuch_search_sanitize) &&
\r
2192 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
\r
2194 +test_expect_success "Searching when only first message matches" '
\r
2195 +output=$($NOTMUCH search User | notmuch_search_sanitize) &&
\r
2196 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
\r
2199 diff --git a/test/t0010-from-line-heuristics.sh b/test/t0010-from-line-heuristics.sh
\r
2200 new file mode 100755
\r
2201 index 0000000..cb3f5b3
\r
2203 +++ b/test/t0010-from-line-heuristics.sh
\r
2206 +test_description="From line heuristics (with multiple configured addresses)"
\r
2208 +test_expect_success "Magic from guessing (nothing to go on)" '
\r
2209 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2210 + [to]=mailinglist@notmuchmail.org \
\r
2211 + [subject]=notmuch-reply-test \
\r
2212 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2213 + "[body]=\"from guessing test\"" &&
\r
2215 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2216 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2217 +Subject: Re: notmuch-reply-test
\r
2218 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2219 +Bcc: test_suite@notmuchmail.org
\r
2220 +In-Reply-To: <${gen_msg_id}>
\r
2221 +References: <${gen_msg_id}>
\r
2223 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2224 +> from guessing test"
\r
2227 +test_expect_success "Magic from guessing (Envelope-to:)" '
\r
2228 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2229 + [to]=mailinglist@notmuchmail.org \
\r
2230 + [subject]=notmuch-reply-test \
\r
2231 + "[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
\r
2232 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2233 + "[body]=\"from guessing test\"" &&
\r
2235 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2236 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
2237 +Subject: Re: notmuch-reply-test
\r
2238 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2239 +Bcc: test_suite@notmuchmail.org
\r
2240 +In-Reply-To: <${gen_msg_id}>
\r
2241 +References: <${gen_msg_id}>
\r
2243 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2244 +> from guessing test"
\r
2247 +test_expect_success "Magic from guessing (X-Original-To:)" '
\r
2248 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2249 + [to]=mailinglist@notmuchmail.org \
\r
2250 + [subject]=notmuch-reply-test \
\r
2251 + "[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
\r
2252 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2253 + "[body]=\"from guessing test\"" &&
\r
2255 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2256 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
2257 +Subject: Re: notmuch-reply-test
\r
2258 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2259 +Bcc: test_suite@notmuchmail.org
\r
2260 +In-Reply-To: <${gen_msg_id}>
\r
2261 +References: <${gen_msg_id}>
\r
2263 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2264 +> from guessing test"
\r
2267 +test_expect_success "Magic from guessing (Received: .. for ..)" '
\r
2268 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2269 + [to]=mailinglist@notmuchmail.org \
\r
2270 + [subject]=notmuch-reply-test \
\r
2271 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2272 + by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
2273 + for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2274 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2275 + "[body]=\"from guessing test\"" &&
\r
2277 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2278 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
2279 +Subject: Re: notmuch-reply-test
\r
2280 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2281 +Bcc: test_suite@notmuchmail.org
\r
2282 +In-Reply-To: <${gen_msg_id}>
\r
2283 +References: <${gen_msg_id}>
\r
2285 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2286 +> from guessing test"
\r
2289 +test_expect_success "Magic from guessing (Received: domain)" '
\r
2290 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2291 + [to]=mailinglist@notmuchmail.org \
\r
2292 + [subject]=notmuch-reply-test \
\r
2293 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2294 + by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
2295 + Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2296 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2297 + "[body]=\"from guessing test\"" &&
\r
2299 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2300 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
\r
2301 +Subject: Re: notmuch-reply-test
\r
2302 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2303 +Bcc: test_suite@notmuchmail.org
\r
2304 +In-Reply-To: <${gen_msg_id}>
\r
2305 +References: <${gen_msg_id}>
\r
2307 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2308 +> from guessing test"
\r
2312 +test_expect_success "\nTesting From line heuristics (with single configured address):\n" '
\r
2313 +sed -i -e "s/^other_email.*//" "${NOTMUCH_CONFIG}"
\r
2316 +test_expect_success "Magic from guessing (nothing to go on)" '
\r
2317 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2318 + [to]=mailinglist@notmuchmail.org \
\r
2319 + [subject]=notmuch-reply-test \
\r
2320 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2321 + "[body]=\"from guessing test\"" &&
\r
2323 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2324 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2325 +Subject: Re: notmuch-reply-test
\r
2326 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2327 +Bcc: test_suite@notmuchmail.org
\r
2328 +In-Reply-To: <${gen_msg_id}>
\r
2329 +References: <${gen_msg_id}>
\r
2331 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2332 +> from guessing test"
\r
2335 +test_expect_success "Magic from guessing (Envelope-to:)" '
\r
2336 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2337 + [to]=mailinglist@notmuchmail.org \
\r
2338 + [subject]=notmuch-reply-test \
\r
2339 + "[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
\r
2340 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2341 + "[body]=\"from guessing test\"" &&
\r
2343 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2344 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2345 +Subject: Re: notmuch-reply-test
\r
2346 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2347 +Bcc: test_suite@notmuchmail.org
\r
2348 +In-Reply-To: <${gen_msg_id}>
\r
2349 +References: <${gen_msg_id}>
\r
2351 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2352 +> from guessing test"
\r
2355 +test_expect_success "Magic from guessing (X-Original-To:)" '
\r
2356 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2357 + [to]=mailinglist@notmuchmail.org \
\r
2358 + [subject]=notmuch-reply-test \
\r
2359 + "[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
\r
2360 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2361 + "[body]=\"from guessing test\"" &&
\r
2363 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2364 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2365 +Subject: Re: notmuch-reply-test
\r
2366 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2367 +Bcc: test_suite@notmuchmail.org
\r
2368 +In-Reply-To: <${gen_msg_id}>
\r
2369 +References: <${gen_msg_id}>
\r
2371 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2372 +> from guessing test"
\r
2375 +test_expect_success "Magic from guessing (Received: .. for ..)" '
\r
2376 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2377 + [to]=mailinglist@notmuchmail.org \
\r
2378 + [subject]=notmuch-reply-test \
\r
2379 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2380 + by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
2381 + for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2382 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2383 + "[body]=\"from guessing test\"" &&
\r
2385 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2386 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2387 +Subject: Re: notmuch-reply-test
\r
2388 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2389 +Bcc: test_suite@notmuchmail.org
\r
2390 +In-Reply-To: <${gen_msg_id}>
\r
2391 +References: <${gen_msg_id}>
\r
2393 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2394 +> from guessing test"
\r
2397 +test_expect_success "Magic from guessing (Received: domain)" '
\r
2398 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2399 + [to]=mailinglist@notmuchmail.org \
\r
2400 + [subject]=notmuch-reply-test \
\r
2401 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2402 + by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
2403 + Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2404 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2405 + "[body]=\"from guessing test\"" &&
\r
2407 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2408 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2409 +Subject: Re: notmuch-reply-test
\r
2410 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2411 +Bcc: test_suite@notmuchmail.org
\r
2412 +In-Reply-To: <${gen_msg_id}>
\r
2413 +References: <${gen_msg_id}>
\r
2415 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2416 +> from guessing test"
\r