Merge branch 'jk/maint-send-email-compose'
authorJunio C Hamano <gitster@pobox.com>
Wed, 21 May 2008 20:57:50 +0000 (13:57 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 May 2008 20:57:50 +0000 (13:57 -0700)
* jk/maint-send-email-compose:
send-email: rfc2047-quote subject lines with non-ascii characters
send-email: specify content-type of --compose body

Conflicts:

t/t9001-send-email.sh

Due to 065096c (git-send-email.perl: Handle shell metacharacters in
$EDITOR properly, 2008-05-04) which is a backward incompatible change (but
it makes handling of EDITOR consistent with other parts of the system),
the test script t9001 had to be adjusted.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
1  2 
git-send-email.perl
t/t9001-send-email.sh
Simple merge
index 04baa61c0485377d033f4a10d2bb8ceeac1a4686,a4bcd282b609bb522d8f541a857c274996aa6842..3e4eb63f1c4d63d6ff38c79ff1f7a47fa3aa1597
@@@ -167,70 -166,63 +167,129 @@@ test_expect_success 'second message is 
        grep "Subject:.*Second" msgtxt2
  '
  
 -       echo "echo utf8 body: àéìöú >>\$1"
 +cat >expected-show-all-headers <<\EOF
 +0001-Second.patch
 +(mbox) Adding cc: A <author@example.com> from line 'From: A <author@example.com>'
 +Dry-OK. Log says:
 +Server: relay.example.com
 +MAIL FROM:<from@example.com>
 +RCPT TO:<to@example.com>,<cc@example.com>,<author@example.com>
 +From: Example <from@example.com>
 +To: to@example.com
 +Cc: cc@example.com, A <author@example.com>
 +Subject: [PATCH 1/1] Second.
 +Date: DATE-STRING
 +Message-Id: MESSAGE-ID-STRING
 +X-Mailer: X-MAILER-STRING
 +
 +Result: OK
 +EOF
 +
 +test_expect_success 'sendemail.cc set' '
 +      git config sendemail.cc cc@example.com &&
 +      git send-email \
 +              --dry-run \
 +              --from="Example <from@example.com>" \
 +              --to=to@example.com \
 +              --smtp-server relay.example.com \
 +              $patches |
 +      sed     -e "s/^\(Date:\).*/\1 DATE-STRING/" \
 +              -e "s/^\(Message-Id:\).*/\1 MESSAGE-ID-STRING/" \
 +              -e "s/^\(X-Mailer:\).*/\1 X-MAILER-STRING/" \
 +              >actual-show-all-headers &&
 +      test_cmp expected-show-all-headers actual-show-all-headers
 +'
 +
 +cat >expected-show-all-headers <<\EOF
 +0001-Second.patch
 +(mbox) Adding cc: A <author@example.com> from line 'From: A <author@example.com>'
 +Dry-OK. Log says:
 +Server: relay.example.com
 +MAIL FROM:<from@example.com>
 +RCPT TO:<to@example.com>,<author@example.com>
 +From: Example <from@example.com>
 +To: to@example.com
 +Cc: A <author@example.com>
 +Subject: [PATCH 1/1] Second.
 +Date: DATE-STRING
 +Message-Id: MESSAGE-ID-STRING
 +X-Mailer: X-MAILER-STRING
 +
 +Result: OK
 +EOF
 +
 +test_expect_success 'sendemail.cc unset' '
 +      git config --unset sendemail.cc &&
 +      git send-email \
 +              --dry-run \
 +              --from="Example <from@example.com>" \
 +              --to=to@example.com \
 +              --smtp-server relay.example.com \
 +              $patches |
 +      sed     -e "s/^\(Date:\).*/\1 DATE-STRING/" \
 +              -e "s/^\(Message-Id:\).*/\1 MESSAGE-ID-STRING/" \
 +              -e "s/^\(X-Mailer:\).*/\1 X-MAILER-STRING/" \
 +              >actual-show-all-headers &&
 +      test_cmp expected-show-all-headers actual-show-all-headers
 +'
 +
+ test_expect_success '--compose adds MIME for utf8 body' '
+       clean_fake_sendmail &&
+       (echo "#!/bin/sh" &&
 -        GIT_EDITOR=$(pwd)/fake-editor-utf8 \
++       echo "echo utf8 body: àéìöú >>\"\$1\""
+       ) >fake-editor-utf8 &&
+       chmod +x fake-editor-utf8 &&
+       echo y | \
 -       echo " echo utf8 body: àéìöú) >\$1"
++        GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \
+         GIT_SEND_EMAIL_NOTTY=1 \
+         git send-email \
+         --compose --subject foo \
+         --from="Example <nobody@example.com>" \
+         --to=nobody@example.com \
+         --smtp-server="$(pwd)/fake.sendmail" \
+         $patches &&
+       grep "^utf8 body" msgtxt1 &&
+       grep "^Content-Type: text/plain; charset=utf-8" msgtxt1
+ '
+ test_expect_success '--compose respects user mime type' '
+       clean_fake_sendmail &&
+       (echo "#!/bin/sh" &&
+        echo "(echo MIME-Version: 1.0"
+        echo " echo Content-Type: text/plain\\; charset=iso-8859-1"
+        echo " echo Content-Transfer-Encoding: 8bit"
+        echo " echo Subject: foo"
+        echo " echo "
 -        GIT_EDITOR=$(pwd)/fake-editor-utf8-mime \
++       echo " echo utf8 body: àéìöú) >\"\$1\""
+       ) >fake-editor-utf8-mime &&
+       chmod +x fake-editor-utf8-mime &&
+       echo y | \
 -        GIT_EDITOR=$(pwd)/fake-editor \
++        GIT_EDITOR="\"$(pwd)/fake-editor-utf8-mime\"" \
+         GIT_SEND_EMAIL_NOTTY=1 \
+         git send-email \
+         --compose --subject foo \
+         --from="Example <nobody@example.com>" \
+         --to=nobody@example.com \
+         --smtp-server="$(pwd)/fake.sendmail" \
+         $patches &&
+       grep "^utf8 body" msgtxt1 &&
+       grep "^Content-Type: text/plain; charset=iso-8859-1" msgtxt1 &&
+       ! grep "^Content-Type: text/plain; charset=utf-8" msgtxt1
+ '
+ test_expect_success '--compose adds MIME for utf8 subject' '
+       clean_fake_sendmail &&
+       echo y | \
++        GIT_EDITOR="\"$(pwd)/fake-editor\"" \
+         GIT_SEND_EMAIL_NOTTY=1 \
+         git send-email \
+         --compose --subject utf8-sübjëct \
+         --from="Example <nobody@example.com>" \
+         --to=nobody@example.com \
+         --smtp-server="$(pwd)/fake.sendmail" \
+         $patches &&
+       grep "^fake edit" msgtxt1 &&
+       grep "^Subject: =?utf-8?q?utf8-s=C3=BCbj=C3=ABct?=" msgtxt1
+ '
  test_done