git/t/t5100-mailinfo.sh
Kirill Smelkov c32815f903 mailinfo: tests for RFC2047 examples
Also as suggested by Junio, in order to try to catch other MIME
problems, test cases from the "8. Examples" section of RFC2047 are added
to t5100 testsuite as well.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
2009-01-28 16:23:21 -08:00

80 lines
1.9 KiB
Bash
Executable file

#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
test_description='git mailinfo and git mailsplit test'
. ./test-lib.sh
test_expect_success 'split sample box' \
'git mailsplit -o. ../t5100/sample.mbox >last &&
last=`cat last` &&
echo total is $last &&
test `cat last` = 13'
for mail in `echo 00*`
do
test_expect_success "mailinfo $mail" \
"git mailinfo -u msg$mail patch$mail <$mail >info$mail &&
echo msg &&
diff ../t5100/msg$mail msg$mail &&
echo patch &&
diff ../t5100/patch$mail patch$mail &&
echo info &&
diff ../t5100/info$mail info$mail"
done
test_expect_success 'split box with rfc2047 samples' \
'mkdir rfc2047 &&
git mailsplit -orfc2047 "$TEST_DIRECTORY"/t5100/rfc2047-samples.mbox \
>rfc2047/last &&
last=`cat rfc2047/last` &&
echo total is $last &&
test `cat rfc2047/last` = 11'
for mail in `echo rfc2047/00*`
do
test_expect_success "mailinfo $mail" '
git mailinfo -u $mail-msg $mail-patch <$mail >$mail-info &&
echo msg &&
test_cmp "$TEST_DIRECTORY"/t5100/empty $mail-msg &&
echo patch &&
test_cmp "$TEST_DIRECTORY"/t5100/empty $mail-patch &&
echo info &&
test_cmp "$TEST_DIRECTORY"/t5100/rfc2047-info-$(basename $mail) $mail-info
'
done
test_expect_success 'respect NULs' '
git mailsplit -d3 -o. ../t5100/nul-plain &&
cmp ../t5100/nul-plain 001 &&
(cat 001 | git mailinfo msg patch) &&
test 4 = $(wc -l < patch)
'
test_expect_success 'Preserve NULs out of MIME encoded message' '
git mailsplit -d5 -o. ../t5100/nul-b64.in &&
cmp ../t5100/nul-b64.in 00001 &&
git mailinfo msg patch <00001 &&
cmp ../t5100/nul-b64.expect patch
'
test_expect_success 'mailinfo on from header without name works' '
mkdir info-from &&
git mailsplit -oinfo-from "$TEST_DIRECTORY"/t5100/info-from.in &&
test_cmp "$TEST_DIRECTORY"/t5100/info-from.in info-from/0001 &&
git mailinfo info-from/msg info-from/patch \
<info-from/0001 >info-from/out &&
test_cmp "$TEST_DIRECTORY"/t5100/info-from.expect info-from/out
'
test_done