]> diplodocus.org Git - nmh/blobdiff - test/dist/test-dist
Tell make that uip/mhical.c depends on sbr/icalparse.h
[nmh] / test / dist / test-dist
index 769406cbb89d8a8a64bf7d250e441405352ce43c..722d87193ce86e6f2d21262909041fc77d5c4dc1 100755 (executable)
@@ -16,11 +16,33 @@ fi
 
 setup_test
 
 
 setup_test
 
+check_exit '-eq 1' dist -
+check_exit '-eq 1' dist -editor
+check_exit '-eq 1' dist -editor foo -editor
+check_exit '-eq 1' dist -nowhatnowproc -whatnowproc foo -whatnowproc
+check_exit '-eq 1' dist -file
+check_exit '-eq 1' dist -file foo -file bar
+check_exit '-eq 1' dist -form
+check_exit '-eq 1' dist -draftfolder
+check_exit '-eq 1' dist -draftfolder foo -draftfolder bar
+check_exit '-eq 1' dist -draftmessage
+check_exit '-eq 1' dist -draftmessage 42 -draftmessage 314
+check_exit '-eq 1' dist -from
+check_exit '-eq 1' dist -to
+check_exit '-eq 1' dist -cc
+check_exit '-eq 1' dist -fcc
+check_exit '-eq 1' dist -width
+check_exit '-eq 1' dist -width 42 -width 0
+check_exit '-eq 1' dist -atfile -noatfile -
+check_exit '-eq 1' dist + @
+check_exit '-eq 1' dist 42 314
+check_exit '-eq 1' dist -file foo 42
+
 expected=$MH_TEST_DIR/$$.expected
 expected_err=$MH_TEST_DIR/$$.expected_err
 actual=$MH_TEST_DIR/$$.actual
 actual_err=$MH_TEST_DIR/$$.actual_err
 expected=$MH_TEST_DIR/$$.expected
 expected_err=$MH_TEST_DIR/$$.expected_err
 actual=$MH_TEST_DIR/$$.actual
 actual_err=$MH_TEST_DIR/$$.actual_err
-localmbox=`${MH_LIB_DIR}/ap -format "%(localmbox)" 0`
+localmbox=`${MH_LIBEXEC_DIR}/ap -format "%(localmbox)" 0 | sed 's/^<\(.*\)>$/\1/'`
 
 #### Use sendmail/pipe below to override default mts.
 mts_fakesendmail="${MHMTSCONF}-fakesendmail"
 
 #### Use sendmail/pipe below to override default mts.
 mts_fakesendmail="${MHMTSCONF}-fakesendmail"
@@ -31,12 +53,12 @@ MHMTSCONF="$mts_fakesendmail"
 # arguments: dist switches
 test_dist ()
 {
 # arguments: dist switches
 test_dist ()
 {
-  printf 'send\n' | dist "$@" >/dev/null
+  printf 'send\n' | run_prog dist "$@" >/dev/null
 
   # fakesendmail drops the message and any cc's into this mbox.
   mbox="${MH_TEST_DIR}"/Mail/fakesendmail.mbox
   inc -silent -file "$mbox"
 
   # fakesendmail drops the message and any cc's into this mbox.
   mbox="${MH_TEST_DIR}"/Mail/fakesendmail.mbox
   inc -silent -file "$mbox"
-  rm -f "$mbox" "$mbox.map"
+  rm -f "$mbox"
 
   # It's hard to calculate the exact Date: header post is going to
   # use, so we'll just use sed to remove the actual date so we can
 
   # It's hard to calculate the exact Date: header post is going to
   # use, so we'll just use sed to remove the actual date so we can
@@ -48,6 +70,7 @@ test_dist ()
 
 
 # check -help
 
 
 # check -help
+start_test "-help"
 cat >"$expected" <<EOF
 Usage: dist [+folder] [msg] [switches]
   switches are:
 cat >"$expected" <<EOF
 Usage: dist [+folder] [msg] [switches]
   switches are:
@@ -71,10 +94,12 @@ Usage: dist [+folder] [msg] [switches]
   -[no]atfile
 EOF
 
   -[no]atfile
 EOF
 
-dist -help >"$actual" 2>&1
+#### Skip nmh intro text.
+dist -help 2>&1 | sed '/^$/,$d' >"$actual"
 check "$expected" "$actual"
 
 # check -version
 check "$expected" "$actual"
 
 # check -version
+start_test "-version"
 case `dist -v` in
   dist\ --*) ;;
   *        ) printf '%s: dist -v generated unexpected output\n' "$0" >&2
 case `dist -v` in
   dist\ --*) ;;
   *        ) printf '%s: dist -v generated unexpected output\n' "$0" >&2
@@ -82,6 +107,7 @@ case `dist -v` in
 esac
 
 # check unknown switch
 esac
 
 # check unknown switch
+start_test "unknown switch"
 run_test "dist -nonexistent" 'dist: -nonexistent unknown'
 
 folder +outbox -create -fast >/dev/null
 run_test "dist -nonexistent" 'dist: -nonexistent unknown'
 
 folder +outbox -create -fast >/dev/null
@@ -91,10 +117,12 @@ folder +inbox -fast 1 >/dev/null
 # looks correct.
 
 # check basic dist operation, including -noedit and -to
 # looks correct.
 
 # check basic dist operation, including -noedit and -to
+start_test "basic dist operation, including -noedit and -to"
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -106,12 +134,14 @@ EOF
 test_dist -noedit -to somebody@example.com
 
 # check +folder and msg
 test_dist -noedit -to somebody@example.com
 
 # check +folder and msg
+start_test "+folder and msg"
 folder +outbox -fast >/dev/null
 
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 folder +outbox -fast >/dev/null
 
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -123,6 +153,7 @@ EOF
 test_dist +inbox 1 -noedit -to somebody@example.com
 
 # check -form
 test_dist +inbox 1 -noedit -to somebody@example.com
 
 # check -form
+start_test "-form"
 cat >"${MH_TEST_DIR}/Mail/distform" <<'EOF'
 Resent-From: me@example.com
 Resent-To: you@example.com
 cat >"${MH_TEST_DIR}/Mail/distform" <<'EOF'
 Resent-From: me@example.com
 Resent-To: you@example.com
@@ -132,6 +163,7 @@ cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: me@example.com
 Resent-To: you@example.com
 Subject: Testing message 1
 Resent-From: me@example.com
 Resent-To: you@example.com
@@ -145,10 +177,12 @@ test_dist 1 -noedit -form "${MH_TEST_DIR}"/Mail/distform
 rm "${MH_TEST_DIR}"/Mail/distform
 
 # check -annotate
 rm "${MH_TEST_DIR}"/Mail/distform
 
 # check -annotate
+start_test "-annotate"
 cat >"$expected" <<EOF
 From: Test2 <test2@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test2 <test2@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 2@test.nmh
 Subject: Testing message 2
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 2
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -165,6 +199,7 @@ Resent: somebody@example.com
 From: Test2 <test2@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 From: Test2 <test2@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 2@test.nmh
 Subject: Testing message 2
 
 This is message number 2
 Subject: Testing message 2
 
 This is message number 2
@@ -190,10 +225,12 @@ sed -e 's/^Resent:.*:.*/Resent:/' "${MH_TEST_DIR}"/Mail/inbox/2 >"$actual"
 check "$expected" "$actual"
 
 # check -noannotate
 check "$expected" "$actual"
 
 # check -noannotate
+start_test "-noannotate"
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -208,6 +245,7 @@ cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 
 This is message number 1
 Subject: Testing message 1
 
 This is message number 1
@@ -218,6 +256,7 @@ check "${MH_TEST_DIR}"/Mail/inbox/1 "$expected" 'keep first'
 check_for_hard_links
 if [ $hard_links_supported -eq 1 ]; then
   # check -noinplace
 check_for_hard_links
 if [ $hard_links_supported -eq 1 ]; then
   # check -noinplace
+  start_test "-noinplace"
   # Hard link the message and verify that the new one doesn't get annotated.
   cp "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.copy"
   ln "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
   # Hard link the message and verify that the new one doesn't get annotated.
   cp "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.copy"
   ln "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
@@ -225,6 +264,7 @@ if [ $hard_links_supported -eq 1 ]; then
 From: Test8 <test8@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 From: Test8 <test8@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 8@test.nmh
 Subject: Testing message 8
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 8
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -238,28 +278,32 @@ EOF
     'keep first'
 
   # check -inplace
     'keep first'
 
   # check -inplace
+  start_test "-inplace"
   # Hard link the message and verify that the new one does get annotated.
   # Hard link the message and verify that the new one does get annotated.
-  ln "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
+  ln "${MH_TEST_DIR}/Mail/inbox/9" "${MH_TEST_DIR}/Mail/inbox/9.link"
   cat >"$expected" <<EOF
   cat >"$expected" <<EOF
-From: Test8 <test8@example.com>
+From: Test9 <test9@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
-Subject: Testing message 8
+Message-Id: 9@test.nmh
+Subject: Testing message 9
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Resent-Date:
 
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Resent-Date:
 
-This is message number 8
+This is message number 9
 EOF
 EOF
-  test_dist 8 -noedit -to somebody@example.com -annotate -noinplace -inplace
-  check "${MH_TEST_DIR}/Mail/inbox/8" "${MH_TEST_DIR}/Mail/inbox/8.link"
+  test_dist 9 -noedit -to somebody@example.com -annotate -noinplace -inplace
+  check "${MH_TEST_DIR}/Mail/inbox/9" "${MH_TEST_DIR}/Mail/inbox/9.link"
 fi
 
 # check -draftfolder
 fi
 
 # check -draftfolder
+start_test "-draftfolder"
 cat >"$expected" <<EOF
 From: Test3 <test3@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test3 <test3@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 3@test.nmh
 Subject: Testing message 3
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 3
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -271,10 +315,12 @@ EOF
 test_dist 3 -noedit -to somebody@example.com -draftfolder drafts
 
 # check -draftmsg
 test_dist 3 -noedit -to somebody@example.com -draftfolder drafts
 
 # check -draftmsg
+start_test "-draftmsg"
 cat >"$expected" <<EOF
 From: Test3 <test3@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test3 <test3@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 3@test.nmh
 Subject: Testing message 3
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 3
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -287,10 +333,12 @@ touch $MH_TEST_DIR/Mail/drafts/3
 test_dist 3 -noedit -to somebody@example.com -draftfolder drafts -draftmessage 2
 
 # check -nodraftfolder
 test_dist 3 -noedit -to somebody@example.com -draftfolder drafts -draftmessage 2
 
 # check -nodraftfolder
+start_test "-nodraftfolder"
 cat >"$expected" <<EOF
 From: Test3 <test3@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test3 <test3@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 3@test.nmh
 Subject: Testing message 3
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 3
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -307,10 +355,12 @@ if test -d "${MH_TEST_DIR}/Mail/nonexistent"; then
 fi
 
 # check -from
 fi
 
 # check -from
+start_test "-from"
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: me@example.com
 Resent-To: somebody@example.com
 Subject: Testing message 1
 Resent-From: me@example.com
 Resent-To: somebody@example.com
@@ -322,10 +372,12 @@ EOF
 test_dist 1 -noedit -to somebody@example.com -from me@example.com
 
 # check -cc
 test_dist 1 -noedit -to somebody@example.com -from me@example.com
 
 # check -cc
+start_test "-cc"
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -338,10 +390,12 @@ EOF
 test_dist 1 -noedit -to somebody@example.com -cc cc@example.com
 
 # check -fcc
 test_dist 1 -noedit -to somebody@example.com -cc cc@example.com
 
 # check -fcc
+start_test "-fcc"
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -351,12 +405,15 @@ This is message number 1
 EOF
 
 test_dist 1 -noedit -to somebody@example.com -fcc outbox
 EOF
 
 test_dist 1 -noedit -to somebody@example.com -fcc outbox
-run_test 'scan +outbox -width 6' '   1 '
+run_test 'scan +outbox -width 6' '   1  '
 
 
+# check -fcc with +
+start_test "-fcc with +"
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 cat >"$expected" <<EOF
 From: Test1 <test1@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
 Subject: Testing message 1
 Resent-From: ${localmbox}
 Resent-To: somebody@example.com
@@ -366,7 +423,52 @@ This is message number 1
 EOF
 
 test_dist +inbox 1 -noedit -to somebody@example.com -fcc +outbox
 EOF
 
 test_dist +inbox 1 -noedit -to somebody@example.com -fcc +outbox
-run_test 'scan +outbox -width 6 2' '   2 '
+run_test 'scan +outbox -width 6 2' '   2  '
+
+# check Distribute- and Distribution-
+start_test "Distribute- and Distribution-"
+cat >"$expected" <<EOF
+  -- Network Recipients --
+  dist-recipient at example.com
+EOF
+
+folder -f +inbox >/dev/null
+arith_eval `pick last` + 1
+new_msg=$arith_val
+cat >`mhpath new` <<EOF
+From: Test$new_msg <test$new_msg@example.com>
+Date: Sun, 10 May 2020 10:00:00
+EOF
+
+cat >`mhpath new` <<EOF
+Distribution-From: <a@example.com>
+Distribute-To: <dist-recipient@example.com>
+EOF
+
+mhdist=`pick last` mhaltmsg=`mhpath $new_msg` whom `mhpath last` >"$actual"
+check "$expected" "$actual"
+
+#
+# Check that dist encodes headers using RFC-2047 properly
+#
+start_test "dist encodes headers using RFC-2047 properly"
+require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
+
+cat >"$expected" <<EOF
+From: Test1 <test1@example.com>
+To: Some User <user@example.com>
+Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 1@test.nmh
+Subject: Testing message 1
+Resent-From: =?UTF-8?Q?Mr_F=C3=B8o_Bar?= <resent-from@example.com>
+Resent-To: =?UTF-8?Q?Mr_Nobod=C3=BF?= <resent-to@example.com>
+Resent-Date:
+
+This is message number 1
+EOF
 
 
+test_dist +inbox 1 -noedit -from 'Mr Føo Bar <resent-from@example.com>' \
+         -to 'Mr Nobodÿ <resent-to@example.com>' -fcc +outbox
 
 
+finish_test
 exit ${failed:-0}
 exit ${failed:-0}