Fixed "mark -sequence cur -delete all" to work for cur as
[mmh] / test / whom / test-whom
1 #!/bin/sh
2 ######################################################
3 #
4 # Test whom
5 #
6 ######################################################
7
8 # Not tested:
9 # -check, -client, -server, -port, -user, -sasl, -saslmech, -snoop, -tls, -notls
10
11 set -e
12
13 if test -z "${MH_OBJ_DIR}"; then
14     srcdir=`dirname $0`/../..
15     MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
16 fi
17
18 . "$MH_OBJ_DIR/test/common.sh"
19
20 setup_test
21
22 expected=$MH_TEST_DIR/$$.expected
23 actual=$MH_TEST_DIR/$$.actual
24
25 cd $MH_TEST_DIR
26
27 cat >$MH_TEST_DIR/Mail/draft <<'EOF'
28 From: Test1 <test1@example.com>
29 To: Some User <user@example.com>
30 Subject: Testing message 1
31 --------
32 This is a draft message.
33 EOF
34
35 # check -help
36 # Only look at first 10 lines because the rest depend on
37 # whether sasl support was configured in.
38 cat >$expected <<EOF
39 Usage: whom [switches] [file]
40   switches are:
41   -alias aliasfile
42   -[no]check
43   -draft
44   -(draftf)older +folder
45   -(draftm)essage msg
46   -nodraftfolder
47   -version
48   -help
49 EOF
50
51 whom -help | head -10 >$actual 2>&1
52 check $expected $actual
53
54 # check -version
55 case `whom -v` in
56   whom\ --*) ;;
57   *       ) echo "$0: whom -v generated unexpected output" 1>&2
58             failed=`expr ${failed:-0} + 1`;;
59 esac
60
61 # check with no options
62 run_test 'whom' '  -- Network Recipients --
63   user at example.com'
64
65 # check -nocheck
66 run_test 'whom -check -nocheck' '  -- Network Recipients --
67   user at example.com'
68
69 # check with file specified
70 run_test "whom $MH_TEST_DIR/Mail/draft" '  -- Network Recipients --
71   user at example.com'
72
73 # check -draftmessage
74 run_test "whom -draftm draft" '  -- Network Recipients --
75   user at example.com'
76
77 # check -draftfolder with -draftmessage
78 folder +drafts -create >/dev/null
79 folder +inbox -fast >/dev/null
80 cp $MH_TEST_DIR/Mail/draft $MH_TEST_DIR/Mail/drafts/1
81 run_test "whom -draftfolder +drafts -draftm 1" \
82 '  -- Network Recipients --
83   user at example.com'
84
85 # check -draftfolder with current draftmessage
86 folder +drafts 1 >/dev/null
87 run_test "whom -draftfolder +drafts" \
88 '  -- Network Recipients --
89   user at example.com'
90
91 # check -nodraftfolder
92 run_test 'whom -draftfolder +nonexistent -nodraftfolder' \
93 '  -- Network Recipients --
94   user at example.com'
95
96 # check -draft, though I'm not sure that it's useful.  Note that it
97 # must appear after the file argument when run standalone.
98 run_test "whom $MH_TEST_DIR/Mail/drafts/1 -draft" \
99 '  -- Network Recipients --
100   user at example.com'
101
102 # check -alias
103 rm -f $MH_TEST_DIR/Mail/draft
104 cat >$MH_TEST_DIR/Mail/draft <<'EOF'
105 From: Test1 <test1@example.com>
106 To: u
107 Subject: Testing message 1
108 --------
109 This is a draft message.
110 EOF
111
112 cat >$MH_TEST_DIR/Mail/nmhaliases <<'EOF'
113 u: user1@example.com
114 EOF
115 run_test 'whom -alias nmhaliases' '  -- Network Recipients --
116   user1 at example.com'
117
118 # check -alias with nonexistent aliasfile
119 run_test 'whom -alias nonexistent' \
120 "whom: aliasing error in nonexistent - unable to read 'nonexistent'"
121
122
123 exit $failed