For whatever reason, gcov got fooled by test-whom until a test of
[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 cat >$expected <<EOF
37 Usage: whom [switches] [file]
38   switches are:
39   -alias aliasfile
40   -[no]check
41   -draft
42   -(draftf)older +folder
43   -(draftm)essage msg
44   -nodraftfolder
45   -version
46   -help
47   -sasl
48   -saslmech mechanism
49   -user username
50   -(port) server port name/number
51 EOF
52
53 whom -help >$actual 2>&1
54 check $expected $actual
55
56 # check -version
57 case `whom -v` in
58   whom\ --*) ;;
59   *       ) echo "$0: whom -v generated unexpected output" 1>&2
60             failed=`expr ${failed:-0} + 1`;;
61 esac
62
63 # check with no options
64 run_test 'whom' '  -- Network Recipients --
65   user at example.com'
66
67 # check -nocheck
68 run_test 'whom -check -nocheck' '  -- Network Recipients --
69   user at example.com'
70
71 # check with file specified
72 run_test "whom $MH_TEST_DIR/Mail/draft" '  -- Network Recipients --
73   user at example.com'
74
75 # check -draftmessage
76 run_test "whom -draftm draft" '  -- Network Recipients --
77   user at example.com'
78
79 # check -draftfolder with -draftmessage
80 folder +drafts -create >/dev/null
81 folder +inbox -fast >/dev/null
82 cp $MH_TEST_DIR/Mail/draft $MH_TEST_DIR/Mail/drafts/1
83 run_test "whom -draftfolder +drafts -draftm 1" \
84 '  -- Network Recipients --
85   user at example.com'
86
87 # check -draftfolder with current draftmessage
88 folder +drafts 1 >/dev/null
89 run_test "whom -draftfolder +drafts" \
90 '  -- Network Recipients --
91   user at example.com'
92
93 # check -nodraftfolder
94 run_test 'whom -draftfolder +nonexistent -nodraftfolder' \
95 '  -- Network Recipients --
96   user at example.com'
97
98 # check -draft, though I'm not sure that it's useful.  Note that it
99 # must appear after the file argument when run standalone.
100 run_test "whom $MH_TEST_DIR/Mail/drafts/1 -draft" \
101 '  -- Network Recipients --
102   user at example.com'
103
104 # check -alias
105 rm -f $MH_TEST_DIR/Mail/draft
106 cat >$MH_TEST_DIR/Mail/draft <<'EOF'
107 From: Test1 <test1@example.com>
108 To: u
109 Subject: Testing message 1
110 --------
111 This is a draft message.
112 EOF
113
114 cat >$MH_TEST_DIR/Mail/nmhaliases <<'EOF'
115 u: user1@example.com
116 EOF
117 run_test 'whom -alias nmhaliases' '  -- Network Recipients --
118   user1 at example.com'
119
120 # check -alias with nonexistent aliasfile
121 run_test 'whom -alias nonexistent' \
122 "whom: aliasing error in nonexistent - unable to read 'nonexistent'"
123
124
125 exit $failed