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 E093B40AB4C
\r
6 for <notmuch@notmuchmail.org>; Wed, 9 Jun 2010 23:49:41 -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 NFdZTgNTyw6w for <notmuch@notmuchmail.org>;
\r
16 Wed, 9 Jun 2010 23:49:14 -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 6EC044196F5
\r
19 for <notmuch@notmuchmail.org>; Wed, 9 Jun 2010 23:48:39 -0700 (PDT)
\r
20 Received: from localhost (unknown [192.168.200.4])
\r
21 by max.feld.cvut.cz (Postfix) with ESMTP id C138719F33E1;
\r
22 Thu, 10 Jun 2010 08:48:38 +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 U6xP2Yer7tei; Thu, 10 Jun 2010 08:48:33 +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 C78F519F35EC;
\r
30 Thu, 10 Jun 2010 08:48:32 +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 BDC9415C062;
\r
34 Thu, 10 Jun 2010 08:48:32 +0200 (CEST)
\r
35 Received: from wsh by steelpick.2x.cz with local (Exim 4.72)
\r
36 (envelope-from <sojkam1@fel.cvut.cz>)
\r
37 id 1OMbZ2-0000Je-G7; Thu, 10 Jun 2010 08:48:32 +0200
\r
38 From: Michal Sojka <sojkam1@fel.cvut.cz>
\r
39 To: notmuch@notmuchmail.org
\r
40 Subject: [PATCH v3 4/5] Convert the actual tests to the new framework
\r
41 Date: Thu, 10 Jun 2010 08:48:03 +0200
\r
42 Message-Id: <1276152484-1164-5-git-send-email-sojkam1@fel.cvut.cz>
\r
43 X-Mailer: git-send-email 1.7.1.3.g75e44
\r
44 In-Reply-To: <1276152484-1164-1-git-send-email-sojkam1@fel.cvut.cz>
\r
45 References: <1276152484-1164-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: Thu, 10 Jun 2010 06:49:42 -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 | 1190 +---------------------------------
\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 | 137 ++++
\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 | 215 ++++++
\r
108 test/t0011-long-msgid.sh | 29 +
\r
109 test/t0012-encoding-issues.sh | 25 +
\r
110 14 files changed, 1053 insertions(+), 1189 deletions(-)
\r
111 create mode 100755 test/t0001-new.sh
\r
112 create mode 100755 test/t0002-search.sh
\r
113 create mode 100755 test/t0003-json.sh
\r
114 create mode 100755 test/t0004-thread-naming.sh
\r
115 create mode 100755 test/t0005-reply.sh
\r
116 create mode 100755 test/t0006-dump-restore.sh
\r
117 create mode 100755 test/t0007-uuencode.sh
\r
118 create mode 100755 test/t0008-threading-out-of-order.sh
\r
119 create mode 100755 test/t0009-author-reordering.sh
\r
120 create mode 100755 test/t0010-from-line-heuristics.sh
\r
121 create mode 100755 test/t0011-long-msgid.sh
\r
122 create mode 100755 test/t0012-encoding-issues.sh
\r
124 diff --git a/test/notmuch-test b/test/notmuch-test
\r
125 index 00ac6b0..5c066ed 100755
\r
126 --- a/test/notmuch-test
\r
127 +++ b/test/notmuch-test
\r
132 -# Messages contain time/date values with time zone and notmuch
\r
133 -# displays them converted to the local time zone. We need to set fixed
\r
134 -# timezone here so that the output of the tests is always the same
\r
135 -# without regard to the time zone of where the test suite is run.
\r
138 -find_notmuch_binary ()
\r
142 - while [ -n "$dir" ]; do
\r
144 - if [ -x $bin ]; then
\r
148 - dir=$(dirname $dir)
\r
149 - if [ "$dir" = "/" ]; then
\r
157 -increment_mtime_amount=0
\r
158 -increment_mtime ()
\r
162 - increment_mtime_amount=$((increment_mtime_amount + 1))
\r
163 - touch -d "+${increment_mtime_amount} seconds" $dir
\r
166 -# Generate a new message in the mail directory, with a unique message
\r
167 -# ID and subject. The message is not added to the index.
\r
169 -# After this function returns, the filename of the generated message
\r
170 -# is available as $gen_msg_filename and the message ID is available as
\r
173 -# This function supports named parameters with the bash syntax for
\r
174 -# assigning a value to an associative array ([name]=value). The
\r
175 -# supported parameters are:
\r
177 -# [dir]=directory/of/choice
\r
179 -# Generate the message in directory 'directory/of/choice' within
\r
180 -# the mail store. The directory will be created if necessary.
\r
184 -# Text to use as the body of the email message
\r
186 -# '[from]="Some User <user@example.com>"'
\r
187 -# '[to]="Some User <user@example.com>"'
\r
188 -# '[subject]="Subject of email message"'
\r
189 -# '[date]="RFC 822 Date"'
\r
191 -# Values for email headers. If not provided, default values will
\r
192 -# be generated instead.
\r
194 -# '[cc]="Some User <user@example.com>"'
\r
195 -# [reply-to]=some-address
\r
196 -# [in-reply-to]=<message-id>
\r
197 -# [references]=<message-id>
\r
198 -# [content-type]=content-type-specification
\r
199 -# '[header]=full header line, including keyword'
\r
201 -# Additional values for email headers. If these are not provided
\r
202 -# then the relevant headers will simply not appear in the
\r
205 -# '[id]=message-id'
\r
207 -# Controls the message-id of the created message.
\r
209 -gen_msg_filename=""
\r
211 -generate_message ()
\r
213 - # This is our (bash-specific) magic for doing named parameters
\r
214 - local -A template="($@)"
\r
215 - local additional_headers
\r
217 - gen_msg_cnt=$((gen_msg_cnt + 1))
\r
218 - gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt)
\r
220 - if [ -z "${template[id]}" ]; then
\r
221 - gen_msg_id="${gen_msg_name}@notmuch-test-suite"
\r
223 - gen_msg_id="${template[id]}"
\r
226 - if [ -z "${template[dir]}" ]; then
\r
227 - gen_msg_filename="${MAIL_DIR}/$gen_msg_name"
\r
229 - gen_msg_filename="${MAIL_DIR}/${template[dir]}/$gen_msg_name"
\r
230 - mkdir -p $(dirname $gen_msg_filename)
\r
233 - if [ -z "${template[body]}" ]; then
\r
234 - template[body]="This is just a test message (#${gen_msg_cnt})"
\r
237 - if [ -z "${template[from]}" ]; then
\r
238 - template[from]="Notmuch Test Suite <test_suite@notmuchmail.org>"
\r
241 - if [ -z "${template[to]}" ]; then
\r
242 - template[to]="Notmuch Test Suite <test_suite@notmuchmail.org>"
\r
245 - if [ -z "${template[subject]}" ]; then
\r
246 - template[subject]="Test message #${gen_msg_cnt}"
\r
249 - if [ -z "${template[date]}" ]; then
\r
250 - template[date]="Tue, 05 Jan 2001 15:43:57 -0800"
\r
253 - additional_headers=""
\r
254 - if [ ! -z "${template[header]}" ]; then
\r
255 - additional_headers="${template[header]}
\r
256 -${additional_headers}"
\r
259 - if [ ! -z "${template[reply-to]}" ]; then
\r
260 - additional_headers="Reply-To: ${template[reply-to]}
\r
261 -${additional_headers}"
\r
264 - if [ ! -z "${template[in-reply-to]}" ]; then
\r
265 - additional_headers="In-Reply-To: ${template[in-reply-to]}
\r
266 -${additional_headers}"
\r
269 - if [ ! -z "${template[cc]}" ]; then
\r
270 - additional_headers="Cc: ${template[cc]}
\r
271 -${additional_headers}"
\r
274 - if [ ! -z "${template[references]}" ]; then
\r
275 - additional_headers="References: ${template[references]}
\r
276 -${additional_headers}"
\r
279 - if [ ! -z "${template[content-type]}" ]; then
\r
280 - additional_headers="Content-Type: ${template[content-type]}
\r
281 -${additional_headers}"
\r
285 -cat <<EOF >$gen_msg_filename
\r
286 -From: ${template[from]}
\r
287 -To: ${template[to]}
\r
288 -Message-Id: <${gen_msg_id}>
\r
289 -Subject: ${template[subject]}
\r
290 -Date: ${template[date]}
\r
291 -${additional_headers}
\r
295 - # Ensure that the mtime of the containing directory is updated
\r
296 - increment_mtime $(dirname ${gen_msg_filename})
\r
299 -# Generate a new message and add it to the index.
\r
301 -# All of the arguments and return values supported by generate_message
\r
302 -# are also supported here, so see that function for details.
\r
305 - generate_message "$@"
\r
307 - $NOTMUCH new > /dev/null
\r
318 - tests=$((tests + 1))
\r
320 - if [ "$output" = "$expected" ]; then
\r
324 - testname=test-$(printf "%03d" $tests)
\r
325 - echo "$expected" > $testname.expected
\r
326 - echo "$output" > $testname.output
\r
327 - diff -u $testname.expected $testname.output || true
\r
328 - test_failures=$((test_failures + 1))
\r
332 -TEST_DIR=$(pwd)/test.$$
\r
333 -MAIL_DIR=${TEST_DIR}/mail
\r
334 -export NOTMUCH_CONFIG=${TEST_DIR}/notmuch-config
\r
335 -NOTMUCH=$(find_notmuch_binary $(pwd))
\r
339 - $NOTMUCH new | grep -v -E -e '^Processed [0-9]*( total)? file|Found [0-9]* total file'
\r
342 -notmuch_search_sanitize ()
\r
344 - sed -r -e 's/("?thread"?: ?)("?)................("?)/\1\2XXX\3/'
\r
347 -NOTMUCH_SHOW_FILENAME_SQUELCH='s,filename:.*/mail,filename:/XXX/mail,'
\r
348 -notmuch_show_sanitize ()
\r
350 - sed -e "$NOTMUCH_SHOW_FILENAME_SQUELCH"
\r
353 -rm -rf ${TEST_DIR}
\r
359 -cat <<EOF > ${NOTMUCH_CONFIG}
\r
364 -name=Notmuch Test Suite
\r
365 -primary_email=test_suite@notmuchmail.org
\r
366 -other_email=test_suite_other@notmuchmail.org;test_suite@otherdomain.org
\r
369 -printf "Testing \"notmuch new\" in several variations:\n"
\r
370 -printf " No new messages...\t\t\t\t"
\r
371 -output=$(NOTMUCH_NEW)
\r
372 -pass_if_equal "$output" "No new mail."
\r
374 -printf " Single new message...\t\t\t\t"
\r
376 -output=$(NOTMUCH_NEW)
\r
377 -pass_if_equal "$output" "Added 1 new message to the database."
\r
379 -printf " Multiple new messages...\t\t\t"
\r
382 -output=$(NOTMUCH_NEW)
\r
383 -pass_if_equal "$output" "Added 2 new messages to the database."
\r
385 -printf " No new messages (non-empty DB)...\t\t"
\r
386 -output=$(NOTMUCH_NEW)
\r
387 -pass_if_equal "$output" "No new mail."
\r
389 -printf " New directories...\t\t\t\t"
\r
390 -rm -rf ${MAIL_DIR}/* ${MAIL_DIR}/.notmuch
\r
391 -mkdir ${MAIL_DIR}/def
\r
392 -mkdir ${MAIL_DIR}/ghi
\r
393 -generate_message [dir]=def
\r
395 -output=$(NOTMUCH_NEW)
\r
396 -pass_if_equal "$output" "Added 1 new message to the database."
\r
398 -printf " Alternate inode order...\t\t\t"
\r
400 -rm -rf ${MAIL_DIR}/.notmuch
\r
401 -mv ${MAIL_DIR}/ghi ${MAIL_DIR}/abc
\r
402 -rm ${MAIL_DIR}/def/*
\r
403 -generate_message [dir]=abc
\r
405 -output=$(NOTMUCH_NEW)
\r
406 -pass_if_equal "$output" "Added 1 new message to the database."
\r
408 -printf " Message moved in...\t\t\t\t"
\r
409 -rm -rf ${MAIL_DIR}/* ${MAIL_DIR}/.notmuch
\r
411 -tmp_msg_filename=tmp/$gen_msg_filename
\r
412 -mkdir -p $(dirname $tmp_msg_filename)
\r
413 -mv $gen_msg_filename $tmp_msg_filename
\r
414 -increment_mtime ${MAIL_DIR}
\r
415 -$NOTMUCH new > /dev/null
\r
416 -mv $tmp_msg_filename $gen_msg_filename
\r
417 -increment_mtime ${MAIL_DIR}
\r
418 -output=$(NOTMUCH_NEW)
\r
419 -pass_if_equal "$output" "Added 1 new message to the database."
\r
421 -printf " Renamed message...\t\t\t\t"
\r
424 -$NOTMUCH new > /dev/null
\r
425 -mv $gen_msg_filename ${gen_msg_filename}-renamed
\r
426 -increment_mtime ${MAIL_DIR}
\r
427 -output=$(NOTMUCH_NEW)
\r
428 -pass_if_equal "$output" "No new mail. Detected 1 file rename."
\r
430 -printf " Deleted message...\t\t\t\t"
\r
432 -rm ${gen_msg_filename}-renamed
\r
433 -increment_mtime ${MAIL_DIR}
\r
434 -output=$(NOTMUCH_NEW)
\r
435 -pass_if_equal "$output" "No new mail. Removed 1 message."
\r
437 -printf " Renamed directory...\t\t\t\t"
\r
439 -generate_message [dir]=dir
\r
440 -generate_message [dir]=dir
\r
441 -generate_message [dir]=dir
\r
443 -$NOTMUCH new > /dev/null
\r
445 -mv ${MAIL_DIR}/dir ${MAIL_DIR}/dir-renamed
\r
446 -increment_mtime ${MAIL_DIR}
\r
448 -output=$(NOTMUCH_NEW)
\r
449 -pass_if_equal "$output" "No new mail. Detected 3 file renames."
\r
451 -printf " Deleted directory...\t\t\t\t"
\r
453 -rm -rf ${MAIL_DIR}/dir-renamed
\r
454 -increment_mtime ${MAIL_DIR}
\r
456 -output=$(NOTMUCH_NEW)
\r
457 -pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
459 -printf " New directory (at end of list)...\t\t"
\r
461 -generate_message [dir]=zzz
\r
462 -generate_message [dir]=zzz
\r
463 -generate_message [dir]=zzz
\r
465 -output=$(NOTMUCH_NEW)
\r
466 -pass_if_equal "$output" "Added 3 new messages to the database."
\r
468 -printf " Deleted directory (end of list)...\t\t"
\r
470 -rm -rf ${MAIL_DIR}/zzz
\r
471 -increment_mtime ${MAIL_DIR}
\r
473 -output=$(NOTMUCH_NEW)
\r
474 -pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
476 -printf " New symlink to directory...\t\t\t"
\r
478 -rm -rf ${MAIL_DIR}/.notmuch
\r
479 -mv ${MAIL_DIR} ${TEST_DIR}/actual_maildir
\r
482 -ln -s ${TEST_DIR}/actual_maildir ${MAIL_DIR}/symlink
\r
484 -output=$(NOTMUCH_NEW)
\r
485 -pass_if_equal "$output" "Added 1 new message to the database."
\r
487 -printf " New symlink to a file...\t\t\t"
\r
489 -external_msg_filename=${TEST_DIR}/external/$(basename $gen_msg_filename)
\r
490 -mkdir -p $(dirname $external_msg_filename)
\r
491 -mv $gen_msg_filename $external_msg_filename
\r
492 -ln -s $external_msg_filename $gen_msg_filename
\r
493 -increment_mtime ${MAIL_DIR}
\r
494 -output=$(NOTMUCH_NEW)
\r
495 -pass_if_equal "$output" "Added 1 new message to the database."
\r
497 -printf " New two-level directory...\t\t\t"
\r
499 -generate_message [dir]=two/levels
\r
500 -generate_message [dir]=two/levels
\r
501 -generate_message [dir]=two/levels
\r
503 -output=$(NOTMUCH_NEW)
\r
504 -pass_if_equal "$output" "Added 3 new messages to the database."
\r
506 -printf " Deleted two-level directory...\t\t\t"
\r
508 -rm -rf ${MAIL_DIR}/two
\r
509 -increment_mtime ${MAIL_DIR}
\r
511 -output=$(NOTMUCH_NEW)
\r
512 -pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
514 -printf "\nTesting \"notmuch search\" in several variations:\n"
\r
516 -printf " Search body...\t\t\t\t\t"
\r
517 -add_message '[subject]="body search"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [body]=bodysearchtest
\r
518 -output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize)
\r
519 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
\r
521 -printf " Search by from:...\t\t\t\t"
\r
522 -add_message '[subject]="search by from"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom
\r
523 -output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize)
\r
524 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
\r
526 -printf " Search by to:...\t\t\t\t"
\r
527 -add_message '[subject]="search by to"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto
\r
528 -output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize)
\r
529 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
\r
531 -printf " Search by subject:...\t\t\t\t"
\r
532 -add_message [subject]=subjectsearchtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
533 -output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize)
\r
534 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
\r
536 -printf " Search by id:...\t\t\t\t"
\r
537 -add_message '[subject]="search by id"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
538 -output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize)
\r
539 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
\r
541 -printf " Search by tag:...\t\t\t\t"
\r
542 -add_message '[subject]="search by tag"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
543 -$NOTMUCH tag +searchbytag id:${gen_msg_id}
\r
544 -output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize)
\r
545 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
\r
547 -printf " Search by thread:...\t\t\t\t"
\r
548 -add_message '[subject]="search by thread"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
549 -thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e 's/thread:\([a-f0-9]*\).*/\1/')
\r
550 -output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize)
\r
551 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
\r
553 -printf " Search body (phrase)...\t\t\t"
\r
554 -add_message '[subject]="body search (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="body search (phrase)"'
\r
555 -add_message '[subject]="negative result"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="This phrase should not match the body search"'
\r
556 -output=$($NOTMUCH search '\"body search (phrase)\"' | notmuch_search_sanitize)
\r
557 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
\r
559 -printf " Search by from: (address)...\t\t\t"
\r
560 -add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom@example.com
\r
561 -output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize)
\r
562 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
\r
564 -printf " Search by from: (name)...\t\t\t"
\r
565 -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
566 -output=$($NOTMUCH search from:'Search By From Name' | notmuch_search_sanitize)
\r
567 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
\r
569 -printf " Search by to: (address)...\t\t\t"
\r
570 -add_message '[subject]="search by to (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto@example.com
\r
571 -output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize)
\r
572 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
\r
574 -printf " Search by to: (name)...\t\t\t"
\r
575 -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
576 -output=$($NOTMUCH search to:'Search By To Name' | notmuch_search_sanitize)
\r
577 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
\r
579 -printf " Search by subject: (phrase)...\t\t\t"
\r
580 -add_message '[subject]="subject search test (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
581 -add_message '[subject]="this phrase should not match the subject search test"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
582 -output=$($NOTMUCH search 'subject:\"subject search test (phrase)\"' | notmuch_search_sanitize)
\r
583 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
\r
585 -printf " Search for all messages (\"*\"):...\t\t"
\r
586 -output=$($NOTMUCH search '*' | notmuch_search_sanitize)
\r
587 -pass_if_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #6 (inbox unread)
\r
588 -thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #14 (inbox unread)
\r
589 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
\r
590 -thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)
\r
591 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)
\r
592 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)
\r
593 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)
\r
594 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)
\r
595 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)
\r
596 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)
\r
597 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread)
\r
598 -thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)
\r
599 -thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)
\r
600 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)
\r
601 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)
\r
602 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)
\r
603 -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
\r
605 -printf " Search body (utf-8):...\t\t\t"
\r
606 -add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="message body utf8: bödý"'
\r
607 -output=$($NOTMUCH search 'bödý' | notmuch_search_sanitize)
\r
608 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
\r
610 -printf "\nTesting --format=json output:\n"
\r
612 -printf " Show message: json...\t\t\t\t"
\r
613 -add_message '[subject]="json-show-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="json-show-message"'
\r
614 -output=$($NOTMUCH show --format=json 'json-show-message')
\r
615 -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
617 -printf " Search message: json...\t\t\t"
\r
618 -add_message '[subject]="json-search-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="json-search-message"'
\r
619 -output=$($NOTMUCH search --format=json 'json-search-message' | notmuch_search_sanitize)
\r
620 -pass_if_equal "$output" '[{"thread": "XXX",
\r
621 -"timestamp": 946728000,
\r
624 -"authors": "Notmuch Test Suite",
\r
625 -"subject": "json-search-subject",
\r
626 -"tags": ["inbox", "unread"]}]'
\r
628 -printf " Search by subject (utf-8):...\t\t\t"
\r
629 -add_message [subject]=utf8-sübjéct '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
630 -output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize)
\r
631 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)"
\r
633 -printf " Show message: json, utf-8...\t\t\t"
\r
634 -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
635 -output=$($NOTMUCH show --format=json 'jsön-show-méssage')
\r
636 -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
638 -printf " Search message: json, utf-8...\t\t\t"
\r
639 -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
640 -output=$($NOTMUCH search --format=json 'jsön-search-méssage' | notmuch_search_sanitize)
\r
641 -pass_if_equal "$output" '[{"thread": "XXX",
\r
642 -"timestamp": 946728000,
\r
645 -"authors": "Notmuch Test Suite",
\r
646 -"subject": "json-search-utf8-body-sübjéct",
\r
647 -"tags": ["inbox", "unread"]}]'
\r
649 -printf "\nTesting naming of threads with changing subject:\n"
\r
650 -add_message '[subject]="thread-naming: Initial thread subject"' \
\r
651 - '[date]="Fri, 05 Jan 2001 15:43:56 -0800"'
\r
652 -first=${gen_msg_cnt}
\r
653 -parent=${gen_msg_id}
\r
654 -add_message '[subject]="thread-naming: Older changed subject"' \
\r
655 - '[date]="Sat, 06 Jan 2001 15:43:56 -0800"' \
\r
656 - "[in-reply-to]=\<$parent\>"
\r
657 -add_message '[subject]="thread-naming: Newer changed subject"' \
\r
658 - '[date]="Sun, 07 Jan 2001 15:43:56 -0800"' \
\r
659 - "[in-reply-to]=\<$parent\>"
\r
660 -add_message '[subject]="thread-naming: Final thread subject"' \
\r
661 - '[date]="Mon, 08 Jan 2001 15:43:56 -0800"' \
\r
662 - "[in-reply-to]=\<$parent\>"
\r
663 -final=${gen_msg_id}
\r
665 -printf " Initial thread name (oldest-first search)...\t"
\r
666 -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
667 -pass_if_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
669 -printf " Initial thread name (newest-first search)...\t"
\r
670 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
671 -pass_if_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)"
\r
673 -# Remove oldest and newest messages from search results
\r
674 -$NOTMUCH tag -inbox id:$parent or id:$final
\r
676 -printf " Changed thread name (oldest-first search)...\t"
\r
677 -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
678 -pass_if_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)"
\r
680 -printf " Changed thread name (newest-first search)...\t"
\r
681 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
682 -pass_if_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)"
\r
684 -printf " Ignore added reply prefix (Re:)...\t\t"
\r
685 -add_message '[subject]="Re: thread-naming: Initial thread subject"' \
\r
686 - '[date]="Tue, 09 Jan 2001 15:43:45 -0800"' \
\r
687 - "[in-reply-to]=\<$parent\>"
\r
688 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
689 -pass_if_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
691 -printf " Ignore added reply prefix (Aw:)...\t\t"
\r
692 -add_message '[subject]="Aw: thread-naming: Initial thread subject"' \
\r
693 - '[date]="Wed, 10 Jan 2001 15:43:45 -0800"' \
\r
694 - "[in-reply-to]=\<$parent\>"
\r
695 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
696 -pass_if_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
698 -printf " Ignore added reply prefix (Vs:)...\t\t"
\r
699 -add_message '[subject]="Vs: thread-naming: Initial thread subject"' \
\r
700 - '[date]="Thu, 11 Jan 2001 15:43:45 -0800"' \
\r
701 - "[in-reply-to]=\<$parent\>"
\r
702 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
703 -pass_if_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
705 -printf " Ignore added reply prefix (Sv:)...\t\t"
\r
706 -add_message '[subject]="Sv: thread-naming: Initial thread subject"' \
\r
707 - '[date]="Fri, 12 Jan 2001 15:43:45 -0800"' \
\r
708 - "[in-reply-to]=\<$parent\>"
\r
709 -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize)
\r
710 -pass_if_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
712 -printf " Test order of messages in \"notmuch show\"\t"
\r
713 -output=$($NOTMUCH show thread-naming | notmuch_show_sanitize)
\r
714 -pass_if_equal "$output" "
\f\r
715 message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first)
\r
718 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (unread)
\r
719 -Subject: thread-naming: Initial thread subject
\r
720 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
721 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
722 -Date: Fri, 05 Jan 2001 15:43:56 -0800
\r
728 part{ ID: 1, Content-type: text/plain
\r
729 -This is just a test message (#$first)
\r
737 message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1)))
\r
740 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-06) (inbox unread)
\r
741 -Subject: thread-naming: Older changed subject
\r
742 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
743 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
744 -Date: Sat, 06 Jan 2001 15:43:56 -0800
\r
750 part{ ID: 1, Content-type: text/plain
\r
751 -This is just a test message (#$((first + 1)))
\r
759 message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2)))
\r
762 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-07) (inbox unread)
\r
763 -Subject: thread-naming: Newer changed subject
\r
764 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
765 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
766 -Date: Sun, 07 Jan 2001 15:43:56 -0800
\r
772 part{ ID: 1, Content-type: text/plain
\r
773 -This is just a test message (#$((first + 2)))
\r
781 message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3)))
\r
784 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-08) (unread)
\r
785 -Subject: thread-naming: Final thread subject
\r
786 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
787 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
788 -Date: Mon, 08 Jan 2001 15:43:56 -0800
\r
794 part{ ID: 1, Content-type: text/plain
\r
795 -This is just a test message (#$((first + 3)))
\r
803 message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4)))
\r
806 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-09) (inbox unread)
\r
807 -Subject: Re: thread-naming: Initial thread subject
\r
808 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
809 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
810 -Date: Tue, 09 Jan 2001 15:43:45 -0800
\r
816 part{ ID: 1, Content-type: text/plain
\r
817 -This is just a test message (#$((first + 4)))
\r
825 message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5)))
\r
828 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-10) (inbox unread)
\r
829 -Subject: Aw: thread-naming: Initial thread subject
\r
830 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
831 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
832 -Date: Wed, 10 Jan 2001 15:43:45 -0800
\r
838 part{ ID: 1, Content-type: text/plain
\r
839 -This is just a test message (#$((first + 5)))
\r
847 message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6)))
\r
850 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-11) (inbox unread)
\r
851 -Subject: Vs: thread-naming: Initial thread subject
\r
852 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
853 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
854 -Date: Thu, 11 Jan 2001 15:43:45 -0800
\r
860 part{ ID: 1, Content-type: text/plain
\r
861 -This is just a test message (#$((first + 6)))
\r
869 message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7)))
\r
872 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-12) (inbox unread)
\r
873 -Subject: Sv: thread-naming: Initial thread subject
\r
874 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
875 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
876 -Date: Fri, 12 Jan 2001 15:43:45 -0800
\r
882 part{ ID: 1, Content-type: text/plain
\r
883 -This is just a test message (#$((first + 7)))
\r
891 -printf "\nTesting \"notmuch reply\" in several variations:\n"
\r
893 -printf " Basic reply...\t\t\t\t\t"
\r
894 -add_message '[from]="Sender <sender@example.com>"' \
\r
895 - [to]=test_suite@notmuchmail.org \
\r
896 - [subject]=notmuch-reply-test \
\r
897 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
898 - '[body]="basic reply test"'
\r
900 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
901 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
902 -Subject: Re: notmuch-reply-test
\r
903 -To: Sender <sender@example.com>
\r
904 -Bcc: test_suite@notmuchmail.org
\r
905 -In-Reply-To: <${gen_msg_id}>
\r
906 -References: <${gen_msg_id}>
\r
908 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
909 -> basic reply test"
\r
911 -printf " Multiple recipients...\t\t\t\t"
\r
912 -add_message '[from]="Sender <sender@example.com>"' \
\r
913 - '[to]="test_suite@notmuchmail.org, Someone Else <someone@example.com>"' \
\r
914 - [subject]=notmuch-reply-test \
\r
915 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
916 - '[body]="Multiple recipients"'
\r
918 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
919 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
920 -Subject: Re: notmuch-reply-test
\r
921 -To: Sender <sender@example.com>, Someone Else <someone@example.com>
\r
922 -Bcc: test_suite@notmuchmail.org
\r
923 -In-Reply-To: <${gen_msg_id}>
\r
924 -References: <${gen_msg_id}>
\r
926 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
927 -> Multiple recipients"
\r
929 -printf " Reply with CC...\t\t\t\t"
\r
930 -add_message '[from]="Sender <sender@example.com>"' \
\r
931 - [to]=test_suite@notmuchmail.org \
\r
932 - '[cc]="Other Parties <cc@example.com>"' \
\r
933 - [subject]=notmuch-reply-test \
\r
934 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
935 - '[body]="reply with CC"'
\r
937 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
938 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
939 -Subject: Re: notmuch-reply-test
\r
940 -To: Sender <sender@example.com>
\r
941 -Cc: Other Parties <cc@example.com>
\r
942 -Bcc: test_suite@notmuchmail.org
\r
943 -In-Reply-To: <${gen_msg_id}>
\r
944 -References: <${gen_msg_id}>
\r
946 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
949 -printf " Reply from alternate address...\t\t"
\r
950 -add_message '[from]="Sender <sender@example.com>"' \
\r
951 - [to]=test_suite_other@notmuchmail.org \
\r
952 - [subject]=notmuch-reply-test \
\r
953 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
954 - '[body]="reply from alternate address"'
\r
956 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
957 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
958 -Subject: Re: notmuch-reply-test
\r
959 -To: Sender <sender@example.com>
\r
960 -Bcc: test_suite@notmuchmail.org
\r
961 -In-Reply-To: <${gen_msg_id}>
\r
962 -References: <${gen_msg_id}>
\r
964 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
965 -> reply from alternate address"
\r
967 -printf " Support for Reply-To...\t\t\t"
\r
968 -add_message '[from]="Sender <sender@example.com>"' \
\r
969 - [to]=test_suite@notmuchmail.org \
\r
970 - [subject]=notmuch-reply-test \
\r
971 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
972 - '[body]="support for reply-to"' \
\r
973 - '[reply-to]="Sender <elsewhere@example.com>"'
\r
975 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
976 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
977 -Subject: Re: notmuch-reply-test
\r
978 -To: Sender <elsewhere@example.com>
\r
979 -Bcc: test_suite@notmuchmail.org
\r
980 -In-Reply-To: <${gen_msg_id}>
\r
981 -References: <${gen_msg_id}>
\r
983 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
984 -> support for reply-to"
\r
986 -printf " Un-munging Reply-To...\t\t\t\t"
\r
987 -add_message '[from]="Sender <sender@example.com>"' \
\r
988 - '[to]="Some List <list@example.com>"' \
\r
989 - [subject]=notmuch-reply-test \
\r
990 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
991 - '[body]="Un-munging Reply-To"' \
\r
992 - '[reply-to]="Evil Munging List <list@example.com>"'
\r
994 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
995 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
996 -Subject: Re: notmuch-reply-test
\r
997 -To: Sender <sender@example.com>, Some List <list@example.com>
\r
998 -Bcc: test_suite@notmuchmail.org
\r
999 -In-Reply-To: <${gen_msg_id}>
\r
1000 -References: <${gen_msg_id}>
\r
1002 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1003 -> Un-munging Reply-To"
\r
1005 -printf " Message with header of exactly 200 bytes...\t"
\r
1007 -add_message '[subject]="This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces"' \
\r
1008 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1009 - '[body]="200-byte header"'
\r
1011 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1012 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1013 -Subject: Re: This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces
\r
1014 -Bcc: test_suite@notmuchmail.org
\r
1015 -In-Reply-To: <${gen_msg_id}>
\r
1016 -References: <${gen_msg_id}>
\r
1018 -On Tue, 05 Jan 2010 15:43:56 -0800, Notmuch Test Suite <test_suite@notmuchmail.org> wrote:
\r
1019 -> 200-byte header"
\r
1021 -printf "\nTesting handling of uuencoded data:\n"
\r
1023 -add_message [subject]=uuencodetest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \
\r
1024 -'[body]="This message is used to ensure that notmuch correctly handles a
\r
1025 -message containing a block of uuencoded data. First, we have a marker
\r
1026 -this content beforeuudata . Then we beging the uunencoded data itself:
\r
1028 -begin 644 bogus-uuencoded-data
\r
1029 -M0123456789012345678901234567890123456789012345678901234567890
\r
1030 -MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA.
\r
1031 -MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA
\r
1032 -MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE
\r
1033 -MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY
\r
1038 -Finally, we have our afteruudata marker as well."'
\r
1040 -printf " Ensure content before uu data is indexed...\t"
\r
1041 -output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize)
\r
1042 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
1043 -printf " Ensure uu data is not indexed...\t\t"
\r
1044 -output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize)
\r
1045 -pass_if_equal "$output" ""
\r
1046 -printf " Ensure content after uu data is indexed...\t"
\r
1047 -output=$($NOTMUCH search afteruudata | notmuch_search_sanitize)
\r
1048 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
1050 -printf "\nTesting \"notmuch dump\" and \"notmuch restore\":\n"
\r
1052 -printf " Dumping all tags...\t\t\t\t"
\r
1053 -$NOTMUCH dump dump.expected
\r
1054 -pass_if_equal "$?" "0"
\r
1056 -printf " Clearing all tags...\t\t\t\t"
\r
1057 -sed -e 's/(\([^(]*\))$/()/' < dump.expected > clear.expected
\r
1058 -$NOTMUCH restore clear.expected
\r
1059 -$NOTMUCH dump clear.actual
\r
1060 -pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
\r
1062 -printf " Restoring original tags...\t\t\t"
\r
1063 -$NOTMUCH restore dump.expected
\r
1064 -$NOTMUCH dump dump.actual
\r
1065 -pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
\r
1067 -printf " Restore with nothing to do...\t\t\t"
\r
1068 -$NOTMUCH restore dump.expected
\r
1069 -pass_if_equal "$?" "0"
\r
1071 -printf "\nTesting threading when messages received out of order:\n"
\r
1072 -printf " Adding initial child message...\t\t"
\r
1073 -generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
1074 -output=$(NOTMUCH_NEW)
\r
1075 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1076 -printf " Searching returns the message...\t\t"
\r
1077 -output=$($NOTMUCH search foo | notmuch_search_sanitize)
\r
1078 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
1079 -printf " Adding second child message...\t\t\t"
\r
1080 -generate_message [body]=foo '[in-reply-to]=\<parent-id\>' [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
1081 -output=$(NOTMUCH_NEW)
\r
1082 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1083 -printf " Searching returns both messages in one thread..."
\r
1084 -output=$($NOTMUCH search foo | notmuch_search_sanitize)
\r
1085 -pass_if_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
1086 -printf " Adding parent message...\t\t\t"
\r
1087 -generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
\r
1088 -output=$(NOTMUCH_NEW)
\r
1089 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1090 -printf " Searching returns all three messages in one thread..."
\r
1091 -output=$($NOTMUCH search foo | notmuch_search_sanitize)
\r
1092 -pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
1094 -printf "\nTesting author reordering;\n"
\r
1095 -printf " Adding parent message...\t\t\t"
\r
1096 -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
1097 -output=$(NOTMUCH_NEW)
\r
1098 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1099 -printf " Adding initial child message...\t\t"
\r
1100 -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
1101 -output=$(NOTMUCH_NEW)
\r
1102 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1103 -printf " Adding second child message...\t\t\t"
\r
1104 -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
1105 -output=$(NOTMUCH_NEW)
\r
1106 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1107 -printf " Searching when all three messages match...\t"
\r
1108 -output=$($NOTMUCH search findme | notmuch_search_sanitize)
\r
1109 -pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
\r
1110 -printf " Searching when two messages match...\t\t"
\r
1111 -output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize)
\r
1112 -pass_if_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
\r
1113 -printf " Searching when only one message matches...\t"
\r
1114 -output=$($NOTMUCH search User2 | notmuch_search_sanitize)
\r
1115 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
\r
1116 -printf " Searching when only first message matches...\t"
\r
1117 -output=$($NOTMUCH search User | notmuch_search_sanitize)
\r
1118 -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
\r
1120 -printf "\nTesting From line heuristics (with multiple configured addresses):\n"
\r
1121 -printf " Magic from guessing (nothing to go on)...\t"
\r
1122 -add_message '[from]="Sender <sender@example.com>"' \
\r
1123 - [to]=mailinglist@notmuchmail.org \
\r
1124 - [subject]=notmuch-reply-test \
\r
1125 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1126 - '[body]="from guessing test"'
\r
1128 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1129 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1130 -Subject: Re: notmuch-reply-test
\r
1131 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1132 -Bcc: test_suite@notmuchmail.org
\r
1133 -In-Reply-To: <${gen_msg_id}>
\r
1134 -References: <${gen_msg_id}>
\r
1136 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1137 -> from guessing test"
\r
1139 -printf " Magic from guessing (Envelope-to:)...\t\t"
\r
1140 -add_message '[from]="Sender <sender@example.com>"' \
\r
1141 - [to]=mailinglist@notmuchmail.org \
\r
1142 - [subject]=notmuch-reply-test \
\r
1143 - '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \
\r
1144 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1145 - '[body]="from guessing test"'
\r
1147 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1148 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
1149 -Subject: Re: notmuch-reply-test
\r
1150 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1151 -Bcc: test_suite@notmuchmail.org
\r
1152 -In-Reply-To: <${gen_msg_id}>
\r
1153 -References: <${gen_msg_id}>
\r
1155 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1156 -> from guessing test"
\r
1158 -printf " Magic from guessing (X-Original-To:)...\t"
\r
1159 -add_message '[from]="Sender <sender@example.com>"' \
\r
1160 - [to]=mailinglist@notmuchmail.org \
\r
1161 - [subject]=notmuch-reply-test \
\r
1162 - '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \
\r
1163 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1164 - '[body]="from guessing test"'
\r
1166 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1167 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
1168 -Subject: Re: notmuch-reply-test
\r
1169 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1170 -Bcc: test_suite@notmuchmail.org
\r
1171 -In-Reply-To: <${gen_msg_id}>
\r
1172 -References: <${gen_msg_id}>
\r
1174 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1175 -> from guessing test"
\r
1177 -printf " Magic from guessing (Received: .. for ..)...\t"
\r
1178 -add_message '[from]="Sender <sender@example.com>"' \
\r
1179 - [to]=mailinglist@notmuchmail.org \
\r
1180 - [subject]=notmuch-reply-test \
\r
1181 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1182 - by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
1183 - for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1184 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1185 - '[body]="from guessing test"'
\r
1187 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1188 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
1189 -Subject: Re: notmuch-reply-test
\r
1190 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1191 -Bcc: test_suite@notmuchmail.org
\r
1192 -In-Reply-To: <${gen_msg_id}>
\r
1193 -References: <${gen_msg_id}>
\r
1195 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1196 -> from guessing test"
\r
1198 -printf " Magic from guessing (Received: domain)...\t"
\r
1199 -add_message '[from]="Sender <sender@example.com>"' \
\r
1200 - [to]=mailinglist@notmuchmail.org \
\r
1201 - [subject]=notmuch-reply-test \
\r
1202 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1203 - by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
1204 - Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1205 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1206 - '[body]="from guessing test"'
\r
1208 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1209 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
\r
1210 -Subject: Re: notmuch-reply-test
\r
1211 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1212 -Bcc: test_suite@notmuchmail.org
\r
1213 -In-Reply-To: <${gen_msg_id}>
\r
1214 -References: <${gen_msg_id}>
\r
1216 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1217 -> from guessing test"
\r
1220 -printf "\nTesting From line heuristics (with single configured address):\n"
\r
1221 -sed -i -e 's/^other_email.*//' ${NOTMUCH_CONFIG}
\r
1223 -printf " Magic from guessing (nothing to go on)...\t"
\r
1224 -add_message '[from]="Sender <sender@example.com>"' \
\r
1225 - [to]=mailinglist@notmuchmail.org \
\r
1226 - [subject]=notmuch-reply-test \
\r
1227 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1228 - '[body]="from guessing test"'
\r
1230 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1231 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1232 -Subject: Re: notmuch-reply-test
\r
1233 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1234 -Bcc: test_suite@notmuchmail.org
\r
1235 -In-Reply-To: <${gen_msg_id}>
\r
1236 -References: <${gen_msg_id}>
\r
1238 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1239 -> from guessing test"
\r
1241 -printf " Magic from guessing (Envelope-to:)...\t\t"
\r
1242 -add_message '[from]="Sender <sender@example.com>"' \
\r
1243 - [to]=mailinglist@notmuchmail.org \
\r
1244 - [subject]=notmuch-reply-test \
\r
1245 - '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \
\r
1246 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1247 - '[body]="from guessing test"'
\r
1249 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1250 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1251 -Subject: Re: notmuch-reply-test
\r
1252 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1253 -Bcc: test_suite@notmuchmail.org
\r
1254 -In-Reply-To: <${gen_msg_id}>
\r
1255 -References: <${gen_msg_id}>
\r
1257 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1258 -> from guessing test"
\r
1260 -printf " Magic from guessing (X-Original-To:)...\t"
\r
1261 -add_message '[from]="Sender <sender@example.com>"' \
\r
1262 - [to]=mailinglist@notmuchmail.org \
\r
1263 - [subject]=notmuch-reply-test \
\r
1264 - '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \
\r
1265 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1266 - '[body]="from guessing test"'
\r
1268 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1269 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1270 -Subject: Re: notmuch-reply-test
\r
1271 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1272 -Bcc: test_suite@notmuchmail.org
\r
1273 -In-Reply-To: <${gen_msg_id}>
\r
1274 -References: <${gen_msg_id}>
\r
1276 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1277 -> from guessing test"
\r
1279 -printf " Magic from guessing (Received: .. for ..)...\t"
\r
1280 -add_message '[from]="Sender <sender@example.com>"' \
\r
1281 - [to]=mailinglist@notmuchmail.org \
\r
1282 - [subject]=notmuch-reply-test \
\r
1283 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1284 - by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
1285 - for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1286 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1287 - '[body]="from guessing test"'
\r
1289 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1290 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1291 -Subject: Re: notmuch-reply-test
\r
1292 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1293 -Bcc: test_suite@notmuchmail.org
\r
1294 -In-Reply-To: <${gen_msg_id}>
\r
1295 -References: <${gen_msg_id}>
\r
1297 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1298 -> from guessing test"
\r
1300 -printf " Magic from guessing (Received: domain)...\t"
\r
1301 -add_message '[from]="Sender <sender@example.com>"' \
\r
1302 - [to]=mailinglist@notmuchmail.org \
\r
1303 - [subject]=notmuch-reply-test \
\r
1304 - '[header]="Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
1305 - by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
1306 - Sat, 10 Apr 2010 07:54:51 -0400 (EDT)"' \
\r
1307 - '[date]="Tue, 05 Jan 2010 15:43:56 -0800"' \
\r
1308 - '[body]="from guessing test"'
\r
1310 -output=$($NOTMUCH reply id:${gen_msg_id})
\r
1311 -pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1312 -Subject: Re: notmuch-reply-test
\r
1313 -To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
1314 -Bcc: test_suite@notmuchmail.org
\r
1315 -In-Reply-To: <${gen_msg_id}>
\r
1316 -References: <${gen_msg_id}>
\r
1318 -On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
1319 -> from guessing test"
\r
1321 -printf "\nTesting messages with ridiculously-long message IDs...\n"
\r
1322 -printf " Referencing long ID before adding...\t\t"
\r
1323 -generate_message '[subject]="Reference of ridiculously-long message ID"' \
\r
1324 - '[references]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>'
\r
1326 -output=$(NOTMUCH_NEW)
\r
1327 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1329 -printf " Adding message with long ID...\t\t\t"
\r
1330 -generate_message '[subject]="A ridiculously-long message ID"' \
\r
1331 - '[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-'
\r
1333 -output=$(NOTMUCH_NEW)
\r
1334 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1336 -printf " Referencing long ID after adding...\t\t"
\r
1337 -generate_message '[subject]="Reply to ridiculously-long message ID"' \
\r
1338 - '[in-reply-to]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>'
\r
1340 -output=$(NOTMUCH_NEW)
\r
1341 -pass_if_equal "$output" "Added 1 new message to the database."
\r
1343 -printf " Ensure all messages were threaded together...\t"
\r
1345 -output=$($NOTMUCH search 'subject:"a ridiculously-long message ID"' | notmuch_search_sanitize)
\r
1346 -pass_if_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)"
\r
1348 -printf "\nTesting encoding issues...\n"
\r
1349 -printf " Message with text of unknown charset...\t"
\r
1350 -add_message '[content-type]="text/plain; charset=unknown-8bit"' \
\r
1351 - '[body]=irrelevant'
\r
1353 -output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize)
\r
1354 -pass_if_equal "$output" "
\f\r
1355 message{ id:msg-074@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-074
\r
1358 -Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)
\r
1359 -Subject: Test message #74
\r
1360 -From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1361 -To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1362 -Date: Tue, 05 Jan 2001 15:43:57 -0800
\r
1368 part{ ID: 1, Content-type: text/plain
\r
1378 -echo "Notmuch test suite complete."
\r
1380 -if [ "$test_failures" = "0" ]; then
\r
1381 - echo "All $tests tests passed."
\r
1382 - rm -rf ${TEST_DIR}
\r
1384 - echo "$test_failures/$tests tests failed. The failures can be investigated in:"
\r
1385 - echo "${TEST_DIR}"
\r
1390 -exit $test_failures
\r
1393 diff --git a/test/t0000-basic.sh b/test/t0000-basic.sh
\r
1394 index caade68..511e200 100755
\r
1395 --- a/test/t0000-basic.sh
\r
1396 +++ b/test/t0000-basic.sh
\r
1401 # Copyright (c) 2005 Junio C Hamano
\r
1403 diff --git a/test/t0001-new.sh b/test/t0001-new.sh
\r
1404 new file mode 100755
\r
1405 index 0000000..97726e7
\r
1407 +++ b/test/t0001-new.sh
\r
1410 +test_description="\"notmuch new\" in several variations"
\r
1412 +test_expect_success "No new messages" '
\r
1413 +output=$(NOTMUCH_NEW) &&
\r
1414 +pass_if_equal "$output" "No new mail."
\r
1417 +test_expect_success "Single new message" '
\r
1418 +generate_message &&
\r
1419 +output=$(NOTMUCH_NEW) &&
\r
1420 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1423 +test_expect_success "Multiple new messages" '
\r
1424 +generate_message &&
\r
1425 +generate_message &&
\r
1426 +output=$(NOTMUCH_NEW) &&
\r
1427 +pass_if_equal "$output" "Added 2 new messages to the database."
\r
1430 +test_expect_success "No new messages (non-empty DB)" '
\r
1431 +output=$(NOTMUCH_NEW) &&
\r
1432 +pass_if_equal "$output" "No new mail."
\r
1435 +test_expect_success "New directories" '
\r
1436 +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch &&
\r
1437 +mkdir "${MAIL_DIR}"/def &&
\r
1438 +mkdir "${MAIL_DIR}"/ghi &&
\r
1439 +generate_message [dir]=def &&
\r
1441 +output=$(NOTMUCH_NEW) &&
\r
1442 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1445 +test_expect_success "Alternate inode order" '
\r
1447 +rm -rf "${MAIL_DIR}"/.notmuch &&
\r
1448 +mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc &&
\r
1449 +rm "${MAIL_DIR}"/def/* &&
\r
1450 +generate_message [dir]=abc &&
\r
1452 +output=$(NOTMUCH_NEW) &&
\r
1453 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1456 +test_expect_success "Message moved in" '
\r
1457 +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch &&
\r
1458 +generate_message &&
\r
1459 +tmp_msg_filename=tmp/"$gen_msg_filename" &&
\r
1460 +mkdir -p "$(dirname "$tmp_msg_filename")" &&
\r
1461 +mv "$gen_msg_filename" "$tmp_msg_filename" &&
\r
1462 +increment_mtime "${MAIL_DIR}" &&
\r
1463 +$NOTMUCH new > /dev/null &&
\r
1464 +mv "$tmp_msg_filename" "$gen_msg_filename" &&
\r
1465 +increment_mtime "${MAIL_DIR}" &&
\r
1466 +output=$(NOTMUCH_NEW) &&
\r
1467 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1470 +test_expect_success "Renamed message" '
\r
1472 +generate_message &&
\r
1473 +$NOTMUCH new > /dev/null &&
\r
1474 +mv "$gen_msg_filename" "${gen_msg_filename}"-renamed &&
\r
1475 +increment_mtime "${MAIL_DIR}" &&
\r
1476 +output=$(NOTMUCH_NEW) &&
\r
1477 +pass_if_equal "$output" "No new mail. Detected 1 file rename."
\r
1480 +test_expect_success "Deleted message" '
\r
1482 +rm "${gen_msg_filename}"-renamed &&
\r
1483 +increment_mtime "${MAIL_DIR}" &&
\r
1484 +output=$(NOTMUCH_NEW) &&
\r
1485 +pass_if_equal "$output" "No new mail. Removed 1 message."
\r
1488 +test_expect_success "Renamed directory" '
\r
1490 +generate_message [dir]=dir &&
\r
1491 +generate_message [dir]=dir &&
\r
1492 +generate_message [dir]=dir &&
\r
1494 +$NOTMUCH new > /dev/null &&
\r
1496 +mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed &&
\r
1497 +increment_mtime "${MAIL_DIR}" &&
\r
1499 +output=$(NOTMUCH_NEW) &&
\r
1500 +pass_if_equal "$output" "No new mail. Detected 3 file renames."
\r
1503 +test_expect_success "Deleted directory" '
\r
1505 +rm -rf "${MAIL_DIR}"/dir-renamed &&
\r
1506 +increment_mtime "${MAIL_DIR}" &&
\r
1508 +output=$(NOTMUCH_NEW) &&
\r
1509 +pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
1512 +test_expect_success "New directory (at end of list)" '
\r
1514 +generate_message [dir]=zzz &&
\r
1515 +generate_message [dir]=zzz &&
\r
1516 +generate_message [dir]=zzz &&
\r
1518 +output=$(NOTMUCH_NEW) &&
\r
1519 +pass_if_equal "$output" "Added 3 new messages to the database."
\r
1522 +test_expect_success "Deleted directory (end of list)" '
\r
1524 +rm -rf "${MAIL_DIR}"/zzz &&
\r
1525 +increment_mtime "${MAIL_DIR}" &&
\r
1527 +output=$(NOTMUCH_NEW) &&
\r
1528 +pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
1531 +test_expect_success "New symlink to directory" '
\r
1533 +rm -rf "${MAIL_DIR}"/.notmuch &&
\r
1534 +mv "${MAIL_DIR}" "$PWD"/actual_maildir &&
\r
1536 +mkdir "${MAIL_DIR}" &&
\r
1537 +ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink &&
\r
1539 +output=$(NOTMUCH_NEW) &&
\r
1540 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1543 +test_expect_success "New symlink to a file" '
\r
1544 +generate_message &&
\r
1545 +external_msg_filename="$PWD"/external/"$(basename "$gen_msg_filename")" &&
\r
1546 +mkdir -p "$(dirname "$external_msg_filename")" &&
\r
1547 +mv "$gen_msg_filename" "$external_msg_filename" &&
\r
1548 +ln -s "$external_msg_filename" "$gen_msg_filename" &&
\r
1549 +increment_mtime "${MAIL_DIR}" &&
\r
1550 +output=$(NOTMUCH_NEW) &&
\r
1551 +pass_if_equal "$output" "Added 1 new message to the database."
\r
1554 +test_expect_success "New two-level directory" '
\r
1556 +generate_message [dir]=two/levels &&
\r
1557 +generate_message [dir]=two/levels &&
\r
1558 +generate_message [dir]=two/levels &&
\r
1560 +output=$(NOTMUCH_NEW) &&
\r
1561 +pass_if_equal "$output" "Added 3 new messages to the database."
\r
1564 +test_expect_success "Deleted two-level directory" '
\r
1566 +rm -rf "${MAIL_DIR}"/two &&
\r
1567 +increment_mtime "${MAIL_DIR}" &&
\r
1569 +output=$(NOTMUCH_NEW) &&
\r
1570 +pass_if_equal "$output" "No new mail. Removed 3 messages."
\r
1573 diff --git a/test/t0002-search.sh b/test/t0002-search.sh
\r
1574 new file mode 100755
\r
1575 index 0000000..7de4d47
\r
1577 +++ b/test/t0002-search.sh
\r
1580 +test_description="\"notmuch search\" in several variations"
\r
1583 +test_expect_success "Search body" '
\r
1584 +add_message "[subject]=\"body search\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [body]=bodysearchtest &&
\r
1585 +output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize) &&
\r
1586 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
\r
1589 +test_expect_success "Search by from:" '
\r
1590 +add_message "[subject]=\"search by from\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom &&
\r
1591 +output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize) &&
\r
1592 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
\r
1595 +test_expect_success "Search by to:" '
\r
1596 +add_message "[subject]=\"search by to\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto &&
\r
1597 +output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize) &&
\r
1598 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
\r
1601 +test_expect_success "Search by subject:" '
\r
1602 +add_message [subject]=subjectsearchtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1603 +output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize) &&
\r
1604 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
\r
1607 +test_expect_success "Search by id:" '
\r
1608 +add_message "[subject]=\"search by id\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1609 +output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize) &&
\r
1610 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
\r
1613 +test_expect_success "Search by tag:" '
\r
1614 +add_message "[subject]=\"search by tag\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1615 +$NOTMUCH tag +searchbytag id:${gen_msg_id} &&
\r
1616 +output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize) &&
\r
1617 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
\r
1620 +test_expect_success "Search by thread:" '
\r
1621 +add_message "[subject]=\"search by thread\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1622 +thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e "s/thread:\([a-f0-9]*\).*/\1/") &&
\r
1623 +output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize) &&
\r
1624 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
\r
1627 +test_expect_success "Search body (phrase)" '
\r
1628 +add_message "[subject]=\"body search (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"body search (phrase)\"" &&
\r
1629 +add_message "[subject]=\"negative result\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"This phrase should not match the body search\"" &&
\r
1630 +output=$($NOTMUCH search "\"body search (phrase)\"" | notmuch_search_sanitize) &&
\r
1631 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
\r
1634 +test_expect_success "Search by from: (address)" '
\r
1635 +add_message "[subject]=\"search by from (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom@example.com &&
\r
1636 +output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize) &&
\r
1637 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
\r
1640 +test_expect_success "Search by from: (name)" '
\r
1641 +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
1642 +output=$($NOTMUCH search from:"Search By From Name" | notmuch_search_sanitize) &&
\r
1643 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
\r
1646 +test_expect_success "Search by to: (address)" '
\r
1647 +add_message "[subject]=\"search by to (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto@example.com &&
\r
1648 +output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize) &&
\r
1649 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
\r
1652 +test_expect_success "Search by to: (name)" '
\r
1653 +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
1654 +output=$($NOTMUCH search to:"Search By To Name" | notmuch_search_sanitize) &&
\r
1655 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
\r
1658 +test_expect_success "Search by subject: (phrase)" '
\r
1659 +add_message "[subject]=\"subject search test (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1660 +add_message "[subject]=\"this phrase should not match the subject search test\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1661 +output=$($NOTMUCH search "subject:\"subject search test (phrase)\"" | notmuch_search_sanitize) &&
\r
1662 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
\r
1665 +test_expect_success "Search for all messages (\"*\"):" '
\r
1666 +output=$($NOTMUCH search "*" | notmuch_search_sanitize) &&
\r
1667 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
\r
1668 +thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)
\r
1669 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)
\r
1670 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)
\r
1671 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)
\r
1672 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)
\r
1673 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)
\r
1674 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)
\r
1675 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread)
\r
1676 +thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)
\r
1677 +thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)
\r
1678 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)
\r
1679 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)
\r
1680 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)
\r
1681 +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
\r
1684 +test_expect_success "Search body (utf-8):" '
\r
1685 +add_message "[subject]=\"utf8-message-body-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"message body utf8: bödý\"" &&
\r
1686 +output=$($NOTMUCH search "bödý" | notmuch_search_sanitize) &&
\r
1687 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
\r
1690 diff --git a/test/t0003-json.sh b/test/t0003-json.sh
\r
1691 new file mode 100755
\r
1692 index 0000000..810262c
\r
1694 +++ b/test/t0003-json.sh
\r
1697 +test_description="--format=json output"
\r
1700 +test_expect_success "Show message: json" '
\r
1701 +add_message "[subject]=\"json-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-show-message\"" &&
\r
1702 +output=$($NOTMUCH show --format=json "json-show-message") &&
\r
1703 +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
1706 +test_expect_success "Search message: json" '
\r
1707 +add_message "[subject]=\"json-search-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-search-message\"" &&
\r
1708 +output=$($NOTMUCH search --format=json "json-search-message" | notmuch_search_sanitize) &&
\r
1709 +pass_if_equal "$output" "[{\"thread\": \"XXX\",
\r
1710 +\"timestamp\": 946728000,
\r
1713 +\"authors\": \"Notmuch Test Suite\",
\r
1714 +\"subject\": \"json-search-subject\",
\r
1715 +\"tags\": [\"inbox\", \"unread\"]}]"
\r
1718 +test_expect_success "Search by subject (utf-8):" '
\r
1719 +add_message [subject]=utf8-sübjéct "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
1720 +output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize) &&
\r
1721 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)"
\r
1724 +test_expect_success "Show message: json, utf-8" '
\r
1725 +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
1726 +output=$($NOTMUCH show --format=json "jsön-show-méssage") &&
\r
1727 +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
1730 +test_expect_success "Search message: json, utf-8" '
\r
1731 +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
1732 +output=$($NOTMUCH search --format=json "jsön-search-méssage" | notmuch_search_sanitize) &&
\r
1733 +pass_if_equal "$output" "[{\"thread\": \"XXX\",
\r
1734 +\"timestamp\": 946728000,
\r
1737 +\"authors\": \"Notmuch Test Suite\",
\r
1738 +\"subject\": \"json-search-utf8-body-sübjéct\",
\r
1739 +\"tags\": [\"inbox\", \"unread\"]}]"
\r
1742 diff --git a/test/t0004-thread-naming.sh b/test/t0004-thread-naming.sh
\r
1743 new file mode 100755
\r
1744 index 0000000..88216f2
\r
1746 +++ b/test/t0004-thread-naming.sh
\r
1749 +test_description="naming of threads with changing subject"
\r
1751 +test_expect_success 'Generate some messages' '
\r
1752 +add_message "[subject]=\"thread-naming: Initial thread subject\"" \
\r
1753 + "[date]=\"Fri, 05 Jan 2001 15:43:56 -0800\"" &&
\r
1754 +first=${gen_msg_cnt} &&
\r
1755 +parent=${gen_msg_id} &&
\r
1756 +add_message "[subject]=\"thread-naming: Older changed subject\"" \
\r
1757 + "[date]=\"Sat, 06 Jan 2001 15:43:56 -0800\"" \
\r
1758 + "[in-reply-to]=\<$parent\>" &&
\r
1759 +add_message "[subject]=\"thread-naming: Newer changed subject\"" \
\r
1760 + "[date]=\"Sun, 07 Jan 2001 15:43:56 -0800\"" \
\r
1761 + "[in-reply-to]=\<$parent\>" &&
\r
1762 +add_message "[subject]=\"thread-naming: Final thread subject\"" \
\r
1763 + "[date]=\"Mon, 08 Jan 2001 15:43:56 -0800\"" \
\r
1764 + "[in-reply-to]=\<$parent\>" &&
\r
1765 +final=${gen_msg_id}
\r
1768 +test_expect_success "Initial thread name (oldest-first search)" '
\r
1769 +output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1770 +pass_if_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1773 +test_expect_success "Initial thread name (newest-first search)" '
\r
1774 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1775 +pass_if_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)"
\r
1777 +# Remove oldest and newest messages from search results
\r
1778 +$NOTMUCH tag -inbox id:$parent or id:$final
\r
1781 +test_expect_success "Changed thread name (oldest-first search)" '
\r
1782 +output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1783 +pass_if_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)"
\r
1786 +test_expect_success "Changed thread name (newest-first search)" '
\r
1787 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1788 +pass_if_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)"
\r
1791 +test_expect_success "Ignore added reply prefix (Re:)" '
\r
1792 +add_message "[subject]=\"Re: thread-naming: Initial thread subject\"" \
\r
1793 + "[date]=\"Tue, 09 Jan 2001 15:43:45 -0800\"" \
\r
1794 + "[in-reply-to]=\<$parent\>" &&
\r
1795 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1796 +pass_if_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1799 +test_expect_success "Ignore added reply prefix (Aw:)" '
\r
1800 +add_message "[subject]=\"Aw: thread-naming: Initial thread subject\"" \
\r
1801 + "[date]=\"Wed, 10 Jan 2001 15:43:45 -0800\"" \
\r
1802 + "[in-reply-to]=\<$parent\>" &&
\r
1803 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1804 +pass_if_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1807 +test_expect_success "Ignore added reply prefix (Vs:)" '
\r
1808 +add_message "[subject]=\"Vs: thread-naming: Initial thread subject\"" \
\r
1809 + "[date]=\"Thu, 11 Jan 2001 15:43:45 -0800\"" \
\r
1810 + "[in-reply-to]=\<$parent\>" &&
\r
1811 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1812 +pass_if_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1815 +test_expect_success "Ignore added reply prefix (Sv:)" '
\r
1816 +add_message "[subject]=\"Sv: thread-naming: Initial thread subject\"" \
\r
1817 + "[date]=\"Fri, 12 Jan 2001 15:43:45 -0800\"" \
\r
1818 + "[in-reply-to]=\<$parent\>" &&
\r
1819 +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) &&
\r
1820 +pass_if_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)"
\r
1823 +test_expect_success "Test order of messages in \"notmuch show\"" '
\r
1824 +output=$($NOTMUCH show thread-naming | notmuch_show_sanitize) &&
\r
1825 +pass_if_equal "$output" "
\f\r
1826 message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first)
\r
1829 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (unread)
\r
1830 +Subject: 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: Fri, 05 Jan 2001 15:43:56 -0800
\r
1839 part{ ID: 1, Content-type: text/plain
\r
1840 +This is just a test message (#$first)
\r
1848 message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1)))
\r
1851 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-06) (inbox unread)
\r
1852 +Subject: thread-naming: Older changed subject
\r
1853 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1854 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1855 +Date: Sat, 06 Jan 2001 15:43:56 -0800
\r
1861 part{ ID: 1, Content-type: text/plain
\r
1862 +This is just a test message (#$((first + 1)))
\r
1870 message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2)))
\r
1873 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-07) (inbox unread)
\r
1874 +Subject: thread-naming: Newer changed subject
\r
1875 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1876 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1877 +Date: Sun, 07 Jan 2001 15:43:56 -0800
\r
1883 part{ ID: 1, Content-type: text/plain
\r
1884 +This is just a test message (#$((first + 2)))
\r
1892 message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3)))
\r
1895 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-08) (unread)
\r
1896 +Subject: thread-naming: Final 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: Mon, 08 Jan 2001 15:43:56 -0800
\r
1905 part{ ID: 1, Content-type: text/plain
\r
1906 +This is just a test message (#$((first + 3)))
\r
1914 message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4)))
\r
1917 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-09) (inbox unread)
\r
1918 +Subject: Re: thread-naming: Initial thread subject
\r
1919 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1920 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1921 +Date: Tue, 09 Jan 2001 15:43:45 -0800
\r
1927 part{ ID: 1, Content-type: text/plain
\r
1928 +This is just a test message (#$((first + 4)))
\r
1936 message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5)))
\r
1939 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-10) (inbox unread)
\r
1940 +Subject: Aw: thread-naming: Initial thread subject
\r
1941 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1942 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1943 +Date: Wed, 10 Jan 2001 15:43:45 -0800
\r
1949 part{ ID: 1, Content-type: text/plain
\r
1950 +This is just a test message (#$((first + 5)))
\r
1958 message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6)))
\r
1961 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-11) (inbox unread)
\r
1962 +Subject: Vs: thread-naming: Initial thread subject
\r
1963 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1964 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1965 +Date: Thu, 11 Jan 2001 15:43:45 -0800
\r
1971 part{ ID: 1, Content-type: text/plain
\r
1972 +This is just a test message (#$((first + 6)))
\r
1980 message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7)))
\r
1983 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-12) (inbox unread)
\r
1984 +Subject: Sv: thread-naming: Initial thread subject
\r
1985 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1986 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
1987 +Date: Fri, 12 Jan 2001 15:43:45 -0800
\r
1993 part{ ID: 1, Content-type: text/plain
\r
1994 +This is just a test message (#$((first + 7)))
\r
2003 diff --git a/test/t0005-reply.sh b/test/t0005-reply.sh
\r
2004 new file mode 100755
\r
2005 index 0000000..650d5bd
\r
2007 +++ b/test/t0005-reply.sh
\r
2010 +test_description="\"notmuch reply\" in several variations"
\r
2013 +test_expect_success "Basic reply" '
\r
2014 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2015 + [to]=test_suite@notmuchmail.org \
\r
2016 + [subject]=notmuch-reply-test \
\r
2017 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2018 + "[body]=\"basic reply test\"" &&
\r
2020 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2021 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2022 +Subject: Re: notmuch-reply-test
\r
2023 +To: Sender <sender@example.com>
\r
2024 +Bcc: test_suite@notmuchmail.org
\r
2025 +In-Reply-To: <${gen_msg_id}>
\r
2026 +References: <${gen_msg_id}>
\r
2028 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2029 +> basic reply test"
\r
2032 +test_expect_success "Multiple recipients" '
\r
2033 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2034 + "[to]=\"test_suite@notmuchmail.org, Someone Else <someone@example.com>\"" \
\r
2035 + [subject]=notmuch-reply-test \
\r
2036 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2037 + "[body]=\"Multiple recipients\"" &&
\r
2039 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2040 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2041 +Subject: Re: notmuch-reply-test
\r
2042 +To: Sender <sender@example.com>, Someone Else <someone@example.com>
\r
2043 +Bcc: test_suite@notmuchmail.org
\r
2044 +In-Reply-To: <${gen_msg_id}>
\r
2045 +References: <${gen_msg_id}>
\r
2047 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2048 +> Multiple recipients"
\r
2051 +test_expect_success "Reply with CC" '
\r
2052 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2053 + [to]=test_suite@notmuchmail.org \
\r
2054 + "[cc]=\"Other Parties <cc@example.com>\"" \
\r
2055 + [subject]=notmuch-reply-test \
\r
2056 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2057 + "[body]=\"reply with CC\"" &&
\r
2059 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2060 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2061 +Subject: Re: notmuch-reply-test
\r
2062 +To: Sender <sender@example.com>
\r
2063 +Cc: Other Parties <cc@example.com>
\r
2064 +Bcc: test_suite@notmuchmail.org
\r
2065 +In-Reply-To: <${gen_msg_id}>
\r
2066 +References: <${gen_msg_id}>
\r
2068 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2072 +test_expect_success "Reply from alternate address" '
\r
2073 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2074 + [to]=test_suite_other@notmuchmail.org \
\r
2075 + [subject]=notmuch-reply-test \
\r
2076 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2077 + "[body]=\"reply from alternate address\"" &&
\r
2079 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2080 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
2081 +Subject: Re: notmuch-reply-test
\r
2082 +To: Sender <sender@example.com>
\r
2083 +Bcc: test_suite@notmuchmail.org
\r
2084 +In-Reply-To: <${gen_msg_id}>
\r
2085 +References: <${gen_msg_id}>
\r
2087 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2088 +> reply from alternate address"
\r
2091 +test_expect_success "Support for Reply-To" '
\r
2092 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2093 + [to]=test_suite@notmuchmail.org \
\r
2094 + [subject]=notmuch-reply-test \
\r
2095 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2096 + "[body]=\"support for reply-to\"" \
\r
2097 + "[reply-to]=\"Sender <elsewhere@example.com>\"" &&
\r
2099 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2100 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2101 +Subject: Re: notmuch-reply-test
\r
2102 +To: Sender <elsewhere@example.com>
\r
2103 +Bcc: test_suite@notmuchmail.org
\r
2104 +In-Reply-To: <${gen_msg_id}>
\r
2105 +References: <${gen_msg_id}>
\r
2107 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2108 +> support for reply-to"
\r
2111 +test_expect_success "Un-munging Reply-To" '
\r
2112 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2113 + "[to]=\"Some List <list@example.com>\"" \
\r
2114 + [subject]=notmuch-reply-test \
\r
2115 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2116 + "[body]=\"Un-munging Reply-To\"" \
\r
2117 + "[reply-to]=\"Evil Munging List <list@example.com>\"" &&
\r
2119 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2120 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2121 +Subject: Re: notmuch-reply-test
\r
2122 +To: Sender <sender@example.com>, Some List <list@example.com>
\r
2123 +Bcc: test_suite@notmuchmail.org
\r
2124 +In-Reply-To: <${gen_msg_id}>
\r
2125 +References: <${gen_msg_id}>
\r
2127 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2128 +> Un-munging Reply-To"
\r
2131 +test_expect_success "Message with header of exactly 200 bytes" '
\r
2132 +add_message "[subject]=\"This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces\"" \
\r
2133 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2134 + "[body]=\"200-byte header\"" &&
\r
2135 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2136 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2137 +Subject: Re: This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces
\r
2138 +Bcc: test_suite@notmuchmail.org
\r
2139 +In-Reply-To: <${gen_msg_id}>
\r
2140 +References: <${gen_msg_id}>
\r
2142 +On Tue, 05 Jan 2010 15:43:56 -0800, Notmuch Test Suite <test_suite@notmuchmail.org> wrote:
\r
2143 +> 200-byte header"
\r
2146 diff --git a/test/t0006-dump-restore.sh b/test/t0006-dump-restore.sh
\r
2147 new file mode 100755
\r
2148 index 0000000..f971181
\r
2150 +++ b/test/t0006-dump-restore.sh
\r
2153 +test_description="\"notmuch dump\" and \"notmuch restore\""
\r
2155 +test_expect_success 'Generate some message' '
\r
2156 +generate_message &&
\r
2159 +test_expect_success "Dumping all tags" '
\r
2160 +$NOTMUCH dump dump.expected &&
\r
2161 +pass_if_equal "$?" "0"
\r
2164 +test_expect_success "Clearing all tags" '
\r
2165 +sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected
\r
2166 +$NOTMUCH restore clear.expected &&
\r
2167 +$NOTMUCH dump clear.actual &&
\r
2168 +pass_if_equal "$(< clear.actual)" "$(< clear.expected)"
\r
2171 +test_expect_success "Restoring original tags" '
\r
2172 +$NOTMUCH restore dump.expected &&
\r
2173 +$NOTMUCH dump dump.actual &&
\r
2174 +pass_if_equal "$(< dump.actual)" "$(< dump.expected)"
\r
2177 +test_expect_success "Restore with nothing to do" '
\r
2178 +$NOTMUCH restore dump.expected &&
\r
2179 +pass_if_equal "$?" "0"
\r
2182 diff --git a/test/t0007-uuencode.sh b/test/t0007-uuencode.sh
\r
2183 new file mode 100755
\r
2184 index 0000000..e290610
\r
2186 +++ b/test/t0007-uuencode.sh
\r
2189 +test_description="handling of uuencoded data"
\r
2191 +test_expect_success 'Generate message' '
\r
2193 +add_message [subject]=uuencodetest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
\r
2194 +"[body]=\"This message is used to ensure that notmuch correctly handles a
\r
2195 +message containing a block of uuencoded data. First, we have a marker
\r
2196 +this content beforeuudata . Then we beging the uunencoded data itself:
\r
2198 +begin 644 bogus-uuencoded-data
\r
2199 +M0123456789012345678901234567890123456789012345678901234567890
\r
2200 +MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA.
\r
2201 +MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA
\r
2202 +MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE
\r
2203 +MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY
\r
2208 +Finally, we have our afteruudata marker as well.\""
\r
2211 +test_expect_success "Ensure content before uu data is indexed" '
\r
2212 +output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize) &&
\r
2213 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
2215 +test_expect_success "Ensure uu data is not indexed" '
\r
2216 +output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize) &&
\r
2217 +pass_if_equal "$output" ""
\r
2219 +test_expect_success "Ensure content after uu data is indexed" '
\r
2220 +output=$($NOTMUCH search afteruudata | notmuch_search_sanitize) &&
\r
2221 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)"
\r
2224 diff --git a/test/t0008-threading-out-of-order.sh b/test/t0008-threading-out-of-order.sh
\r
2225 new file mode 100755
\r
2226 index 0000000..9f360b7
\r
2228 +++ b/test/t0008-threading-out-of-order.sh
\r
2231 +test_description="threading when messages received out of order"
\r
2233 +test_expect_success "Adding initial child message" '
\r
2234 +generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
2235 +output=$(NOTMUCH_NEW) &&
\r
2236 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2238 +test_expect_success "Searching returns the message" '
\r
2239 +output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
\r
2240 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
2242 +test_expect_success "Adding second child message" '
\r
2243 +generate_message [body]=foo "[in-reply-to]=\<parent-id\>" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
2244 +output=$(NOTMUCH_NEW) &&
\r
2245 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2247 +test_expect_success "Searching returns both messages in one thread" '
\r
2248 +output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
\r
2249 +pass_if_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
2251 +test_expect_success "Adding parent message" '
\r
2252 +generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" &&
\r
2253 +output=$(NOTMUCH_NEW) &&
\r
2254 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2256 +test_expect_success "Searching returns all three messages in one thread" '
\r
2257 +output=$($NOTMUCH search foo | notmuch_search_sanitize) &&
\r
2258 +pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)"
\r
2261 diff --git a/test/t0009-author-reordering.sh b/test/t0009-author-reordering.sh
\r
2262 new file mode 100755
\r
2263 index 0000000..b993341
\r
2265 +++ b/test/t0009-author-reordering.sh
\r
2268 +test_description="author reordering;"
\r
2270 +test_expect_success "Adding parent message" '
\r
2271 +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
2272 +output=$(NOTMUCH_NEW) &&
\r
2273 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2275 +test_expect_success "Adding initial child message" '
\r
2276 +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
2277 +output=$(NOTMUCH_NEW) &&
\r
2278 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2280 +test_expect_success "Adding second child message" '
\r
2281 +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
2282 +output=$(NOTMUCH_NEW) &&
\r
2283 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2285 +test_expect_success "Searching when all three messages match" '
\r
2286 +output=$($NOTMUCH search findme | notmuch_search_sanitize) &&
\r
2287 +pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
\r
2289 +test_expect_success "Searching when two messages match" '
\r
2290 +output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize) &&
\r
2291 +pass_if_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
\r
2293 +test_expect_success "Searching when only one message matches" '
\r
2294 +output=$($NOTMUCH search User2 | notmuch_search_sanitize) &&
\r
2295 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
\r
2297 +test_expect_success "Searching when only first message matches" '
\r
2298 +output=$($NOTMUCH search User | notmuch_search_sanitize) &&
\r
2299 +pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
\r
2302 diff --git a/test/t0010-from-line-heuristics.sh b/test/t0010-from-line-heuristics.sh
\r
2303 new file mode 100755
\r
2304 index 0000000..bd0e887
\r
2306 +++ b/test/t0010-from-line-heuristics.sh
\r
2309 +test_description="From line heuristics (with multiple configured addresses)"
\r
2312 +test_expect_success "Magic from guessing (nothing to go on)" '
\r
2313 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2314 + [to]=mailinglist@notmuchmail.org \
\r
2315 + [subject]=notmuch-reply-test \
\r
2316 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2317 + "[body]=\"from guessing test\"" &&
\r
2319 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2320 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2321 +Subject: Re: notmuch-reply-test
\r
2322 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2323 +Bcc: test_suite@notmuchmail.org
\r
2324 +In-Reply-To: <${gen_msg_id}>
\r
2325 +References: <${gen_msg_id}>
\r
2327 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2328 +> from guessing test"
\r
2331 +test_expect_success "Magic from guessing (Envelope-to:)" '
\r
2332 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2333 + [to]=mailinglist@notmuchmail.org \
\r
2334 + [subject]=notmuch-reply-test \
\r
2335 + "[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
\r
2336 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2337 + "[body]=\"from guessing test\"" &&
\r
2339 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2340 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
2341 +Subject: Re: notmuch-reply-test
\r
2342 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2343 +Bcc: test_suite@notmuchmail.org
\r
2344 +In-Reply-To: <${gen_msg_id}>
\r
2345 +References: <${gen_msg_id}>
\r
2347 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2348 +> from guessing test"
\r
2351 +test_expect_success "Magic from guessing (X-Original-To:)" '
\r
2352 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2353 + [to]=mailinglist@notmuchmail.org \
\r
2354 + [subject]=notmuch-reply-test \
\r
2355 + "[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
\r
2356 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2357 + "[body]=\"from guessing test\"" &&
\r
2359 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2360 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
2361 +Subject: Re: notmuch-reply-test
\r
2362 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2363 +Bcc: test_suite@notmuchmail.org
\r
2364 +In-Reply-To: <${gen_msg_id}>
\r
2365 +References: <${gen_msg_id}>
\r
2367 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2368 +> from guessing test"
\r
2371 +test_expect_success "Magic from guessing (Received: .. for ..)" '
\r
2372 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2373 + [to]=mailinglist@notmuchmail.org \
\r
2374 + [subject]=notmuch-reply-test \
\r
2375 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2376 + by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
2377 + for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2378 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2379 + "[body]=\"from guessing test\"" &&
\r
2381 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2382 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
\r
2383 +Subject: Re: notmuch-reply-test
\r
2384 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2385 +Bcc: test_suite@notmuchmail.org
\r
2386 +In-Reply-To: <${gen_msg_id}>
\r
2387 +References: <${gen_msg_id}>
\r
2389 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2390 +> from guessing test"
\r
2393 +test_expect_success "Magic from guessing (Received: domain)" '
\r
2394 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2395 + [to]=mailinglist@notmuchmail.org \
\r
2396 + [subject]=notmuch-reply-test \
\r
2397 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2398 + by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
2399 + Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2400 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2401 + "[body]=\"from guessing test\"" &&
\r
2403 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2404 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
\r
2405 +Subject: Re: notmuch-reply-test
\r
2406 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2407 +Bcc: test_suite@notmuchmail.org
\r
2408 +In-Reply-To: <${gen_msg_id}>
\r
2409 +References: <${gen_msg_id}>
\r
2411 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2412 +> from guessing test"
\r
2416 +test_expect_success "Testing From line heuristics (with single configured address)" '
\r
2417 +sed -i -e "s/^other_email.*//" "${NOTMUCH_CONFIG}"
\r
2420 +test_expect_success "Magic from guessing (nothing to go on)" '
\r
2421 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2422 + [to]=mailinglist@notmuchmail.org \
\r
2423 + [subject]=notmuch-reply-test \
\r
2424 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2425 + "[body]=\"from guessing test\"" &&
\r
2427 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2428 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2429 +Subject: Re: notmuch-reply-test
\r
2430 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2431 +Bcc: test_suite@notmuchmail.org
\r
2432 +In-Reply-To: <${gen_msg_id}>
\r
2433 +References: <${gen_msg_id}>
\r
2435 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2436 +> from guessing test"
\r
2439 +test_expect_success "Magic from guessing (Envelope-to:)" '
\r
2440 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2441 + [to]=mailinglist@notmuchmail.org \
\r
2442 + [subject]=notmuch-reply-test \
\r
2443 + "[header]=\"Envelope-To: test_suite_other@notmuchmail.org\"" \
\r
2444 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2445 + "[body]=\"from guessing test\"" &&
\r
2447 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2448 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2449 +Subject: Re: notmuch-reply-test
\r
2450 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2451 +Bcc: test_suite@notmuchmail.org
\r
2452 +In-Reply-To: <${gen_msg_id}>
\r
2453 +References: <${gen_msg_id}>
\r
2455 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2456 +> from guessing test"
\r
2459 +test_expect_success "Magic from guessing (X-Original-To:)" '
\r
2460 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2461 + [to]=mailinglist@notmuchmail.org \
\r
2462 + [subject]=notmuch-reply-test \
\r
2463 + "[header]=\"X-Original-To: test_suite_other@notmuchmail.org\"" \
\r
2464 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2465 + "[body]=\"from guessing test\"" &&
\r
2467 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2468 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2469 +Subject: Re: notmuch-reply-test
\r
2470 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2471 +Bcc: test_suite@notmuchmail.org
\r
2472 +In-Reply-To: <${gen_msg_id}>
\r
2473 +References: <${gen_msg_id}>
\r
2475 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2476 +> from guessing test"
\r
2479 +test_expect_success "Magic from guessing (Received: .. for ..)" '
\r
2480 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2481 + [to]=mailinglist@notmuchmail.org \
\r
2482 + [subject]=notmuch-reply-test \
\r
2483 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2484 + by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\
\r
2485 + for <test_suite_other@notmuchmail.org>; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2486 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2487 + "[body]=\"from guessing test\"" &&
\r
2489 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2490 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2491 +Subject: Re: notmuch-reply-test
\r
2492 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2493 +Bcc: test_suite@notmuchmail.org
\r
2494 +In-Reply-To: <${gen_msg_id}>
\r
2495 +References: <${gen_msg_id}>
\r
2497 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2498 +> from guessing test"
\r
2501 +test_expect_success "Magic from guessing (Received: domain)" '
\r
2502 +add_message "[from]=\"Sender <sender@example.com>\"" \
\r
2503 + [to]=mailinglist@notmuchmail.org \
\r
2504 + [subject]=notmuch-reply-test \
\r
2505 + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\
\r
2506 + by mail.otherdomain.org (some MTA) with ESMTP id 12345678\
\r
2507 + Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \
\r
2508 + "[date]=\"Tue, 05 Jan 2010 15:43:56 -0800\"" \
\r
2509 + "[body]=\"from guessing test\"" &&
\r
2511 +output=$($NOTMUCH reply id:${gen_msg_id}) &&
\r
2512 +pass_if_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2513 +Subject: Re: notmuch-reply-test
\r
2514 +To: Sender <sender@example.com>, mailinglist@notmuchmail.org
\r
2515 +Bcc: test_suite@notmuchmail.org
\r
2516 +In-Reply-To: <${gen_msg_id}>
\r
2517 +References: <${gen_msg_id}>
\r
2519 +On Tue, 05 Jan 2010 15:43:56 -0800, Sender <sender@example.com> wrote:
\r
2520 +> from guessing test"
\r
2523 diff --git a/test/t0011-long-msgid.sh b/test/t0011-long-msgid.sh
\r
2524 new file mode 100755
\r
2525 index 0000000..c1cbd9f
\r
2527 +++ b/test/t0011-long-msgid.sh
\r
2530 +test_description="Testing messages with ridiculously-long message IDs"
\r
2533 +test_expect_success "Referencing long ID before adding" '
\r
2534 +generate_message "[subject]=\"Reference of ridiculously-long message ID\"" \
\r
2535 + "[references]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>" &&
\r
2536 +output=$(NOTMUCH_NEW) &&
\r
2537 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2539 +test_expect_success "Adding message with long ID" '
\r
2540 +generate_message "[subject]=\"A ridiculously-long message ID\"" \
\r
2541 + "[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-" &&
\r
2542 +output=$(NOTMUCH_NEW) &&
\r
2543 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2546 +test_expect_success "Referencing long ID after adding" '
\r
2547 +generate_message "[subject]=\"Reply to ridiculously-long message ID\"" \
\r
2548 + "[in-reply-to]=\<abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\>" &&
\r
2549 +output=$(NOTMUCH_NEW) &&
\r
2550 +pass_if_equal "$output" "Added 1 new message to the database."
\r
2553 +test_expect_success "Ensure all messages were threaded together" '
\r
2554 +output=$($NOTMUCH search "subject:\"a ridiculously-long message ID\"" | notmuch_search_sanitize) &&
\r
2555 +pass_if_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)"
\r
2558 diff --git a/test/t0012-encoding-issues.sh b/test/t0012-encoding-issues.sh
\r
2559 new file mode 100755
\r
2560 index 0000000..643ba1b
\r
2562 +++ b/test/t0012-encoding-issues.sh
\r
2565 +test_description="Testing encoding issues"
\r
2568 +test_expect_success "Message with text of unknown charset" '
\r
2569 +add_message "[content-type]=\"text/plain; charset=unknown-8bit\"" \
\r
2570 + "[body]=irrelevant" &&
\r
2571 +output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) &&
\r
2572 +pass_if_equal "$output" "
\f\r
2573 message{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001
\r
2576 +Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)
\r
2577 +Subject: Test message #1
\r
2578 +From: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2579 +To: Notmuch Test Suite <test_suite@notmuchmail.org>
\r
2580 +Date: Tue, 05 Jan 2001 15:43:57 -0800
\r
2586 part{ ID: 1, Content-type: text/plain
\r