X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/fb0773a44c676a24e722c08c2a259e688ecac606..HEAD:/test/mhshow/test-textcharset?ds=sidebyside diff --git a/test/mhshow/test-textcharset b/test/mhshow/test-textcharset index a66db46f..c2e78022 100755 --- a/test/mhshow/test-textcharset +++ b/test/mhshow/test-textcharset @@ -20,13 +20,15 @@ if test "$ICONV_ENABLED" -eq 0; then test_skip 'test-textcharset requires that nmh have been built with iconv' fi -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 expected="$MH_TEST_DIR"/$$.expected actual="$MH_TEST_DIR"/$$.actual # check charset conversion +start_test "charset conversion" msgfile=`mhpath new` +msgnum=`basename $msgfile` cat >"$msgfile" <<'EOF' From: foo@example.edu To: bar@example.edu @@ -39,7 +41,8 @@ Date: Sun, 18 Dec 2005 00:52:39 +0100 4 =F7 2 =3D 2 EOF -cat >"$expected" <<'EOF' +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : check charset conversion cat >>"$MH" <<'EOF' mhshow-show-text/plain: echo %{charset} @@ -60,7 +63,9 @@ EOF # check expansion of %{charset} by itself +start_test "expansion of %{charset} by itself" msgfile=`mhpath new` +msgnum=`basename $msgfile` cat >"$msgfile" <<'EOF' From: foo@example.edu To: bar@example.edu @@ -73,7 +78,8 @@ Date: Sun, 18 Dec 2005 00:52:39 +0100 4 =F7 2 =3D 2 EOF -cat >"$expected" <<'EOF' +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : check %{charset} by itself # check expansion of empty %{charset} by itself +start_test "expansion of empty %{charset} by itself" msgfile=`mhpath new` +omsgnum=$msgnum +msgnum=`basename $msgfile` cat >"$msgfile" <<'EOF' From: foo@example.edu To: bar@example.edu @@ -102,7 +111,8 @@ Date: Sun, 18 Dec 2005 00:52:39 +0100 4 =F7 2 =3D 2 EOF -cat >"$expected" <<'EOF' +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : check empty %{charset} by itself grep -v 'mhshow-show-text/plain:' "$MH" >"$MH.new" @@ -124,7 +134,9 @@ mhshow-show-text/plain: charset=%{charset}; echo ${charset:+-I $charset} EOF # check expansion of embedded %{charset} with no text following -cat >"$expected" <<'EOF' +start_test "expansion of embedded %{charset} with no text following" +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +run_prog mhshow prev >"$actual" 2>&1 # NB: "mhshow prev" !!! +check "$expected" "$actual" : check embedded %{charset} with no text # check expansion of empty embedded %{charset} with no text following -cat >"$expected" <<'EOF' +start_test "expansion of empty embedded %{charset} with no text following" +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : check empty embedded %{charset} with no text following sed -e 's%\(mhshow-show-text/plain:.*\)%\1 file%' "$MH" >"$MH.new" mv -f "$MH.new" "$MH" # check expansion of embedded %{charset} with text following -cat >"$expected" <<'EOF' +start_test "expansion of embedded %{charset} with text following" +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +run_prog mhshow prev >"$actual" 2>&1 # NB: "mhshow prev" !!! +check "$expected" "$actual" : check embedded %{charset} with text following # check expansion of empty embedded %{charset} with text following -cat >"$expected" <<'EOF' +start_test "expansion of empty embedded %{charset} with text following" +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : check empty embedded %{charset} with text following sed -e 's/charset/method/g' "$MH" >"$MH.new" mv -f "$MH.new" "$MH" # check parameter value quoting +start_test "parameter value quoting" msgfile=`mhpath new` +msgnum=`basename $msgfile` cat >"$msgfile" <<'EOF' From: foo@example.edu To: bar@example.edu @@ -207,7 +227,10 @@ Date: Sun, 18 Dec 2005 00:52:39 +0100 4 =F7 2 =3D 2 EOF -cat >"$expected" <<'EOF' +cat >"$expected" <>"$expected" <<'EOF' Date: Sun, 18 Dec 2005 00:52:39 +0100 To: bar@example.edu From: foo@example.edu @@ -219,14 +242,16 @@ MIME-Version: 1.0 EOF run_prog mhshow last >"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : check parameter value quoting sed -e 's/method/unknown/g' "$MH" >"$MH.new" mv -f "$MH.new" "$MH" # check that unknown parameter is not expanded +start_test "that unknown parameter is not expanded" msgfile=`mhpath new` +msgnum=`basename $msgfile` cat >"$msgfile" <<'EOF' From: foo@example.edu To: bar@example.edu @@ -239,7 +264,8 @@ Date: Sun, 18 Dec 2005 00:52:39 +0100 4 =F7 2 =3D 2 EOF -cat >"$expected" <<'EOF' +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : check unknown parameter is not expanded grep -v '^mhshow-show-text/plain: ' "$MH" >>"$MH.new" @@ -261,7 +287,9 @@ mhshow-show-text/plain: true '%F' %F EOF # check parameter value quoting with text following +start_test "parameter value quoting with text following" msgfile=`mhpath new` +msgnum=`basename $msgfile` cat >"$msgfile" <<'EOF' From: foo@example.edu To: bar@example.edu @@ -273,7 +301,8 @@ Date: Sun, 18 Dec 2005 00:52:39 +0100 This is a test. EOF -cat >"$expected" <<'EOF' +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : parameter value quoting with text following + +# check malicious parameter value quoting +start_test "malicious parameter value quoting" +msgfile=`mhpath new` +msgnum=`basename $msgfile` +cat >"$msgfile" <<'EOF' +Subject: shows difficulty of quoting with /bin/sh -c +MIME-Version: 1.0 +Content-Type: text/html; charset="oops'; echo should not see this!" + +EOF + +cat >"$expected" <&1 | squeeze_whitespace >"$actual" +check "$expected" "$actual" : malicious parameter value quoting # # test a large file that needs to be converted to UTF-8 @@ -293,6 +340,7 @@ check "$expected" "$actual" grep -v '^mhshow-show-text/plain: ' "$MH" >>"$MH.new" mv -f "$MH.new" "$MH" msgfile=`mhpath new` +msgnum=`basename $msgfile` cat >"$msgfile" <<'EOF' From: foo@example.edu To: bar@example.edu @@ -727,7 +775,8 @@ one of the glass buildings. =93How strange!=94 she exclaimed, drawing a long breath. EOF -cat >"$expected" <<'EOF' +cat >"$expected" <"$actual" 2>&1 -check "$expected" "$actual" +check "$expected" "$actual" : large file conversion to UTF-8 +finish_test exit $failed