diff --git a/test/t0001-new.sh b/test/t0001-new.sh index 97726e72..4c6952fd 100755 --- a/test/t0001-new.sh +++ b/test/t0001-new.sh @@ -1,164 +1,165 @@ #!/bin/bash -test_description="\"notmuch new\" in several variations" +test_description='"notmuch new" in several variations' . ./test-lib.sh -test_expect_success "No new messages" ' -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail." -' -test_expect_success "Single new message" ' -generate_message && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." +test_begin_subtest "No new messages" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail." -' -test_expect_success "Multiple new messages" ' -generate_message && -generate_message && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 2 new messages to the database." -' -test_expect_success "No new messages (non-empty DB)" ' -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail." +test_begin_subtest "Single new message" +generate_message +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." -' -test_expect_success "New directories" ' -rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch && -mkdir "${MAIL_DIR}"/def && -mkdir "${MAIL_DIR}"/ghi && -generate_message [dir]=def && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." +test_begin_subtest "Multiple new messages" +generate_message +generate_message +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 2 new messages to the database." -' -test_expect_success "Alternate inode order" ' -rm -rf "${MAIL_DIR}"/.notmuch && -mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc && -rm "${MAIL_DIR}"/def/* && -generate_message [dir]=abc && +test_begin_subtest "No new messages (non-empty DB)" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail." -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Message moved in" ' -rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch && -generate_message && -tmp_msg_filename=tmp/"$gen_msg_filename" && -mkdir -p "$(dirname "$tmp_msg_filename")" && -mv "$gen_msg_filename" "$tmp_msg_filename" && -increment_mtime "${MAIL_DIR}" && -$NOTMUCH new > /dev/null && -mv "$tmp_msg_filename" "$gen_msg_filename" && -increment_mtime "${MAIL_DIR}" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." +test_begin_subtest "New directories" +rm -rf "${MAIL_DIR}"/* "${MAIL_DIR}"/.notmuch +mkdir "${MAIL_DIR}"/def +mkdir "${MAIL_DIR}"/ghi +generate_message [dir]=def -' -test_expect_success "Renamed message" ' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." -generate_message && -$NOTMUCH new > /dev/null && -mv "$gen_msg_filename" "${gen_msg_filename}"-renamed && -increment_mtime "${MAIL_DIR}" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail. Detected 1 file rename." -' -test_expect_success "Deleted message" ' +test_begin_subtest "Alternate inode order" -rm "${gen_msg_filename}"-renamed && -increment_mtime "${MAIL_DIR}" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail. Removed 1 message." +rm -rf "${MAIL_DIR}"/.notmuch +mv "${MAIL_DIR}"/ghi "${MAIL_DIR}"/abc +rm "${MAIL_DIR}"/def/* +generate_message [dir]=abc -' -test_expect_success "Renamed directory" ' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 1 new message to the database." -generate_message [dir]=dir && -generate_message [dir]=dir && -generate_message [dir]=dir && -$NOTMUCH new > /dev/null && +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." -mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed && -increment_mtime "${MAIL_DIR}" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail. Detected 3 file renames." +test_begin_subtest "Renamed message" -' -test_expect_success "Deleted directory" ' +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." -rm -rf "${MAIL_DIR}"/dir-renamed && -increment_mtime "${MAIL_DIR}" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail. Removed 3 messages." +test_begin_subtest "Deleted message" -' -test_expect_success "New directory (at end of list)" ' +rm "${gen_msg_filename}"-renamed +increment_mtime "${MAIL_DIR}" +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Removed 1 message." -generate_message [dir]=zzz && -generate_message [dir]=zzz && -generate_message [dir]=zzz && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 3 new messages to the database." +test_begin_subtest "Renamed directory" -' -test_expect_success "Deleted directory (end of list)" ' +generate_message [dir]=dir +generate_message [dir]=dir +generate_message [dir]=dir -rm -rf "${MAIL_DIR}"/zzz && -increment_mtime "${MAIL_DIR}" && +$NOTMUCH new > /dev/null -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail. Removed 3 messages." +mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed +increment_mtime "${MAIL_DIR}" -' -test_expect_success "New symlink to directory" ' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Detected 3 file renames." -rm -rf "${MAIL_DIR}"/.notmuch && -mv "${MAIL_DIR}" "$PWD"/actual_maildir && -mkdir "${MAIL_DIR}" && -ln -s "$PWD"/actual_maildir "${MAIL_DIR}"/symlink && +test_begin_subtest "Deleted directory" -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." +rm -rf "${MAIL_DIR}"/dir-renamed +increment_mtime "${MAIL_DIR}" -' -test_expect_success "New symlink to a file" ' -generate_message && -external_msg_filename="$PWD"/external/"$(basename "$gen_msg_filename")" && -mkdir -p "$(dirname "$external_msg_filename")" && -mv "$gen_msg_filename" "$external_msg_filename" && -ln -s "$external_msg_filename" "$gen_msg_filename" && -increment_mtime "${MAIL_DIR}" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "No new mail. Removed 3 messages." -' -test_expect_success "New two-level directory" ' -generate_message [dir]=two/levels && -generate_message [dir]=two/levels && -generate_message [dir]=two/levels && +test_begin_subtest "New directory (at end of list)" -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 3 new messages to the database." +generate_message [dir]=zzz +generate_message [dir]=zzz +generate_message [dir]=zzz -' -test_expect_success "Deleted two-level directory" ' +output=$(NOTMUCH_NEW) +test_expect_equal "$output" "Added 3 new messages to the database." -rm -rf "${MAIL_DIR}"/two && -increment_mtime "${MAIL_DIR}" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "No new mail. Removed 3 messages." -' +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 index 7de4d47b..865f5bb6 100755 --- a/test/t0002-search.sh +++ b/test/t0002-search.sh @@ -1,92 +1,79 @@ #!/bin/bash -test_description="\"notmuch search\" in several variations" +test_description='"notmuch search" in several variations' . ./test-lib.sh -test_expect_success "Search body" ' -add_message "[subject]=\"body search\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [body]=bodysearchtest && -output=$($NOTMUCH search bodysearchtest | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)" +test_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_expect_success "Search by from:" ' -add_message "[subject]=\"search by from\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom && -output=$($NOTMUCH search from:searchbyfrom | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)" +test_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_expect_success "Search by to:" ' -add_message "[subject]=\"search by to\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto && -output=$($NOTMUCH search to:searchbyto | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)" +test_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_expect_success "Search by subject:" ' -add_message [subject]=subjectsearchtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$($NOTMUCH search subject:subjectsearchtest | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)" +test_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_expect_success "Search by id:" ' -add_message "[subject]=\"search by id\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$($NOTMUCH search id:${gen_msg_id} | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)" +test_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_expect_success "Search by tag:" ' -add_message "[subject]=\"search by tag\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -$NOTMUCH tag +searchbytag id:${gen_msg_id} && -output=$($NOTMUCH search tag:searchbytag | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)" +test_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_expect_success "Search by thread:" ' -add_message "[subject]=\"search by thread\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -thread_id=$($NOTMUCH search id:${gen_msg_id} | sed -e "s/thread:\([a-f0-9]*\).*/\1/") && -output=$($NOTMUCH search thread:${thread_id} | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)" +test_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_expect_success "Search body (phrase)" ' -add_message "[subject]=\"body search (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"body search (phrase)\"" && -add_message "[subject]=\"negative result\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"This phrase should not match the body search\"" && -output=$($NOTMUCH search "\"body search (phrase)\"" | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)" +test_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_expect_success "Search by from: (address)" ' -add_message "[subject]=\"search by from (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [from]=searchbyfrom@example.com && -output=$($NOTMUCH search from:searchbyfrom@example.com | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)" +test_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_expect_success "Search by from: (name)" ' -add_message "[subject]=\"search by from (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[from]=\"Search By From Name \"" && -output=$($NOTMUCH search from:"Search By From Name" | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)" +test_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_expect_success "Search by to: (address)" ' -add_message "[subject]=\"search by to (address)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" [to]=searchbyto@example.com && -output=$($NOTMUCH search to:searchbyto@example.com | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)" +test_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_expect_success "Search by to: (name)" ' -add_message "[subject]=\"search by to (name)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[to]=\"Search By To Name \"" && -output=$($NOTMUCH search to:"Search By To Name" | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)" +test_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_expect_success "Search by subject: (phrase)" ' -add_message "[subject]=\"subject search test (phrase)\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -add_message "[subject]=\"this phrase should not match the subject search test\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$($NOTMUCH search "subject:\"subject search test (phrase)\"" | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)" +test_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_expect_success "Search for all messages (\"*\"):" ' -output=$($NOTMUCH search "*" | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread) +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) @@ -102,10 +89,9 @@ thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unr thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread) thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)" -' -test_expect_success "Search body (utf-8):" ' -add_message "[subject]=\"utf8-message-body-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"message body utf8: bödý\"" && -output=$($NOTMUCH search "bödý" | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)" -' +test_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 index 810262c4..24976131 100755 --- a/test/t0003-json.sh +++ b/test/t0003-json.sh @@ -2,16 +2,15 @@ test_description="--format=json output" . ./test-lib.sh -test_expect_success "Show message: json" ' -add_message "[subject]=\"json-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-show-message\"" && -output=$($NOTMUCH show --format=json "json-show-message") && -pass_if_equal "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true, \"filename\": \"${gen_msg_filename}\", \"timestamp\": 946728000, \"date_relative\": \"2000-01-01\", \"tags\": [\"inbox\",\"unread\"], \"headers\": {\"Subject\": \"json-show-subject\", \"From\": \"Notmuch Test Suite \", \"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 "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_expect_success "Search message: json" ' -add_message "[subject]=\"json-search-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"json-search-message\"" && -output=$($NOTMUCH search --format=json "json-search-message" | notmuch_search_sanitize) && -pass_if_equal "$output" "[{\"thread\": \"XXX\", +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, @@ -19,28 +18,25 @@ pass_if_equal "$output" "[{\"thread\": \"XXX\", \"subject\": \"json-search-subject\", \"tags\": [\"inbox\", \"unread\"]}]" -' -test_expect_success "Search by subject (utf-8):" ' -add_message [subject]=utf8-sübjéct "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$($NOTMUCH search subject:utf8-sübjéct | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-sübjéct (inbox unread)" +test_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_expect_success "Show message: json, utf-8" ' -add_message "[subject]=\"json-show-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-show-méssage\"" && -output=$($NOTMUCH show --format=json "jsön-show-méssage") && -pass_if_equal "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true, \"filename\": \"${gen_msg_filename}\", \"timestamp\": 946728000, \"date_relative\": \"2000-01-01\", \"tags\": [\"inbox\",\"unread\"], \"headers\": {\"Subject\": \"json-show-utf8-body-sübjéct\", \"From\": \"Notmuch Test Suite \", \"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 "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_expect_success "Search message: json, utf-8" ' -add_message "[subject]=\"json-search-utf8-body-sübjéct\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[body]=\"jsön-search-méssage\"" && -output=$($NOTMUCH search --format=json "jsön-search-méssage" | notmuch_search_sanitize) && -pass_if_equal "$output" "[{\"thread\": \"XXX\", +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 index c77f7264..31c01532 100755 --- a/test/t0004-thread-naming.sh +++ b/test/t0004-thread-naming.sh @@ -1,81 +1,73 @@ #!/bin/bash test_description="naming of threads with changing subject" . ./test-lib.sh -test_expect_success 'Generate some messages' ' -add_message "[subject]=\"thread-naming: Initial thread subject\"" \ - "[date]=\"Fri, 05 Jan 2001 15:43:56 -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\>" && + +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_expect_success "Initial thread name (oldest-first search)" ' -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2001-01-05 [4/4] Notmuch Test Suite; thread-naming: Initial thread subject (inbox unread)" +test_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_expect_success "Initial thread name (newest-first search)" ' -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2001-01-08 [4/4] Notmuch Test Suite; thread-naming: Final thread subject (inbox unread)" +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_expect_success "Changed thread name (oldest-first search)" ' -output=$($NOTMUCH search --sort=oldest-first thread-naming and tag:inbox | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2001-01-06 [2/4] Notmuch Test Suite; thread-naming: Older changed subject (inbox unread)" +test_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_expect_success "Changed thread name (newest-first search)" ' -output=$($NOTMUCH search --sort=newest-first thread-naming and tag:inbox | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2001-01-07 [2/4] Notmuch Test Suite; thread-naming: Newer changed subject (inbox unread)" +test_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_expect_success "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) && -pass_if_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 (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_expect_success "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) && -pass_if_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 (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_expect_success "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) && -pass_if_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 (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_expect_success "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) && -pass_if_equal "$output" "thread:XXX 2001-01-12 [6/8] 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_expect_success "Test order of messages in \"notmuch show\"" ' -output=$($NOTMUCH show thread-naming | notmuch_show_sanitize) && -pass_if_equal "$output" " message{ id:msg-$(printf "%03d" $first)@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-$(printf "%03d" $first) +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 @@ -187,5 +179,4 @@ 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 index 97e1006b..d6b74317 100755 --- a/test/t0005-reply.sh +++ b/test/t0005-reply.sh @@ -2,15 +2,15 @@ test_description="\"notmuch reply\" in several variations" . ./test-lib.sh -test_expect_success "Basic reply" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="basic reply test"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -20,16 +20,15 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > basic reply test" -' -test_expect_success "Multiple recipients" ' -add_message "[from]=\"Sender \"" \ - "[to]=\"test_suite@notmuchmail.org, Someone Else \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="Multiple recipients"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -39,17 +38,16 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > Multiple recipients" -' -test_expect_success "Reply with CC" ' -add_message "[from]=\"Sender \"" \ +test_begin_subtest "Reply with CC" +add_message '[from]="Sender "' \ [to]=test_suite@notmuchmail.org \ - "[cc]=\"Other Parties \"" \ + '[cc]="Other Parties "' \ [subject]=notmuch-reply-test \ - "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \ - "[body]=\"reply with CC\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="reply with CC"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -60,16 +58,15 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > reply with CC" -' -test_expect_success "Reply from alternate address" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="reply from alternate address"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -79,17 +76,16 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > reply from alternate address" -' -test_expect_success "Support for Reply-To" ' -add_message "[from]=\"Sender \"" \ +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 \"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="support for reply-to"' \ + '[reply-to]="Sender "' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -99,17 +95,16 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > support for reply-to" -' -test_expect_success "Un-munging Reply-To" ' -add_message "[from]=\"Sender \"" \ - "[to]=\"Some List \"" \ +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 \"" && + '[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}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -118,14 +113,13 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > Un-munging Reply-To" -' -test_expect_success "Message with header of exactly 200 bytes" ' -add_message "[subject]=\"This subject is exactly 200 bytes in length. Other than its length there is not much of note here. Note that the length of 200 bytes includes the Subject: and Re: prefixes with two spaces\"" \ - "[date]=\"Tue, 05 Jan 2010 15:43:56 -0000\"" \ - "[body]=\"200-byte header\"" && -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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}> @@ -133,5 +127,4 @@ 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 index f971181e..21f91055 100755 --- a/test/t0006-dump-restore.sh +++ b/test/t0006-dump-restore.sh @@ -1,30 +1,22 @@ #!/bin/bash test_description="\"notmuch dump\" and \"notmuch restore\"" . ./test-lib.sh -test_expect_success 'Generate some message' ' -generate_message && -notmuch new -' -test_expect_success "Dumping all tags" ' -$NOTMUCH dump dump.expected && -pass_if_equal "$?" "0" -' -test_expect_success "Clearing all tags" ' +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 && -pass_if_equal "$(< clear.actual)" "$(< clear.expected)" +$NOTMUCH restore clear.expected +$NOTMUCH dump clear.actual +test_expect_equal "$(< clear.actual)" "$(< clear.expected)" -' -test_expect_success "Restoring original tags" ' -$NOTMUCH restore dump.expected && -$NOTMUCH dump dump.actual && -pass_if_equal "$(< dump.actual)" "$(< dump.expected)" +test_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_expect_success "Restore with nothing to do" ' -$NOTMUCH restore dump.expected && -pass_if_equal "$?" "0" -' test_done diff --git a/test/t0007-uuencode.sh b/test/t0007-uuencode.sh index e2906102..3592d5cc 100755 --- a/test/t0007-uuencode.sh +++ b/test/t0007-uuencode.sh @@ -1,10 +1,9 @@ #!/bin/bash test_description="handling of uuencoded data" . ./test-lib.sh -test_expect_success 'Generate message' ' -add_message [subject]=uuencodetest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \ -"[body]=\"This message is used to ensure that notmuch correctly handles a +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: @@ -18,19 +17,18 @@ MSEARCH RESULT. \\\` end -Finally, we have our afteruudata marker as well.\"" +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_expect_success "Ensure content before uu data is indexed" ' -output=$($NOTMUCH search beforeuudata | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)" -' -test_expect_success "Ensure uu data is not indexed" ' -output=$($NOTMUCH search DURINGUUDATA | notmuch_search_sanitize) && -pass_if_equal "$output" "" -' -test_expect_success "Ensure content after uu data is indexed" ' -output=$($NOTMUCH search afteruudata | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; uuencodetest (inbox unread)" -' test_done diff --git a/test/t0008-threading-out-of-order.sh b/test/t0008-threading-out-of-order.sh index 9f360b7e..47f25c86 100755 --- a/test/t0008-threading-out-of-order.sh +++ b/test/t0008-threading-out-of-order.sh @@ -1,31 +1,32 @@ #!/bin/bash test_description="threading when messages received out of order" . ./test-lib.sh -test_expect_success "Adding initial child message" ' -generate_message [body]=foo "[in-reply-to]=\" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Searching returns the message" ' -output=$($NOTMUCH search foo | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; brokenthreadtest (inbox unread)" -' -test_expect_success "Adding second child message" ' -generate_message [body]=foo "[in-reply-to]=\" [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Searching returns both messages in one thread" ' -output=$($NOTMUCH search foo | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [2/2] Notmuch Test Suite; brokenthreadtest (inbox unread)" -' -test_expect_success "Adding parent message" ' -generate_message [body]=foo [id]=parent-id [subject]=brokenthreadtest "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Searching returns all three messages in one thread" ' -output=$($NOTMUCH search foo | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] Notmuch Test Suite; brokenthreadtest (inbox unread)" -' + +test_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 index b9933418..d618b858 100755 --- a/test/t0009-author-reordering.sh +++ b/test/t0009-author-reordering.sh @@ -1,35 +1,36 @@ #!/bin/bash test_description="author reordering;" . ./test-lib.sh -test_expect_success "Adding parent message" ' -generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest "[from]=\"User \"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Adding initial child message" ' -generate_message [body]=findme "[in-reply-to]=\" [subject]=author-reorder-threadtest "[from]=\"User1 \"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Adding second child message" ' -generate_message [body]=findme "[in-reply-to]=\" [subject]=author-reorder-threadtest "[from]=\"User2 \"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Searching when all three messages match" ' -output=$($NOTMUCH search findme | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)" -' -test_expect_success "Searching when two messages match" ' -output=$($NOTMUCH search User1 or User2 | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)" -' -test_expect_success "Searching when only one message matches" ' -output=$($NOTMUCH search User2 | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)" -' -test_expect_success "Searching when only first message matches" ' -output=$($NOTMUCH search User | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)" -' + +test_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 index 89702b53..613917c9 100755 --- a/test/t0010-from-line-heuristics.sh +++ b/test/t0010-from-line-heuristics.sh @@ -2,15 +2,15 @@ test_description="From line heuristics (with multiple configured addresses)" . ./test-lib.sh -test_expect_success "Magic from guessing (nothing to go on)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -20,17 +20,16 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (Envelope-to:)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[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}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -40,17 +39,16 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (X-Original-To:)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[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}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -60,19 +58,18 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (Received: .. for ..)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -82,19 +79,18 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (Received: domain)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -105,20 +101,18 @@ On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Testing From line heuristics (with single configured address)" ' +test_begin_subtest "Testing From line heuristics (with single configured address)" sed -i -e "s/^other_email.*//" "${NOTMUCH_CONFIG}" -' -test_expect_success "Magic from guessing (nothing to go on)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -128,17 +122,16 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (Envelope-to:)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[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}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -148,17 +141,16 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (X-Original-To:)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[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}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -168,19 +160,18 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (Received: .. for ..)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -190,19 +181,18 @@ References: <${gen_msg_id}> On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: > from guessing test" -' -test_expect_success "Magic from guessing (Received: domain)" ' -add_message "[from]=\"Sender \"" \ +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\"" && + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="from guessing test"' -output=$($NOTMUCH reply id:${gen_msg_id}) && -pass_if_equal "$output" "From: Notmuch Test Suite +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 @@ -211,5 +201,5 @@ 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 index c1cbd9f2..1f55d716 100755 --- a/test/t0011-long-msgid.sh +++ b/test/t0011-long-msgid.sh @@ -2,28 +2,26 @@ test_description="Testing messages with ridiculously-long message IDs" . ./test-lib.sh -test_expect_success "Referencing long ID before adding" ' -generate_message "[subject]=\"Reference of ridiculously-long message ID\"" \ - "[references]=\" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." -' -test_expect_success "Adding message with long ID" ' -generate_message "[subject]=\"A ridiculously-long message ID\"" \ - "[id]=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-" && -output=$(NOTMUCH_NEW) && -pass_if_equal "$output" "Added 1 new message to the database." +test_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_expect_success "Referencing long ID after adding" ' -generate_message "[subject]=\"Reply to ridiculously-long message ID\"" \ - "[in-reply-to]=\" && -output=$(NOTMUCH_NEW) && -pass_if_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_expect_success "Ensure all messages were threaded together" ' -output=$($NOTMUCH search "subject:\"a ridiculously-long message ID\"" | notmuch_search_sanitize) && -pass_if_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)" -' test_done diff --git a/test/t0012-encoding-issues.sh b/test/t0012-encoding-issues.sh index 6a6ceda7..73ca62ad 100755 --- a/test/t0012-encoding-issues.sh +++ b/test/t0012-encoding-issues.sh @@ -2,11 +2,11 @@ test_description="Testing encoding issues" . ./test-lib.sh -test_expect_success "Message with text of unknown charset" ' -add_message "[content-type]=\"text/plain; charset=unknown-8bit\"" \ - "[body]=irrelevant" && -output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) && -pass_if_equal "$output" " message{ id:msg-001@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-001 +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 @@ -20,6 +20,5 @@ irrelevant part} body} message}" -' test_done diff --git a/test/test-lib.sh b/test/test-lib.sh index 35ff3d98..15238705 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -373,19 +373,37 @@ add_message () notmuch new > /dev/null } -pass_if_equal () +test_begin_subtest () { - output=$1 - expected=$2 + test_subtest_name="$1" +} - if [ "$output" = "$expected" ]; then - true - else - testname=$this_test.$test_count - echo "$expected" > $testname.expected - echo "$output" > $testname.output - diff -u $testname.expected $testname.output - false +# Pass test if two arguments match +# +# Note: Unlike all other test_expect_* functions, this function does +# not accept a test name. Instead, the caller should call +# test_begin_subtest before calling this function in order to set the +# name. +test_expect_equal () +{ + test "$#" = 3 && { prereq=$1; shift; } || prereq= + test "$#" = 2 || + error "bug in the test script: not 2 or 3 parameters to test_expect_equal" + + output="$1" + expected="$2" + if ! test_skip "$@" + then + say >&3 "expecting success: diff $output $expected" + if [ "$output" = "$expected" ]; then + test_ok_ "$test_subtest_name" + else + testname=$this_test.$test_count + echo "$expected" > $testname.expected + echo "$output" > $testname.output + test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)" + fi + echo >&3 "" fi }