From: Carl Worth Date: Fri, 17 Sep 2010 22:58:39 +0000 (-0700) Subject: test: Rename all tests to get rid of the ugly numbers in file names. X-Git-Tag: 0.4~95 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=7263aa9ec3f72bb65a491b2c64345ab5258b24ee;hp=51cd69feb1d131db7a468e33e0fa2e043caad41e test: Rename all tests to get rid of the ugly numbers in file names. The numbers were meaningless, and they made it hard to find a file of interest. Instead, we get the ordering we want by adding an explicit list of tests to run to the notmuch-test script. --- diff --git a/test/author-reordering b/test/author-reordering new file mode 100755 index 00000000..d618b858 --- /dev/null +++ b/test/author-reordering @@ -0,0 +1,36 @@ +#!/bin/bash +test_description="author reordering;" +. ./test-lib.sh + +test_begin_subtest "Adding parent message" +generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest '[from]="User "' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Adding initial child message" +generate_message [body]=findme "[in-reply-to]=\" [subject]=author-reorder-threadtest '[from]="User1 "' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Adding second child message" +generate_message [body]=findme "[in-reply-to]=\" [subject]=author-reorder-threadtest '[from]="User2 "' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Searching when all three messages match" +output=$($NOTMUCH search findme | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)" + +test_begin_subtest "Searching when two messages match" +output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)" + +test_begin_subtest "Searching when only one message matches" +output=$($NOTMUCH search User2 | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)" + +test_begin_subtest "Searching when only first message matches" +output=$($NOTMUCH search User | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)" + +test_done diff --git a/test/basic b/test/basic new file mode 100755 index 00000000..eb109533 --- /dev/null +++ b/test/basic @@ -0,0 +1,73 @@ +#!/bin/bash +# +# Copyright (c) 2005 Junio C Hamano +# + +test_description='the test framework itself.' + +################################################################ +# It appears that people try to run tests without building... + +if ! test -x ../notmuch +then + echo >&2 'You do not seem to have built notmuch yet.' + exit 1 +fi + +. ./test-lib.sh + +################################################################ +# Test harness +test_expect_success 'success is reported like this' ' + : +' +test_set_prereq HAVEIT +haveit=no +test_expect_success HAVEIT 'test runs if prerequisite is satisfied' ' + test_have_prereq HAVEIT && + haveit=yes +' + +clean=no +test_expect_success 'tests clean up after themselves' ' + test_when_finished clean=yes +' + +cleaner=no +test_expect_code 1 'tests clean up even after a failure' ' + test_when_finished cleaner=yes && + (exit 1) +' + +if test $clean$cleaner != yesyes +then + say "bug in test framework: cleanup commands do not work reliably" + exit 1 +fi + +test_expect_code 2 'failure to clean up causes the test to fail' ' + test_when_finished "(exit 2)" +' + +################################################################ +# Test mail store prepared in test-lib.sh + +test_expect_success \ + 'test that mail store was created' \ + 'test -d "${MAIL_DIR}"' + + +find "${MAIL_DIR}" -type f -print >should-be-empty +test_expect_success \ + 'mail store should be empty' \ + 'cmp -s /dev/null should-be-empty' + +test_expect_success \ + 'NOTMUCH_CONFIG is set and points to an existing file' \ + 'test -f "${NOTMUCH_CONFIG}"' + +test_expect_success \ + 'PATH is set to this repository' \ + 'test "`echo $PATH|cut -f1 -d:`" = "`dirname ${TEST_DIRECTORY}`"' + +test_done diff --git a/test/dump-restore b/test/dump-restore new file mode 100755 index 00000000..21f91055 --- /dev/null +++ b/test/dump-restore @@ -0,0 +1,22 @@ +#!/bin/bash +test_description="\"notmuch dump\" and \"notmuch restore\"" +. ./test-lib.sh + +test_expect_success "Dumping all tags" "generate_message && +notmuch new && +$NOTMUCH dump dump.expected" + +test_begin_subtest "Clearing all tags" +sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected +$NOTMUCH restore clear.expected +$NOTMUCH dump clear.actual +test_expect_equal "$(< clear.actual)" "$(< clear.expected)" + +test_begin_subtest "Restoring original tags" +$NOTMUCH restore dump.expected +$NOTMUCH dump dump.actual +test_expect_equal "$(< dump.actual)" "$(< dump.expected)" + +test_expect_success "Restore with nothing to do" "$NOTMUCH restore dump.expected" + +test_done diff --git a/test/encoding-issues b/test/encoding-issues new file mode 100755 index 00000000..73ca62ad --- /dev/null +++ b/test/encoding-issues @@ -0,0 +1,24 @@ +#!/bin/bash +test_description="Testing encoding issues" +. ./test-lib.sh + +test_begin_subtest "Message with text of unknown charset" +add_message '[content-type]="text/plain; charset=unknown-8bit"' \ + "[body]=irrelevant" +output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) +test_expect_equal "$output" " message{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001 + header{ +Notmuch Test Suite (2001-01-05) (inbox unread) +Subject: Test message #1 +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Tue, 05 Jan 2001 15:43:57 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +irrelevant + part} + body} + message}" + +test_done diff --git a/test/from-line-heuristics b/test/from-line-heuristics new file mode 100755 index 00000000..613917c9 --- /dev/null +++ b/test/from-line-heuristics @@ -0,0 +1,205 @@ +#!/bin/bash +test_description="From line heuristics (with multiple configured addresses)" +. ./test-lib.sh + +test_begin_subtest "Magic from guessing (nothing to go on)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (Envelope-to:)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (X-Original-To:)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (Received: .. for ..)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ + by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\ + for ; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (Received: domain)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ + by mail.otherdomain.org (some MTA) with ESMTP id 12345678\ + Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + + +test_begin_subtest "Testing From line heuristics (with single configured address)" +sed -i -e "s/^other_email.*//" "${NOTMUCH_CONFIG}" + +test_begin_subtest "Magic from guessing (nothing to go on)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (Envelope-to:)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (X-Original-To:)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (Received: .. for ..)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ + by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\ + for ; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_begin_subtest "Magic from guessing (Received: domain)" +add_message '[from]="Sender "' \ + [to]=mailinglist@notmuchmail.org \ + [subject]=notmuch-reply-test \ + "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ + by mail.otherdomain.org (some MTA) with ESMTP id 12345678\ + Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , mailinglist@notmuchmail.org +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> from guessing test" + +test_done diff --git a/test/json b/test/json new file mode 100755 index 00000000..24976131 --- /dev/null +++ b/test/json @@ -0,0 +1,42 @@ +#!/bin/bash +test_description="--format=json output" +. ./test-lib.sh + +test_begin_subtest "Show message: json" +add_message "[subject]=\"json-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-show-message\"" +output=$($NOTMUCH show --format=json "json-show-message") +test_expect_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 \", \"To\": \"Notmuch Test Suite \", \"Cc\": \"\", \"Bcc\": \"\", \"Date\": \"Sat, 01 Jan 2000 12:00:00 -0000\"}, \"body\": [{\"id\": 1, \"content-type\": \"text/plain\", \"content\": \"json-show-message\n\"}]}, []]]]" + +test_begin_subtest "Search message: json" +add_message "[subject]=\"json-search-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-search-message\"" +output=$($NOTMUCH search --format=json "json-search-message" | notmuch_search_sanitize) +test_expect_equal "$output" "[{\"thread\": \"XXX\", +\"timestamp\": 946728000, +\"matched\": 1, +\"total\": 1, +\"authors\": \"Notmuch Test Suite\", +\"subject\": \"json-search-subject\", +\"tags\": [\"inbox\", \"unread\"]}]" + +test_begin_subtest "Search by subject (utf-8):" +add_message [subject]=utf8-sübjéct "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" +output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)" + +test_begin_subtest "Show message: json, utf-8" +add_message "[subject]=\"json-show-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-show-méssage\"" +output=$($NOTMUCH show --format=json "jsön-show-méssage") +test_expect_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 \", \"To\": \"Notmuch Test Suite \", \"Cc\": \"\", \"Bcc\": \"\", \"Date\": \"Sat, 01 Jan 2000 12:00:00 -0000\"}, \"body\": [{\"id\": 1, \"content-type\": \"text/plain\", \"content\": \"jsön-show-méssage\n\"}]}, []]]]" + +test_begin_subtest "Search message: json, utf-8" +add_message "[subject]=\"json-search-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-search-méssage\"" +output=$($NOTMUCH search --format=json "jsön-search-méssage" | notmuch_search_sanitize) +test_expect_equal "$output" "[{\"thread\": \"XXX\", +\"timestamp\": 946728000, +\"matched\": 1, +\"total\": 1, +\"authors\": \"Notmuch Test Suite\", +\"subject\": \"json-search-utf8-body-sübjéct\", +\"tags\": [\"inbox\", \"unread\"]}]" + +test_done diff --git a/test/long-msgid b/test/long-msgid new file mode 100755 index 00000000..1f55d716 --- /dev/null +++ b/test/long-msgid @@ -0,0 +1,27 @@ +#!/bin/bash +test_description="Testing messages with ridiculously-long message IDs" +. ./test-lib.sh + +test_begin_subtest "Referencing long ID before adding" +generate_message '[subject]="Reference of ridiculously-long message ID"' \ + "[references]=\" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Adding message with long ID" +generate_message '[subject]="A ridiculously-long message ID"' \ + "[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Referencing long ID after adding" +generate_message '[subject]="Reply to ridiculously-long message ID"' \ + "[in-reply-to]=\" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Ensure all messages were threaded together" +output=$($NOTMUCH search 'subject:"a ridiculously-long message ID"' | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)" + +test_done diff --git a/test/new b/test/new new file mode 100755 index 00000000..4c6952fd --- /dev/null +++ b/test/new @@ -0,0 +1,165 @@ +#!/bin/bash +test_description='"notmuch new" in several variations' +. ./test-lib.sh + +test_begin_subtest "No new messages" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail." + + +test_begin_subtest "Single new message" +generate_message +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + + +test_begin_subtest "Multiple new messages" +generate_message +generate_message +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 2 new messages to the database." + + +test_begin_subtest "No new messages (non-empty DB)" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail." + + +test_begin_subtest "New directories" +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch +mkdir "${MAIL_DIR}"/def +mkdir "${MAIL_DIR}"/ghi +generate_message [dir]=def + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + + +test_begin_subtest "Alternate inode order" + +rm -rf "${MAIL_DIR}"/.notmuch +mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc +rm "${MAIL_DIR}"/def/* +generate_message [dir]=abc + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + + +test_begin_subtest "Message moved in" +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch +generate_message +tmp_msg_filename=tmp/"$gen_msg_filename" +mkdir -p "$(dirname "$tmp_msg_filename")" +mv "$gen_msg_filename" "$tmp_msg_filename" +increment_mtime "${MAIL_DIR}" +$NOTMUCH new > /dev/null +mv "$tmp_msg_filename" "$gen_msg_filename" +increment_mtime "${MAIL_DIR}" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + + +test_begin_subtest "Renamed message" + +generate_message +$NOTMUCH new > /dev/null +mv "$gen_msg_filename" "${gen_msg_filename}"-renamed +increment_mtime "${MAIL_DIR}" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Detected 1 file rename." + + +test_begin_subtest "Deleted message" + +rm "${gen_msg_filename}"-renamed +increment_mtime "${MAIL_DIR}" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Removed 1 message." + + +test_begin_subtest "Renamed directory" + +generate_message [dir]=dir +generate_message [dir]=dir +generate_message [dir]=dir + +$NOTMUCH new > /dev/null + +mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed +increment_mtime "${MAIL_DIR}" + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Detected 3 file renames." + + +test_begin_subtest "Deleted directory" + +rm -rf "${MAIL_DIR}"/dir-renamed +increment_mtime "${MAIL_DIR}" + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Removed 3 messages." + + +test_begin_subtest "New directory (at end of list)" + +generate_message [dir]=zzz +generate_message [dir]=zzz +generate_message [dir]=zzz + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 3 new messages to the database." + + +test_begin_subtest "Deleted directory (end of list)" + +rm -rf "${MAIL_DIR}"/zzz +increment_mtime "${MAIL_DIR}" + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Removed 3 messages." + + +test_begin_subtest "New symlink to directory" + +rm -rf "${MAIL_DIR}"/.notmuch +mv "${MAIL_DIR}" "$PWD"/actual_maildir + +mkdir "${MAIL_DIR}" +ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + + +test_begin_subtest "New symlink to a file" +generate_message +external_msg_filename="$PWD"/external/"$(basename "$gen_msg_filename")" +mkdir -p "$(dirname "$external_msg_filename")" +mv "$gen_msg_filename" "$external_msg_filename" +ln -s "$external_msg_filename" "$gen_msg_filename" +increment_mtime "${MAIL_DIR}" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + + +test_begin_subtest "New two-level directory" + +generate_message [dir]=two/levels +generate_message [dir]=two/levels +generate_message [dir]=two/levels + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 3 new messages to the database." + + +test_begin_subtest "Deleted two-level directory" + +rm -rf "${MAIL_DIR}"/two +increment_mtime "${MAIL_DIR}" + +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Removed 3 messages." + +test_done diff --git a/test/notmuch-test b/test/notmuch-test index 61b9280a..9b00d335 100755 --- a/test/notmuch-test +++ b/test/notmuch-test @@ -8,16 +8,18 @@ cd $(dirname "$0") +TESTS="basic new search json thread-naming reply dump-restore uuencode threading-out-of-order author-reordering from-line-heuristics long-msgid encoding-issues" + # Clean up any results from a previous run rm -r test-results >/dev/null 2>/dev/null # Run the tests -for test in t[0-9][0-9][0-9][0-9]*.sh; do - ./"$test" +for test in $TESTS; do + ./$test done # Report results -./aggregate-results.sh test-results/t*-* +./aggregate-results.sh test-results/* # Clean up -#rm -r test-results +rm -r test-results diff --git a/test/reply b/test/reply new file mode 100755 index 00000000..d6b74317 --- /dev/null +++ b/test/reply @@ -0,0 +1,130 @@ +#!/bin/bash +test_description="\"notmuch reply\" in several variations" +. ./test-lib.sh + +test_begin_subtest "Basic reply" +add_message '[from]="Sender "' \ + [to]=test_suite@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="basic reply test"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> basic reply test" + +test_begin_subtest "Multiple recipients" +add_message '[from]="Sender "' \ + '[to]="test_suite@notmuchmail.org, Someone Else "' \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="Multiple recipients"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , Someone Else +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> Multiple recipients" + +test_begin_subtest "Reply with CC" +add_message '[from]="Sender "' \ + [to]=test_suite@notmuchmail.org \ + '[cc]="Other Parties "' \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="reply with CC"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender +Cc: Other Parties +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> reply with CC" + +test_begin_subtest "Reply from alternate address" +add_message '[from]="Sender "' \ + [to]=test_suite_other@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="reply from alternate address"' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> reply from alternate address" + +test_begin_subtest "Support for Reply-To" +add_message '[from]="Sender "' \ + [to]=test_suite@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="support for reply-to"' \ + '[reply-to]="Sender "' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> support for reply-to" + +test_begin_subtest "Un-munging Reply-To" +add_message '[from]="Sender "' \ + '[to]="Some List "' \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="Un-munging Reply-To"' \ + '[reply-to]="Evil Munging List "' + +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender , Some List +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> Un-munging Reply-To" + +test_begin_subtest "Message with header of exactly 200 bytes" +add_message '[subject]="This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces"' \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="200-byte header"' +output=$($NOTMUCH reply id:${gen_msg_id}) +test_expect_equal "$output" "From: Notmuch Test Suite +Subject: Re: This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces +Bcc: test_suite@notmuchmail.org +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Notmuch Test Suite wrote: +> 200-byte header" +test_done diff --git a/test/search b/test/search new file mode 100755 index 00000000..865f5bb6 --- /dev/null +++ b/test/search @@ -0,0 +1,97 @@ +#!/bin/bash +test_description='"notmuch search" in several variations' +. ./test-lib.sh + +test_begin_subtest "Search body" +add_message '[subject]="body search"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [body]=bodysearchtest +output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)" + +test_begin_subtest "Search by from:" +add_message '[subject]="search by from"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom +output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)" + +test_begin_subtest "Search by to:" +add_message '[subject]="search by to"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto +output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)" + +test_begin_subtest "Search by subject:" +add_message [subject]=subjectsearchtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)" + +test_begin_subtest "Search by id:" +add_message '[subject]="search by id"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)" + +test_begin_subtest "Search by tag:" +add_message '[subject]="search by tag"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +$NOTMUCH tag +searchbytag id:${gen_msg_id} +output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)" + +test_begin_subtest "Search by thread:" +add_message '[subject]="search by thread"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e "s/thread:\([a-f0-9]*\).*/\1/") +output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)" + +test_begin_subtest "Search body (phrase)" +add_message '[subject]="body search (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="body search (phrase)"' +add_message '[subject]="negative result"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="This phrase should not match the body search"' +output=$($NOTMUCH search '"body search (phrase)"' | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)" + +test_begin_subtest "Search by from: (address)" +add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom@example.com +output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)" + +test_begin_subtest "Search by from: (name)" +add_message '[subject]="search by from (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]="Search By From Name "' +output=$($NOTMUCH search from:"Search By From Name" | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)" + +test_begin_subtest "Search by to: (address)" +add_message '[subject]="search by to (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto@example.com +output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)" + +test_begin_subtest "Search by to: (name)" +add_message '[subject]="search by to (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[to]="Search By To Name "' +output=$($NOTMUCH search to:"Search By To Name" | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)" + +test_begin_subtest "Search by subject: (phrase)" +add_message '[subject]="subject search test (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +add_message '[subject]="this phrase should not match the subject search test"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$($NOTMUCH search 'subject:"subject search test (phrase)"' | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)" + +test_begin_subtest 'Search for all messages ("*" +output=$($NOTMUCH search '*' | notmuch_search_sanitize) +test_expect_equal):' "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread) +thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread) +thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread) +thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)" + +test_begin_subtest "Search body (utf-8):" +add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="message body utf8: bödý"' +output=$($NOTMUCH search "bödý" | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)" + +test_done diff --git a/test/t0000-basic.sh b/test/t0000-basic.sh deleted file mode 100755 index eb109533..00000000 --- a/test/t0000-basic.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2005 Junio C Hamano -# - -test_description='the test framework itself.' - -################################################################ -# It appears that people try to run tests without building... - -if ! test -x ../notmuch -then - echo >&2 'You do not seem to have built notmuch yet.' - exit 1 -fi - -. ./test-lib.sh - -################################################################ -# Test harness -test_expect_success 'success is reported like this' ' - : -' -test_set_prereq HAVEIT -haveit=no -test_expect_success HAVEIT 'test runs if prerequisite is satisfied' ' - test_have_prereq HAVEIT && - haveit=yes -' - -clean=no -test_expect_success 'tests clean up after themselves' ' - test_when_finished clean=yes -' - -cleaner=no -test_expect_code 1 'tests clean up even after a failure' ' - test_when_finished cleaner=yes && - (exit 1) -' - -if test $clean$cleaner != yesyes -then - say "bug in test framework: cleanup commands do not work reliably" - exit 1 -fi - -test_expect_code 2 'failure to clean up causes the test to fail' ' - test_when_finished "(exit 2)" -' - -################################################################ -# Test mail store prepared in test-lib.sh - -test_expect_success \ - 'test that mail store was created' \ - 'test -d "${MAIL_DIR}"' - - -find "${MAIL_DIR}" -type f -print >should-be-empty -test_expect_success \ - 'mail store should be empty' \ - 'cmp -s /dev/null should-be-empty' - -test_expect_success \ - 'NOTMUCH_CONFIG is set and points to an existing file' \ - 'test -f "${NOTMUCH_CONFIG}"' - -test_expect_success \ - 'PATH is set to this repository' \ - 'test "`echo $PATH|cut -f1 -d:`" = "`dirname ${TEST_DIRECTORY}`"' - -test_done diff --git a/test/t0001-new.sh b/test/t0001-new.sh deleted file mode 100755 index 4c6952fd..00000000 --- a/test/t0001-new.sh +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/bash -test_description='"notmuch new" in several variations' -. ./test-lib.sh - -test_begin_subtest "No new messages" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail." - - -test_begin_subtest "Single new message" -generate_message -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - - -test_begin_subtest "Multiple new messages" -generate_message -generate_message -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 2 new messages to the database." - - -test_begin_subtest "No new messages (non-empty DB)" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail." - - -test_begin_subtest "New directories" -rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch -mkdir "${MAIL_DIR}"/def -mkdir "${MAIL_DIR}"/ghi -generate_message [dir]=def - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - - -test_begin_subtest "Alternate inode order" - -rm -rf "${MAIL_DIR}"/.notmuch -mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc -rm "${MAIL_DIR}"/def/* -generate_message [dir]=abc - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - - -test_begin_subtest "Message moved in" -rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch -generate_message -tmp_msg_filename=tmp/"$gen_msg_filename" -mkdir -p "$(dirname "$tmp_msg_filename")" -mv "$gen_msg_filename" "$tmp_msg_filename" -increment_mtime "${MAIL_DIR}" -$NOTMUCH new > /dev/null -mv "$tmp_msg_filename" "$gen_msg_filename" -increment_mtime "${MAIL_DIR}" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - - -test_begin_subtest "Renamed message" - -generate_message -$NOTMUCH new > /dev/null -mv "$gen_msg_filename" "${gen_msg_filename}"-renamed -increment_mtime "${MAIL_DIR}" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail. Detected 1 file rename." - - -test_begin_subtest "Deleted message" - -rm "${gen_msg_filename}"-renamed -increment_mtime "${MAIL_DIR}" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail. Removed 1 message." - - -test_begin_subtest "Renamed directory" - -generate_message [dir]=dir -generate_message [dir]=dir -generate_message [dir]=dir - -$NOTMUCH new > /dev/null - -mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed -increment_mtime "${MAIL_DIR}" - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail. Detected 3 file renames." - - -test_begin_subtest "Deleted directory" - -rm -rf "${MAIL_DIR}"/dir-renamed -increment_mtime "${MAIL_DIR}" - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail. Removed 3 messages." - - -test_begin_subtest "New directory (at end of list)" - -generate_message [dir]=zzz -generate_message [dir]=zzz -generate_message [dir]=zzz - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 3 new messages to the database." - - -test_begin_subtest "Deleted directory (end of list)" - -rm -rf "${MAIL_DIR}"/zzz -increment_mtime "${MAIL_DIR}" - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail. Removed 3 messages." - - -test_begin_subtest "New symlink to directory" - -rm -rf "${MAIL_DIR}"/.notmuch -mv "${MAIL_DIR}" "$PWD"/actual_maildir - -mkdir "${MAIL_DIR}" -ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - - -test_begin_subtest "New symlink to a file" -generate_message -external_msg_filename="$PWD"/external/"$(basename "$gen_msg_filename")" -mkdir -p "$(dirname "$external_msg_filename")" -mv "$gen_msg_filename" "$external_msg_filename" -ln -s "$external_msg_filename" "$gen_msg_filename" -increment_mtime "${MAIL_DIR}" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - - -test_begin_subtest "New two-level directory" - -generate_message [dir]=two/levels -generate_message [dir]=two/levels -generate_message [dir]=two/levels - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 3 new messages to the database." - - -test_begin_subtest "Deleted two-level directory" - -rm -rf "${MAIL_DIR}"/two -increment_mtime "${MAIL_DIR}" - -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "No new mail. Removed 3 messages." - -test_done diff --git a/test/t0002-search.sh b/test/t0002-search.sh deleted file mode 100755 index 865f5bb6..00000000 --- a/test/t0002-search.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/bash -test_description='"notmuch search" in several variations' -. ./test-lib.sh - -test_begin_subtest "Search body" -add_message '[subject]="body search"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [body]=bodysearchtest -output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)" - -test_begin_subtest "Search by from:" -add_message '[subject]="search by from"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom -output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)" - -test_begin_subtest "Search by to:" -add_message '[subject]="search by to"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto -output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)" - -test_begin_subtest "Search by subject:" -add_message [subject]=subjectsearchtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)" - -test_begin_subtest "Search by id:" -add_message '[subject]="search by id"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)" - -test_begin_subtest "Search by tag:" -add_message '[subject]="search by tag"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -$NOTMUCH tag +searchbytag id:${gen_msg_id} -output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)" - -test_begin_subtest "Search by thread:" -add_message '[subject]="search by thread"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e "s/thread:\([a-f0-9]*\).*/\1/") -output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)" - -test_begin_subtest "Search body (phrase)" -add_message '[subject]="body search (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="body search (phrase)"' -add_message '[subject]="negative result"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="This phrase should not match the body search"' -output=$($NOTMUCH search '"body search (phrase)"' | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)" - -test_begin_subtest "Search by from: (address)" -add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom@example.com -output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)" - -test_begin_subtest "Search by from: (name)" -add_message '[subject]="search by from (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]="Search By From Name "' -output=$($NOTMUCH search from:"Search By From Name" | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)" - -test_begin_subtest "Search by to: (address)" -add_message '[subject]="search by to (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto@example.com -output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)" - -test_begin_subtest "Search by to: (name)" -add_message '[subject]="search by to (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[to]="Search By To Name "' -output=$($NOTMUCH search to:"Search By To Name" | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)" - -test_begin_subtest "Search by subject: (phrase)" -add_message '[subject]="subject search test (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -add_message '[subject]="this phrase should not match the subject search test"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$($NOTMUCH search 'subject:"subject search test (phrase)"' | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)" - -test_begin_subtest 'Search for all messages ("*" -output=$($NOTMUCH search '*' | notmuch_search_sanitize) -test_expect_equal):' "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread) -thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread) -thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread) -thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread) -thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)" - -test_begin_subtest "Search body (utf-8):" -add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="message body utf8: bödý"' -output=$($NOTMUCH search "bödý" | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)" - -test_done diff --git a/test/t0003-json.sh b/test/t0003-json.sh deleted file mode 100755 index 24976131..00000000 --- a/test/t0003-json.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -test_description="--format=json output" -. ./test-lib.sh - -test_begin_subtest "Show message: json" -add_message "[subject]=\"json-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-show-message\"" -output=$($NOTMUCH show --format=json "json-show-message") -test_expect_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 \", \"To\": \"Notmuch Test Suite \", \"Cc\": \"\", \"Bcc\": \"\", \"Date\": \"Sat, 01 Jan 2000 12:00:00 -0000\"}, \"body\": [{\"id\": 1, \"content-type\": \"text/plain\", \"content\": \"json-show-message\n\"}]}, []]]]" - -test_begin_subtest "Search message: json" -add_message "[subject]=\"json-search-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-search-message\"" -output=$($NOTMUCH search --format=json "json-search-message" | notmuch_search_sanitize) -test_expect_equal "$output" "[{\"thread\": \"XXX\", -\"timestamp\": 946728000, -\"matched\": 1, -\"total\": 1, -\"authors\": \"Notmuch Test Suite\", -\"subject\": \"json-search-subject\", -\"tags\": [\"inbox\", \"unread\"]}]" - -test_begin_subtest "Search by subject (utf-8):" -add_message [subject]=utf8-sübjéct "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" -output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)" - -test_begin_subtest "Show message: json, utf-8" -add_message "[subject]=\"json-show-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-show-méssage\"" -output=$($NOTMUCH show --format=json "jsön-show-méssage") -test_expect_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 \", \"To\": \"Notmuch Test Suite \", \"Cc\": \"\", \"Bcc\": \"\", \"Date\": \"Sat, 01 Jan 2000 12:00:00 -0000\"}, \"body\": [{\"id\": 1, \"content-type\": \"text/plain\", \"content\": \"jsön-show-méssage\n\"}]}, []]]]" - -test_begin_subtest "Search message: json, utf-8" -add_message "[subject]=\"json-search-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-search-méssage\"" -output=$($NOTMUCH search --format=json "jsön-search-méssage" | notmuch_search_sanitize) -test_expect_equal "$output" "[{\"thread\": \"XXX\", -\"timestamp\": 946728000, -\"matched\": 1, -\"total\": 1, -\"authors\": \"Notmuch Test Suite\", -\"subject\": \"json-search-utf8-body-sübjéct\", -\"tags\": [\"inbox\", \"unread\"]}]" - -test_done diff --git a/test/t0004-thread-naming.sh b/test/t0004-thread-naming.sh deleted file mode 100755 index 31c01532..00000000 --- a/test/t0004-thread-naming.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/bash -test_description="naming of threads with changing subject" -. ./test-lib.sh - -test_begin_subtest 'Generate some messages' -add_message '[subject]="thread-naming: Initial thread subject"' \ - '[date]="Fri, 05 Jan 2001 15:43:56 -0000"' -first=${gen_msg_cnt} -parent=${gen_msg_id} -add_message '[subject]="thread-naming: Older changed subject"' \ - '[date]="Sat, 06 Jan 2001 15:43:56 -0000"' \ - "[in-reply-to]=\<$parent\>" -add_message '[subject]="thread-naming: Newer changed subject"' \ - '[date]="Sun, 07 Jan 2001 15:43:56 -0000"' \ - "[in-reply-to]=\<$parent\>" -add_message '[subject]="thread-naming: Final thread subject"' \ - '[date]="Mon, 08 Jan 2001 15:43:56 -0000"' \ - "[in-reply-to]=\<$parent\>" -final=${gen_msg_id} - -test_begin_subtest "Initial thread name (oldest-first search)" -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" - -test_begin_subtest "Initial thread name (newest-first search)" -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)" - -# Remove oldest and newest messages from search results -$NOTMUCH tag -inbox id:$parent or id:$final - -test_begin_subtest "Changed thread name (oldest-first search)" -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)" - -test_begin_subtest "Changed thread name (newest-first search)" -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)" - -test_begin_subtest "Ignore added reply prefix (Re:)" -add_message '[subject]="Re: thread-naming: Initial thread subject"' \ - '[date]="Tue, 09 Jan 2001 15:43:45 -0000"' \ - "[in-reply-to]=\<$parent\>" -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" - -test_begin_subtest "Ignore added reply prefix (Aw:)" -add_message '[subject]="Aw: thread-naming: Initial thread subject"' \ - '[date]="Wed, 10 Jan 2001 15:43:45 -0000"' \ - "[in-reply-to]=\<$parent\>" -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" - -test_begin_subtest "Ignore added reply prefix (Vs:)" -add_message '[subject]="Vs: thread-naming: Initial thread subject"' \ - '[date]="Thu, 11 Jan 2001 15:43:45 -0000"' \ - "[in-reply-to]=\<$parent\>" -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" - -test_begin_subtest "Ignore added reply prefix (Sv:)" -add_message '[subject]="Sv: thread-naming: Initial thread subject"' \ - '[date]="Fri, 12 Jan 2001 15:43:45 -0000"' \ - "[in-reply-to]=\<$parent\>" -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" - -test_begin_subtest 'Test order of messages in "notmuch show"' -output=$($NOTMUCH show thread-naming | notmuch_show_sanitize) -test_expect_equal "$output" " message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first) - header{ -Notmuch Test Suite (2001-01-05) (unread) -Subject: thread-naming: Initial thread subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:56 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$first) - part} - body} - message} - message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1))) - header{ -Notmuch Test Suite (2001-01-06) (inbox unread) -Subject: thread-naming: Older changed subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Sat, 06 Jan 2001 15:43:56 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$((first + 1))) - part} - body} - message} - message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2))) - header{ -Notmuch Test Suite (2001-01-07) (inbox unread) -Subject: thread-naming: Newer changed subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Sun, 07 Jan 2001 15:43:56 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$((first + 2))) - part} - body} - message} - message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3))) - header{ -Notmuch Test Suite (2001-01-08) (unread) -Subject: thread-naming: Final thread subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Mon, 08 Jan 2001 15:43:56 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$((first + 3))) - part} - body} - message} - message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4))) - header{ -Notmuch Test Suite (2001-01-09) (inbox unread) -Subject: Re: thread-naming: Initial thread subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Tue, 09 Jan 2001 15:43:45 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$((first + 4))) - part} - body} - message} - message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5))) - header{ -Notmuch Test Suite (2001-01-10) (inbox unread) -Subject: Aw: thread-naming: Initial thread subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Wed, 10 Jan 2001 15:43:45 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$((first + 5))) - part} - body} - message} - message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6))) - header{ -Notmuch Test Suite (2001-01-11) (inbox unread) -Subject: Vs: thread-naming: Initial thread subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Thu, 11 Jan 2001 15:43:45 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$((first + 6))) - part} - body} - message} - message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7))) - header{ -Notmuch Test Suite (2001-01-12) (inbox unread) -Subject: Sv: thread-naming: Initial thread subject -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Fri, 12 Jan 2001 15:43:45 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -This is just a test message (#$((first + 7))) - part} - body} - message}" -test_done diff --git a/test/t0005-reply.sh b/test/t0005-reply.sh deleted file mode 100755 index d6b74317..00000000 --- a/test/t0005-reply.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/bin/bash -test_description="\"notmuch reply\" in several variations" -. ./test-lib.sh - -test_begin_subtest "Basic reply" -add_message '[from]="Sender "' \ - [to]=test_suite@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="basic reply test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> basic reply test" - -test_begin_subtest "Multiple recipients" -add_message '[from]="Sender "' \ - '[to]="test_suite@notmuchmail.org, Someone Else "' \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="Multiple recipients"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , Someone Else -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> Multiple recipients" - -test_begin_subtest "Reply with CC" -add_message '[from]="Sender "' \ - [to]=test_suite@notmuchmail.org \ - '[cc]="Other Parties "' \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="reply with CC"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender -Cc: Other Parties -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> reply with CC" - -test_begin_subtest "Reply from alternate address" -add_message '[from]="Sender "' \ - [to]=test_suite_other@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="reply from alternate address"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> reply from alternate address" - -test_begin_subtest "Support for Reply-To" -add_message '[from]="Sender "' \ - [to]=test_suite@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="support for reply-to"' \ - '[reply-to]="Sender "' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> support for reply-to" - -test_begin_subtest "Un-munging Reply-To" -add_message '[from]="Sender "' \ - '[to]="Some List "' \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="Un-munging Reply-To"' \ - '[reply-to]="Evil Munging List "' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , Some List -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> Un-munging Reply-To" - -test_begin_subtest "Message with header of exactly 200 bytes" -add_message '[subject]="This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces"' \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="200-byte header"' -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Notmuch Test Suite wrote: -> 200-byte header" -test_done diff --git a/test/t0006-dump-restore.sh b/test/t0006-dump-restore.sh deleted file mode 100755 index 21f91055..00000000 --- a/test/t0006-dump-restore.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -test_description="\"notmuch dump\" and \"notmuch restore\"" -. ./test-lib.sh - -test_expect_success "Dumping all tags" "generate_message && -notmuch new && -$NOTMUCH dump dump.expected" - -test_begin_subtest "Clearing all tags" -sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected -$NOTMUCH restore clear.expected -$NOTMUCH dump clear.actual -test_expect_equal "$(< clear.actual)" "$(< clear.expected)" - -test_begin_subtest "Restoring original tags" -$NOTMUCH restore dump.expected -$NOTMUCH dump dump.actual -test_expect_equal "$(< dump.actual)" "$(< dump.expected)" - -test_expect_success "Restore with nothing to do" "$NOTMUCH restore dump.expected" - -test_done diff --git a/test/t0007-uuencode.sh b/test/t0007-uuencode.sh deleted file mode 100755 index 3592d5cc..00000000 --- a/test/t0007-uuencode.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -test_description="handling of uuencoded data" -. ./test-lib.sh - -add_message [subject]=uuencodetest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \ -'[body]="This message is used to ensure that notmuch correctly handles a -message containing a block of uuencoded data. First, we have a marker -this content beforeuudata . Then we beging the uunencoded data itself: - -begin 644 bogus-uuencoded-data -M0123456789012345678901234567890123456789012345678901234567890 -MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA. -MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA -MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE -MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY -MSEARCH RESULT. -\\\` -end - -Finally, we have our afteruudata marker as well."' - -test_begin_subtest "Ensure content before uu data is indexed" -output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)" - -test_begin_subtest "Ensure uu data is not indexed" -output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize) -test_expect_equal "$output" "" - -test_begin_subtest "Ensure content after uu data is indexed" -output=$($NOTMUCH search afteruudata | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)" - -test_done diff --git a/test/t0008-threading-out-of-order.sh b/test/t0008-threading-out-of-order.sh deleted file mode 100755 index 47f25c86..00000000 --- a/test/t0008-threading-out-of-order.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -test_description="threading when messages received out of order" -. ./test-lib.sh - -test_begin_subtest "Adding initial child message" -generate_message [body]=foo "[in-reply-to]=\" [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Searching returns the message" -output=$($NOTMUCH search foo | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)" - -test_begin_subtest "Adding second child message" -generate_message [body]=foo "[in-reply-to]=\" [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Searching returns both messages in one thread" -output=$($NOTMUCH search foo | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)" - -test_begin_subtest "Adding parent message" -generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Searching returns all three messages in one thread" -output=$($NOTMUCH search foo | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)" - -test_done diff --git a/test/t0009-author-reordering.sh b/test/t0009-author-reordering.sh deleted file mode 100755 index d618b858..00000000 --- a/test/t0009-author-reordering.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -test_description="author reordering;" -. ./test-lib.sh - -test_begin_subtest "Adding parent message" -generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest '[from]="User "' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Adding initial child message" -generate_message [body]=findme "[in-reply-to]=\" [subject]=author-reorder-threadtest '[from]="User1 "' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Adding second child message" -generate_message [body]=findme "[in-reply-to]=\" [subject]=author-reorder-threadtest '[from]="User2 "' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Searching when all three messages match" -output=$($NOTMUCH search findme | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)" - -test_begin_subtest "Searching when two messages match" -output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)" - -test_begin_subtest "Searching when only one message matches" -output=$($NOTMUCH search User2 | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)" - -test_begin_subtest "Searching when only first message matches" -output=$($NOTMUCH search User | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)" - -test_done diff --git a/test/t0010-from-line-heuristics.sh b/test/t0010-from-line-heuristics.sh deleted file mode 100755 index 613917c9..00000000 --- a/test/t0010-from-line-heuristics.sh +++ /dev/null @@ -1,205 +0,0 @@ -#!/bin/bash -test_description="From line heuristics (with multiple configured addresses)" -. ./test-lib.sh - -test_begin_subtest "Magic from guessing (nothing to go on)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (Envelope-to:)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (X-Original-To:)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (Received: .. for ..)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ - by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\ - for ; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (Received: domain)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ - by mail.otherdomain.org (some MTA) with ESMTP id 12345678\ - Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - - -test_begin_subtest "Testing From line heuristics (with single configured address)" -sed -i -e "s/^other_email.*//" "${NOTMUCH_CONFIG}" - -test_begin_subtest "Magic from guessing (nothing to go on)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (Envelope-to:)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[header]="Envelope-To: test_suite_other@notmuchmail.org"' \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (X-Original-To:)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - '[header]="X-Original-To: test_suite_other@notmuchmail.org"' \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (Received: .. for ..)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ - by mail.notmuchmail.org (some MTA) with ESMTP id 12345678\ - for ; Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_begin_subtest "Magic from guessing (Received: domain)" -add_message '[from]="Sender "' \ - [to]=mailinglist@notmuchmail.org \ - [subject]=notmuch-reply-test \ - "[header]=\"Received: from mail.example.com (mail.example.com [1.1.1.1])\ - by mail.otherdomain.org (some MTA) with ESMTP id 12345678\ - Sat, 10 Apr 2010 07:54:51 -0400 (EDT)\"" \ - '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ - '[body]="from guessing test"' - -output=$($NOTMUCH reply id:${gen_msg_id}) -test_expect_equal "$output" "From: Notmuch Test Suite -Subject: Re: notmuch-reply-test -To: Sender , mailinglist@notmuchmail.org -Bcc: test_suite@notmuchmail.org -In-Reply-To: <${gen_msg_id}> -References: <${gen_msg_id}> - -On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: -> from guessing test" - -test_done diff --git a/test/t0011-long-msgid.sh b/test/t0011-long-msgid.sh deleted file mode 100755 index 1f55d716..00000000 --- a/test/t0011-long-msgid.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -test_description="Testing messages with ridiculously-long message IDs" -. ./test-lib.sh - -test_begin_subtest "Referencing long ID before adding" -generate_message '[subject]="Reference of ridiculously-long message ID"' \ - "[references]=\" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Adding message with long ID" -generate_message '[subject]="A ridiculously-long message ID"' \ - "[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Referencing long ID after adding" -generate_message '[subject]="Reply to ridiculously-long message ID"' \ - "[in-reply-to]=\" -output=$(NOTMUCH_NEW) -test_expect_equal "$output" "Added 1 new message to the database." - -test_begin_subtest "Ensure all messages were threaded together" -output=$($NOTMUCH search 'subject:"a ridiculously-long message ID"' | notmuch_search_sanitize) -test_expect_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)" - -test_done diff --git a/test/t0012-encoding-issues.sh b/test/t0012-encoding-issues.sh deleted file mode 100755 index 73ca62ad..00000000 --- a/test/t0012-encoding-issues.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -test_description="Testing encoding issues" -. ./test-lib.sh - -test_begin_subtest "Message with text of unknown charset" -add_message '[content-type]="text/plain; charset=unknown-8bit"' \ - "[body]=irrelevant" -output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) -test_expect_equal "$output" " message{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001 - header{ -Notmuch Test Suite (2001-01-05) (inbox unread) -Subject: Test message #1 -From: Notmuch Test Suite -To: Notmuch Test Suite -Date: Tue, 05 Jan 2001 15:43:57 -0000 - header} - body{ - part{ ID: 1, Content-type: text/plain -irrelevant - part} - body} - message}" - -test_done diff --git a/test/thread-naming b/test/thread-naming new file mode 100755 index 00000000..31c01532 --- /dev/null +++ b/test/thread-naming @@ -0,0 +1,182 @@ +#!/bin/bash +test_description="naming of threads with changing subject" +. ./test-lib.sh + +test_begin_subtest 'Generate some messages' +add_message '[subject]="thread-naming: Initial thread subject"' \ + '[date]="Fri, 05 Jan 2001 15:43:56 -0000"' +first=${gen_msg_cnt} +parent=${gen_msg_id} +add_message '[subject]="thread-naming: Older changed subject"' \ + '[date]="Sat, 06 Jan 2001 15:43:56 -0000"' \ + "[in-reply-to]=\<$parent\>" +add_message '[subject]="thread-naming: Newer changed subject"' \ + '[date]="Sun, 07 Jan 2001 15:43:56 -0000"' \ + "[in-reply-to]=\<$parent\>" +add_message '[subject]="thread-naming: Final thread subject"' \ + '[date]="Mon, 08 Jan 2001 15:43:56 -0000"' \ + "[in-reply-to]=\<$parent\>" +final=${gen_msg_id} + +test_begin_subtest "Initial thread name (oldest-first search)" +output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" + +test_begin_subtest "Initial thread name (newest-first search)" +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)" + +# Remove oldest and newest messages from search results +$NOTMUCH tag -inbox id:$parent or id:$final + +test_begin_subtest "Changed thread name (oldest-first search)" +output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)" + +test_begin_subtest "Changed thread name (newest-first search)" +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)" + +test_begin_subtest "Ignore added reply prefix (Re:)" +add_message '[subject]="Re: thread-naming: Initial thread subject"' \ + '[date]="Tue, 09 Jan 2001 15:43:45 -0000"' \ + "[in-reply-to]=\<$parent\>" +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-09 [3/5] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" + +test_begin_subtest "Ignore added reply prefix (Aw:)" +add_message '[subject]="Aw: thread-naming: Initial thread subject"' \ + '[date]="Wed, 10 Jan 2001 15:43:45 -0000"' \ + "[in-reply-to]=\<$parent\>" +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-10 [4/6] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" + +test_begin_subtest "Ignore added reply prefix (Vs:)" +add_message '[subject]="Vs: thread-naming: Initial thread subject"' \ + '[date]="Thu, 11 Jan 2001 15:43:45 -0000"' \ + "[in-reply-to]=\<$parent\>" +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-11 [5/7] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" + +test_begin_subtest "Ignore added reply prefix (Sv:)" +add_message '[subject]="Sv: thread-naming: Initial thread subject"' \ + '[date]="Fri, 12 Jan 2001 15:43:45 -0000"' \ + "[in-reply-to]=\<$parent\>" +output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2001-01-12 [6/8] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" + +test_begin_subtest 'Test order of messages in "notmuch show"' +output=$($NOTMUCH show thread-naming | notmuch_show_sanitize) +test_expect_equal "$output" " message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first) + header{ +Notmuch Test Suite (2001-01-05) (unread) +Subject: thread-naming: Initial thread subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Fri, 05 Jan 2001 15:43:56 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$first) + part} + body} + message} + message{ id:msg-$(printf "%03d" $((first + 1)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 1))) + header{ +Notmuch Test Suite (2001-01-06) (inbox unread) +Subject: thread-naming: Older changed subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Sat, 06 Jan 2001 15:43:56 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$((first + 1))) + part} + body} + message} + message{ id:msg-$(printf "%03d" $((first + 2)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 2))) + header{ +Notmuch Test Suite (2001-01-07) (inbox unread) +Subject: thread-naming: Newer changed subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Sun, 07 Jan 2001 15:43:56 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$((first + 2))) + part} + body} + message} + message{ id:msg-$(printf "%03d" $((first + 3)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 3))) + header{ +Notmuch Test Suite (2001-01-08) (unread) +Subject: thread-naming: Final thread subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Mon, 08 Jan 2001 15:43:56 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$((first + 3))) + part} + body} + message} + message{ id:msg-$(printf "%03d" $((first + 4)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 4))) + header{ +Notmuch Test Suite (2001-01-09) (inbox unread) +Subject: Re: thread-naming: Initial thread subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Tue, 09 Jan 2001 15:43:45 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$((first + 4))) + part} + body} + message} + message{ id:msg-$(printf "%03d" $((first + 5)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 5))) + header{ +Notmuch Test Suite (2001-01-10) (inbox unread) +Subject: Aw: thread-naming: Initial thread subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Wed, 10 Jan 2001 15:43:45 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$((first + 5))) + part} + body} + message} + message{ id:msg-$(printf "%03d" $((first + 6)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 6))) + header{ +Notmuch Test Suite (2001-01-11) (inbox unread) +Subject: Vs: thread-naming: Initial thread subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Thu, 11 Jan 2001 15:43:45 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$((first + 6))) + part} + body} + message} + message{ id:msg-$(printf "%03d" $((first + 7)))@notmuch-test-suite depth:1 match:1 filename:/XXX/mail/msg-$(printf "%03d" $((first + 7))) + header{ +Notmuch Test Suite (2001-01-12) (inbox unread) +Subject: Sv: thread-naming: Initial thread subject +From: Notmuch Test Suite +To: Notmuch Test Suite +Date: Fri, 12 Jan 2001 15:43:45 -0000 + header} + body{ + part{ ID: 1, Content-type: text/plain +This is just a test message (#$((first + 7))) + part} + body} + message}" +test_done diff --git a/test/threading-out-of-order b/test/threading-out-of-order new file mode 100755 index 00000000..47f25c86 --- /dev/null +++ b/test/threading-out-of-order @@ -0,0 +1,32 @@ +#!/bin/bash +test_description="threading when messages received out of order" +. ./test-lib.sh + +test_begin_subtest "Adding initial child message" +generate_message [body]=foo "[in-reply-to]=\" [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Searching returns the message" +output=$($NOTMUCH search foo | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)" + +test_begin_subtest "Adding second child message" +generate_message [body]=foo "[in-reply-to]=\" [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Searching returns both messages in one thread" +output=$($NOTMUCH search foo | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)" + +test_begin_subtest "Adding parent message" +generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." + +test_begin_subtest "Searching returns all three messages in one thread" +output=$($NOTMUCH search foo | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)" + +test_done diff --git a/test/uuencode b/test/uuencode new file mode 100755 index 00000000..3592d5cc --- /dev/null +++ b/test/uuencode @@ -0,0 +1,34 @@ +#!/bin/bash +test_description="handling of uuencoded data" +. ./test-lib.sh + +add_message [subject]=uuencodetest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \ +'[body]="This message is used to ensure that notmuch correctly handles a +message containing a block of uuencoded data. First, we have a marker +this content beforeuudata . Then we beging the uunencoded data itself: + +begin 644 bogus-uuencoded-data +M0123456789012345678901234567890123456789012345678901234567890 +MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA. +MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA +MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE +MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY +MSEARCH RESULT. +\\\` +end + +Finally, we have our afteruudata marker as well."' + +test_begin_subtest "Ensure content before uu data is indexed" +output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)" + +test_begin_subtest "Ensure uu data is not indexed" +output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize) +test_expect_equal "$output" "" + +test_begin_subtest "Ensure content after uu data is indexed" +output=$($NOTMUCH search afteruudata | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)" + +test_done