]> git.notmuchmail.org Git - notmuch/blobdiff - test/T220-reply.sh
lib/database: delete stemmer on destroy
[notmuch] / test / T220-reply.sh
index b0d854a1fc000a3a3b85089eb7c4ea5d6ab538cf..4e9984d2ed12f857f1e5de8999e6e7aae868f9cb 100755 (executable)
@@ -1,23 +1,35 @@
 #!/usr/bin/env bash
 test_description="\"notmuch reply\" in several variations"
-. ./test-lib.sh
+. $(dirname "$0")/test-lib.sh || exit 1
 
-test_begin_subtest "Basic reply"
 add_message '[from]="Sender <sender@example.com>"' \
             [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 <test_suite@notmuchmail.org>
+cat <<EOF > basic.expected
+From: Notmuch Test Suite <test_suite@notmuchmail.org>
 Subject: Re: notmuch-reply-test
 To: Sender <sender@example.com>
 In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> basic reply test"
+> basic reply test
+OK
+EOF
+
+test_begin_subtest "Basic reply"
+notmuch reply id:${gen_msg_id} >OUTPUT 2>&1 && echo OK >> OUTPUT
+test_expect_equal_file basic.expected OUTPUT
+
+if [ $NOTMUCH_HAVE_SFSEXP -eq 1 ]; then
+
+    test_begin_subtest "Basic reply (query=sexp)"
+    notmuch reply --query=sexp "(id ${gen_msg_id})" >OUTPUT 2>&1 && echo OK >> OUTPUT
+    test_expect_equal_file basic.expected OUTPUT
+fi
 
 test_begin_subtest "Multiple recipients"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -26,7 +38,7 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
            '[body]="Multiple recipients"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
 Subject: Re: notmuch-reply-test
 To: Sender <sender@example.com>, Someone Else <someone@example.com>
@@ -34,7 +46,8 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> Multiple recipients"
+> Multiple recipients
+OK"
 
 test_begin_subtest "Reply with CC"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -44,7 +57,7 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
            '[body]="reply with CC"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
 Subject: Re: notmuch-reply-test
 To: Sender <sender@example.com>
@@ -53,7 +66,8 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> reply with CC"
+> reply with CC
+OK"
 
 test_begin_subtest "Reply from alternate address"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -62,7 +76,7 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
            '[body]="reply from alternate address"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
 Subject: Re: notmuch-reply-test
 To: Sender <sender@example.com>
@@ -70,7 +84,8 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> reply from alternate address"
+> reply from alternate address
+OK"
 
 test_begin_subtest "Reply from address in named group list"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -80,7 +95,7 @@ add_message '[from]="Sender <sender@example.com>"' \
             '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
             '[body]="Reply from address in named group list"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
 Subject: Re: notmuch-reply-test
 To: Sender <sender@example.com>, someone@example.com
@@ -88,7 +103,8 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> Reply from address in named group list"
+> Reply from address in named group list
+OK"
 
 test_begin_subtest "Support for Reply-To"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -98,7 +114,7 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[body]="support for reply-to"' \
            '[reply-to]="Sender <elsewhere@example.com>"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
 Subject: Re: notmuch-reply-test
 To: Sender <elsewhere@example.com>
@@ -106,7 +122,8 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> support for reply-to"
+> support for reply-to
+OK"
 
 test_begin_subtest "Un-munging Reply-To"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -116,7 +133,45 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[body]="Un-munging Reply-To"' \
            '[reply-to]="Evil Munging List <list@example.com>"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+Subject: Re: notmuch-reply-test
+To: Sender <sender@example.com>, Some List <list@example.com>
+In-Reply-To: <${gen_msg_id}>
+References: <${gen_msg_id}>
+
+On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
+> Un-munging Reply-To
+OK"
+
+test_begin_subtest "Un-munging Reply-To With Exact Match"
+add_message '[from]="Sender <sender@example.com>"' \
+           '[to]="Some List <list@example.com>"' \
+            [subject]=notmuch-reply-test \
+           '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+           '[body]="Un-munging Reply-To"' \
+           '[reply-to]="Some List <list@example.com>"'
+
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+Subject: Re: notmuch-reply-test
+To: Sender <sender@example.com>, Some List <list@example.com>
+In-Reply-To: <${gen_msg_id}>
+References: <${gen_msg_id}>
+
+On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
+> Un-munging Reply-To
+OK"
+
+test_begin_subtest "Un-munging Reply-To With Raw addr-spec"
+add_message '[from]="Sender <sender@example.com>"' \
+           '[to]="Some List <list@example.com>"' \
+            [subject]=notmuch-reply-test \
+           '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+           '[body]="Un-munging Reply-To"' \
+           '[reply-to]="list@example.com"'
+
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
 Subject: Re: notmuch-reply-test
 To: Sender <sender@example.com>, Some List <list@example.com>
@@ -124,22 +179,25 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> Un-munging Reply-To"
+> Un-munging Reply-To
+OK"
 
 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})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
 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
+To: 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 <test_suite@notmuchmail.org> wrote:
-> 200-byte header"
+> 200-byte header
+OK"
 
 test_begin_subtest "From guessing: Envelope-To"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -149,7 +207,7 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[body]="From guessing"' \
            '[header]="Envelope-To: test_suite_other@notmuchmail.org"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
 Subject: Re: From guessing
 To: Sender <sender@example.com>, Recipient <recipient@example.com>
@@ -157,7 +215,8 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> From guessing"
+> From guessing
+OK"
 
 test_begin_subtest "From guessing: X-Original-To"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -167,7 +226,7 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[body]="From guessing"' \
            '[header]="X-Original-To: test_suite@otherdomain.org"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@otherdomain.org>
 Subject: Re: From guessing
 To: Sender <sender@example.com>, Recipient <recipient@example.com>
@@ -175,7 +234,8 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> From guessing"
+> From guessing
+OK"
 
 test_begin_subtest "From guessing: Delivered-To"
 add_message '[from]="Sender <sender@example.com>"' \
@@ -185,7 +245,7 @@ add_message '[from]="Sender <sender@example.com>"' \
            '[body]="From guessing"' \
            '[header]="Delivered-To: test_suite_other@notmuchmail.org"'
 
-output=$(notmuch reply id:${gen_msg_id})
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
 test_expect_equal "$output" "From: Notmuch Test Suite <test_suite_other@notmuchmail.org>
 Subject: Re: From guessing
 To: Sender <sender@example.com>, Recipient <recipient@example.com>
@@ -193,7 +253,28 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
-> From guessing"
+> From guessing
+OK"
+
+test_begin_subtest "From guessing: multiple Delivered-To"
+add_message '[from]="Sender <sender@example.com>"' \
+           '[to]="Recipient <recipient@example.com>"' \
+           '[subject]="From guessing"' \
+           '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \
+           '[body]="From guessing"' \
+           '[header]="Delivered-To: test_suite_other@notmuchmail.org
+Delivered-To: test_suite@notmuchmail.org"'
+
+output=$(notmuch reply id:${gen_msg_id} 2>&1 && echo OK)
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+Subject: Re: From guessing
+To: Sender <sender@example.com>, Recipient <recipient@example.com>
+In-Reply-To: <${gen_msg_id}>
+References: <${gen_msg_id}>
+
+On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
+> From guessing
+OK"
 
 test_begin_subtest "Reply with RFC 2047-encoded headers"
 add_message '[subject]="=?iso-8859-1?q?=e0=df=e7?="' \
@@ -204,7 +285,7 @@ add_message '[subject]="=?iso-8859-1?q?=e0=df=e7?="' \
 # GMime happens to change from Q- to B-encoding.  We canonicalize the
 # case of the encoding and charset because different versions of GMime
 # capitalize the encoding differently.
-output=$(notmuch reply id:${gen_msg_id} | perl -pe 's/=\?[^?]+\?[bB]\?/lc($&)/ge')
+output=$( (notmuch reply id:${gen_msg_id} 2>&1 && echo OK) | perl -pe 's/=\?[^?]+\?[bB]\?/lc($&)/ge')
 test_expect_equal "$output" "\
 From: Notmuch Test Suite <test_suite@notmuchmail.org>
 Subject: Re: =?iso-8859-1?b?4N/n?=
@@ -213,12 +294,13 @@ In-Reply-To: <${gen_msg_id}>
 References: <${gen_msg_id}>
 
 On Tue, 05 Jan 2010 15:43:56 -0000, ☃ <snowman@example.com> wrote:
-> Encoding"
+> Encoding
+OK"
 
 test_begin_subtest "Reply with RFC 2047-encoded headers (JSON)"
-output=$(notmuch reply --format=json id:${gen_msg_id})
+output=$(echo '{"answer":' && notmuch reply --format=json id:${gen_msg_id} 2>&1 && echo ', "success": "OK"}')
 test_expect_equal_json "$output" '
-{
+{  "answer": {
     "original": {
         "body": [
             {
@@ -227,9 +309,10 @@ test_expect_equal_json "$output" '
                 "id": 1
             }
         ],
+        "crypto": {},
         "date_relative": "2010-01-05",
         "excluded": false,
-        "filename": "'${MAIL_DIR}'/msg-012",
+        "filename": ["'${MAIL_DIR}'/msg-015"],
         "headers": {
             "Date": "Tue, 05 Jan 2010 15:43:56 +0000",
             "From": "\u2603 <snowman@example.com>",
@@ -251,7 +334,22 @@ test_expect_equal_json "$output" '
         "Subject": "Re: \u00e0\u00df\u00e7",
         "To": "\u2603 <snowman@example.com>"
     }
+  },
+  "success": "OK"
 }'
 
+test_begin_subtest "Reply to a message with multiple Cc headers"
+add_email_corpus broken
+output=$(notmuch reply id:multiple-cc@example.org 2>&1 && echo OK)
+test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
+Subject: Re: wowsers!
+To: Alice <alice@example.org>, Daniel <daniel@example.org>
+Cc: Bob <bob@example.org>, Charles <charles@example.org>
+In-Reply-To: <multiple-cc@example.org>
+References: <multiple-cc@example.org>
+
+On Thu, 16 Jun 2016 22:14:41 -0400, Alice <alice@example.org> wrote:
+> Note the Cc: and cc: headers.
+OK"
 
 test_done