string_list: Fix argument order for string_list_lookup
[gitweb.git] / t / t9001-send-email.sh
index 84a7f03d46ac4a624afd7d6d0d3c6198e41219c1..640b3d2bb41636e271d0d55aabeade38ded612bb 100755 (executable)
@@ -95,6 +95,40 @@ test_expect_success \
     'Verify commandline' \
     'test_cmp expected commandline1'
 
+test_expect_success 'Send patches with --envelope-sender' '
+    clean_fake_sendmail &&
+     git send-email --envelope-sender="Patch Contributer <patch@example.com>" --suppress-cc=sob --from="Example <nobody@example.com>" --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors
+'
+
+cat >expected <<\EOF
+!patch@example.com!
+!-i!
+!nobody@example.com!
+!author@example.com!
+!one@example.com!
+!two@example.com!
+EOF
+test_expect_success \
+    'Verify commandline' \
+    'test_cmp expected commandline1'
+
+test_expect_success 'Send patches with --envelope-sender=auto' '
+    clean_fake_sendmail &&
+     git send-email --envelope-sender=auto --suppress-cc=sob --from="Example <nobody@example.com>" --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors
+'
+
+cat >expected <<\EOF
+!nobody@example.com!
+!-i!
+!nobody@example.com!
+!author@example.com!
+!one@example.com!
+!two@example.com!
+EOF
+test_expect_success \
+    'Verify commandline' \
+    'test_cmp expected commandline1'
+
 cat >expected-show-all-headers <<\EOF
 0001-Second.patch
 (mbox) Adding cc: A <author@example.com> from line 'From: A <author@example.com>'
@@ -152,8 +186,8 @@ test_expect_success 'Prompting works' '
                --smtp-server="$(pwd)/fake.sendmail" \
                $patches \
                2>errors &&
-               grep "^From: Example <from@example.com>$" msgtxt1 &&
-               grep "^To: to@example.com$" msgtxt1
+               grep "^From: Example <from@example.com>\$" msgtxt1 &&
+               grep "^To: to@example.com\$" msgtxt1
 '
 
 test_expect_success 'cccmd works' '
@@ -202,7 +236,7 @@ test_expect_success 'Author From: in message body' '
                --to=nobody@example.com \
                --smtp-server="$(pwd)/fake.sendmail" \
                $patches &&
-       sed "1,/^$/d" < msgtxt1 > msgbody1
+       sed "1,/^\$/d" < msgtxt1 > msgbody1
        grep "From: A <author@example.com>" msgbody1
 '
 
@@ -213,7 +247,7 @@ test_expect_success 'Author From: not in message body' '
                --to=nobody@example.com \
                --smtp-server="$(pwd)/fake.sendmail" \
                $patches &&
-       sed "1,/^$/d" < msgtxt1 > msgbody1
+       sed "1,/^\$/d" < msgtxt1 > msgbody1
        ! grep "From: A <author@example.com>" msgbody1
 '
 
@@ -769,4 +803,119 @@ test_expect_success 'threading but no chain-reply-to' '
        grep "In-Reply-To: " stdout
 '
 
+test_expect_success 'warning with an implicit --chain-reply-to' '
+       git send-email \
+       --dry-run \
+       --from="Example <nobody@example.com>" \
+       --to=nobody@example.com \
+       outdir/000?-*.patch 2>errors >out &&
+       grep "no-chain-reply-to" errors
+'
+
+test_expect_success 'no warning with an explicit --chain-reply-to' '
+       git send-email \
+       --dry-run \
+       --from="Example <nobody@example.com>" \
+       --to=nobody@example.com \
+       --chain-reply-to \
+       outdir/000?-*.patch 2>errors >out &&
+       ! grep "no-chain-reply-to" errors
+'
+
+test_expect_success 'no warning with an explicit --no-chain-reply-to' '
+       git send-email \
+       --dry-run \
+       --from="Example <nobody@example.com>" \
+       --to=nobody@example.com \
+       --nochain-reply-to \
+       outdir/000?-*.patch 2>errors >out &&
+       ! grep "no-chain-reply-to" errors
+'
+
+test_expect_success 'no warning with sendemail.chainreplyto = false' '
+       git config sendemail.chainreplyto false &&
+       git send-email \
+       --dry-run \
+       --from="Example <nobody@example.com>" \
+       --to=nobody@example.com \
+       outdir/000?-*.patch 2>errors >out &&
+       ! grep "no-chain-reply-to" errors
+'
+
+test_expect_success 'no warning with sendemail.chainreplyto = true' '
+       git config sendemail.chainreplyto true &&
+       git send-email \
+       --dry-run \
+       --from="Example <nobody@example.com>" \
+       --to=nobody@example.com \
+       outdir/000?-*.patch 2>errors >out &&
+       ! grep "no-chain-reply-to" errors
+'
+
+test_expect_success 'sendemail.to works' '
+       git config --replace-all sendemail.to "Somebody <somebody@ex.com>" &&
+       git send-email \
+               --dry-run \
+               --from="Example <nobody@example.com>" \
+               $patches $patches >stdout &&
+       grep "To: Somebody <somebody@ex.com>" stdout
+'
+
+test_expect_success '--no-to overrides sendemail.to' '
+       git send-email \
+               --dry-run \
+               --from="Example <nobody@example.com>" \
+               --no-to \
+               --to=nobody@example.com \
+               $patches $patches >stdout &&
+       grep "To: nobody@example.com" stdout &&
+       ! grep "To: Somebody <somebody@ex.com>" stdout
+'
+
+test_expect_success 'sendemail.cc works' '
+       git config --replace-all sendemail.cc "Somebody <somebody@ex.com>" &&
+       git send-email \
+               --dry-run \
+               --from="Example <nobody@example.com>" \
+               --to=nobody@example.com \
+               $patches $patches >stdout &&
+       grep "Cc: Somebody <somebody@ex.com>" stdout
+'
+
+test_expect_success '--no-cc overrides sendemail.cc' '
+       git send-email \
+               --dry-run \
+               --from="Example <nobody@example.com>" \
+               --no-cc \
+               --cc=bodies@example.com \
+               --to=nobody@example.com \
+               $patches $patches >stdout &&
+       grep "Cc: bodies@example.com" stdout &&
+       ! grep "Cc: Somebody <somebody@ex.com>" stdout
+'
+
+test_expect_success 'sendemail.bcc works' '
+       git config --replace-all sendemail.bcc "Other <other@ex.com>" &&
+       git send-email \
+               --dry-run \
+               --from="Example <nobody@example.com>" \
+               --to=nobody@example.com \
+               --smtp-server relay.example.com \
+               $patches $patches >stdout &&
+       grep "RCPT TO:<other@ex.com>" stdout
+'
+
+test_expect_success '--no-bcc overrides sendemail.bcc' '
+       git send-email \
+               --dry-run \
+               --from="Example <nobody@example.com>" \
+               --no-bcc \
+               --bcc=bodies@example.com \
+               --to=nobody@example.com \
+               --smtp-server relay.example.com \
+               $patches $patches >stdout &&
+       grep "RCPT TO:<bodies@example.com>" stdout &&
+       ! grep "RCPT TO:<other@ex.com>" stdout
+'
+
 test_done