From: Ken Hornstein Date: Tue, 3 Dec 2013 20:52:00 +0000 (-0500) Subject: First round of tests! Still want to do more before it gets merged. X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/46035648b01cf0b4fc4eefd850c0b8e777a33cc0?hp=68a17c15ed26323a17b6957a95e894f6ba454447 First round of tests! Still want to do more before it gets merged. --- diff --git a/Makefile.am b/Makefile.am index 439ce152..19519569 100644 --- a/Makefile.am +++ b/Makefile.am @@ -63,7 +63,8 @@ TESTS = test/ali/test-ali test/anno/test-anno \ test/install-mh/test-install-mh \ test/locking/test-datalocking test/locking/test-spoollocking \ test/manpages/test-manpages \ - test/mhbuild/test-forw test/mhbuild/test-utf8-body \ + test/mhbuild/test-forw test/mhbuild/test-header-encode \ + test/mhbuild/test-utf8-body \ test/mhfixmsg/test-mhfixmsg \ test/mhlist/test-mhlist test/mhmail/test-mhmail \ test/mhparam/test-mhparam test/mhpath/test-mhpath \ diff --git a/test/mhbuild/test-header-encode b/test/mhbuild/test-header-encode new file mode 100755 index 00000000..b26298ba --- /dev/null +++ b/test/mhbuild/test-header-encode @@ -0,0 +1,118 @@ +#!/bin/sh +###################################################### +# +# Test encoding headers according to RFC 2047 +# +###################################################### + +set -e + +if test -z "${MH_OBJ_DIR}"; then + srcdir=`dirname "$0"`/../.. + MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR +fi + +. "${MH_OBJ_DIR}/test/common.sh" + +setup_test +testname="${MH_TEST_DIR}/$$" + +# +# We're going to hardcode UTF-8 for this test. +# + +LC_ALL=en_US.UTF-8; export LC_ALL + +# +# Basic test of encoding a short subject +# +cat > "${testname}.basic.actual" < +To: Somebody +Subject: This is ä test + +This is a test +EOF + +cat > "${testname}.basic.expected" < +To: Somebody +Subject: =?UTF-8?Q?This_is_=C3=A4_test?= +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" + +This is a test +EOF + +mhbuild "${testname}.basic.actual" + +check "${testname}.basic.actual" "${testname}.basic.expected" 'keep first' + +# +# Make sure we can undo the encoding +# + +run_test 'eval fmttest -outsize max -format "%(decode{subject})" -message -file "${testname}.basic.actual"' 'This is ä test' + +rm -f "${testname}.basic.actual" + +# +# Basic test of encoding a short subject, but with base64 +# +cat > "${testname}.basic.actual" < +To: Somebody +Subject: This is ä test + +This is a test +EOF + +cat > "${testname}.basic.expected" < +To: Somebody +Subject: =?UTF-8?B?VGhpcyBpcyDDpCB0ZXN0?= +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" + +This is a test +EOF + +mhbuild -headerencoding base64 "${testname}.basic.actual" + +check "${testname}.basic.actual" "${testname}.basic.expected" 'keep first' + +run_test 'eval fmttest -outsize max -format "%(decode{subject})" -message -file "${testname}.basic.actual"' 'This is ä test' + +rm -f "${testname}.basic.actual" + +# +# Have a subject that will pick base64 as the shorter encoding +# + +cat > "${testname}.autopick.actual" < +To: Somebody +Subject: This is ä tëst© + +This is a test +EOF + +cat > "${testname}.autopick.expected" < +To: Somebody +Subject: =?UTF-8?B?VGhpcyBpcyDDpCB0w6tzdMKp?= +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" + +This is a test +EOF + +mhbuild "${testname}.autopick.actual" + +check "${testname}.autopick.actual" "${testname}.autopick.expected" 'keep first' + +run_test 'eval fmttest -outsize max -format "%(decode{subject})" -message -file "${testname}.autopick.actual"' 'This is ä tëst©' + +rm -f "${testname}.basic.autopick" + +exit ${failed:-0}