t9001: refactor sendmail aliases test infrastructure
authorEric Sunshine <sunshine@sunshineco.com>
Sun, 31 May 2015 22:29:30 +0000 (18:29 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 1 Jun 2015 22:53:13 +0000 (15:53 -0700)
Several new tests of sendmail aliases parsing will be added in a
subsequent patch, so factor out functionality common to all of them
into a new helper function.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t9001-send-email.sh
index a3663da49ba075c14d6aa66c3cd3d9eb0c7d2f62..1012fa3ad674634ac456f2a6b17997c251ee5547 100755 (executable)
@@ -1549,10 +1549,35 @@ 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 &&
+test_sendmail_aliases () {
+       msg="$1" && shift &&
+       expect="$@" &&
+       cat >.tmp-email-aliases &&
+
+       test_expect_success $PREREQ "$msg" '
+               clean_fake_sendmail && rm -fr outdir &&
+               git format-patch -1 -o outdir &&
+               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 &&
+               for i in $expect
+               do
+                       grep "^!$i!$" commandline1 || return 1
+               done
+       '
+}
+
+test_sendmail_aliases 'sendemail.aliasfiletype=sendmail' \
+       'awol@example\.com' \
+       'bob@example\.com' \
+       'chloe@example\.com' \
+       'o@example\.com' <<-\EOF
        alice: Alice W Land <awol@example.com>
        bob: Robert Bobbyton <bob@example.com>
        # this is a comment
@@ -1561,20 +1586,6 @@ test_expect_success $PREREQ 'sendemail.aliasfiletype=sendmail' '
        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 &&