Merge branch 'sb/pack-protocol-mention-smart-http'
[gitweb.git] / t / t9001-send-email.sh
index 051305545c414481b6883fa619ffb39134187de0..a3663da49ba075c14d6aa66c3cd3d9eb0c7d2f62 100755 (executable)
@@ -818,25 +818,19 @@ test_expect_success $PREREQ '--confirm=compose' '
 '
 
 test_expect_success $PREREQ 'confirm by default (due to cc)' '
-       CONFIRM=$(git config --get sendemail.confirm) &&
+       test_when_finished git config sendemail.confirm never &&
        git config --unset sendemail.confirm &&
        test_confirm
-       ret="$?"
-       git config sendemail.confirm ${CONFIRM:-never}
-       test $ret = "0"
 '
 
 test_expect_success $PREREQ 'confirm by default (due to --compose)' '
-       CONFIRM=$(git config --get sendemail.confirm) &&
+       test_when_finished git config sendemail.confirm never &&
        git config --unset sendemail.confirm &&
        test_confirm --suppress-cc=all --compose
-       ret="$?"
-       git config sendemail.confirm ${CONFIRM:-never}
-       test $ret = "0"
 '
 
 test_expect_success $PREREQ 'confirm detects EOF (inform assumes y)' '
-       CONFIRM=$(git config --get sendemail.confirm) &&
+       test_when_finished git config sendemail.confirm never &&
        git config --unset sendemail.confirm &&
        rm -fr outdir &&
        git format-patch -2 -o outdir &&
@@ -846,13 +840,10 @@ test_expect_success $PREREQ 'confirm detects EOF (inform assumes y)' '
                        --to=nobody@example.com \
                        --smtp-server="$(pwd)/fake.sendmail" \
                        outdir/*.patch </dev/null
-       ret="$?"
-       git config sendemail.confirm ${CONFIRM:-never}
-       test $ret = "0"
 '
 
 test_expect_success $PREREQ 'confirm detects EOF (auto causes failure)' '
-       CONFIRM=$(git config --get sendemail.confirm) &&
+       test_when_finished git config sendemail.confirm never &&
        git config sendemail.confirm auto &&
        GIT_SEND_EMAIL_NOTTY=1 &&
        export GIT_SEND_EMAIL_NOTTY &&
@@ -861,13 +852,10 @@ test_expect_success $PREREQ 'confirm detects EOF (auto causes failure)' '
                        --to=nobody@example.com \
                        --smtp-server="$(pwd)/fake.sendmail" \
                        $patches </dev/null
-       ret="$?"
-       git config sendemail.confirm ${CONFIRM:-never}
-       test $ret = "0"
 '
 
 test_expect_success $PREREQ 'confirm does not loop forever' '
-       CONFIRM=$(git config --get sendemail.confirm) &&
+       test_when_finished git config sendemail.confirm never &&
        git config sendemail.confirm auto &&
        GIT_SEND_EMAIL_NOTTY=1 &&
        export GIT_SEND_EMAIL_NOTTY &&
@@ -876,9 +864,6 @@ test_expect_success $PREREQ 'confirm does not loop forever' '
                        --to=nobody@example.com \
                        --smtp-server="$(pwd)/fake.sendmail" \
                        $patches
-       ret="$?"
-       git config sendemail.confirm ${CONFIRM:-never}
-       test $ret = "0"
 '
 
 test_expect_success $PREREQ 'utf8 Cc is rfc2047 encoded' '
@@ -1325,7 +1310,7 @@ test_expect_success $PREREQ 'sendemail.transferencoding=7bit fails on 8bit data'
 
 test_expect_success $PREREQ '--transfer-encoding overrides sendemail.transferEncoding' '
        clean_fake_sendmail &&
-       git config sendemail.transferEncoding 8bit
+       git config sendemail.transferEncoding 8bit &&
        test_must_fail git send-email \
                --transfer-encoding=7bit \
                --smtp-server="$(pwd)/fake.sendmail" \
@@ -1552,7 +1537,7 @@ test_expect_success $PREREQ 'sendemail.aliasfiletype=mailrc' '
 
 test_expect_success $PREREQ 'sendemail.aliasfile=~/.mailrc' '
        clean_fake_sendmail &&
-       echo "alias sbd  someone@example.org" >~/.mailrc &&
+       echo "alias sbd  someone@example.org" >"$HOME/.mailrc" &&
        git config --replace-all sendemail.aliasesfile "~/.mailrc" &&
        git config sendemail.aliasfiletype mailrc &&
        git send-email \
@@ -1564,6 +1549,33 @@ test_expect_success $PREREQ 'sendemail.aliasfile=~/.mailrc' '
        grep "^!someone@example\.org!$" commandline1
 '
 
+test_expect_success $PREREQ 'sendemail.aliasfiletype=sendmail' '
+       clean_fake_sendmail && rm -fr outdir &&
+       git format-patch -1 -o outdir &&
+       cat >>.tmp-email-aliases <<-\EOF &&
+       alice: Alice W Land <awol@example.com>
+       bob: Robert Bobbyton <bob@example.com>
+       # this is a comment
+          # this is also a comment
+       chloe: chloe@example.com
+       abgroup: alice, bob
+       bcgrp: bob, chloe, Other <o@example.com>
+       EOF
+       git config --replace-all sendemail.aliasesfile \
+               "$(pwd)/.tmp-email-aliases" &&
+       git config sendemail.aliasfiletype sendmail &&
+       git send-email \
+               --from="Example <nobody@example.com>" \
+               --to=alice --to=bcgrp \
+               --smtp-server="$(pwd)/fake.sendmail" \
+               outdir/0001-*.patch \
+               2>errors >out &&
+       grep "^!awol@example\.com!$" commandline1 &&
+       grep "^!bob@example\.com!$" commandline1 &&
+       grep "^!chloe@example\.com!$" commandline1 &&
+       grep "^!o@example\.com!$" commandline1
+'
+
 do_xmailer_test () {
        expected=$1 params=$2 &&
        git format-patch -1 &&