7af25cc87517098d3fd44188053e6456b8d38d73
[mmh] / test / ali / test-ali
1 #!/bin/sh
2 ######################################################
3 #
4 # Test ali
5 #
6 ######################################################
7
8 # Not tested:
9 # -normalize, -nonormalize
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 expected_err=$MH_TEST_DIR/$$.expected_err
24 actual=$MH_TEST_DIR/$$.actual
25 actual_err=$MH_TEST_DIR/$$.actual_err
26
27
28 # check -help
29 cat >$expected <<EOF
30 Usage: ali [switches] aliases ...
31   switches are:
32   -alias aliasfile
33   -[no]list
34   -[no]normalize
35   -[no]user
36   -version
37   -help
38 EOF
39
40 ali -help >$actual 2>&1
41 check $expected $actual
42
43 # check -version
44 case `ali -v` in
45   ali\ --*) ;;
46   *       ) echo "$0: ali -v generated unexpected output" 1>&2
47             failed=`expr ${failed:-0} + 1`;;
48 esac
49
50 # check unknown option
51 run_test 'ali -nonexistent' 'ali: -nonexistent unknown'
52
53 # check with no arguments and no AliasFile profile component
54 run_test 'ali' ''
55
56 # check with nonexistent alias file
57 run_test 'ali -alias aliases' \
58          "ali: aliasing error in aliases - unable to read 'aliases'"
59
60 cat >${MH_TEST_DIR}/Mail/aliases <<EOF
61 me: me@example.com
62 rush: geddy@example.com, alex@example.com, neil@example.com
63 EOF
64
65 # check -alias
66 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases" \
67          'me: me@example.com
68 rush: geddy@example.com, alex@example.com, neil@example.com'
69
70 # check for a specific alias
71 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
72          'geddy@example.com, alex@example.com, neil@example.com'
73
74 # check for a specific alias that doesn't exist
75 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases nonexistent" \
76          'nonexistent'
77
78 # check -list
79 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list" \
80          'me: me@example.com
81 rush: geddy@example.com
82       alex@example.com
83       neil@example.com'
84
85 # check -nolist, which is the default
86 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list -nolist" \
87          'me: me@example.com
88 rush: geddy@example.com, alex@example.com, neil@example.com'
89
90 # check -user
91 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -user geddy@example.com" \
92          'rush'
93
94 # check -nouser
95 run_test \
96   "ali -alias ${MH_TEST_DIR}/Mail/aliases -user -nouser geddy@example.com" \
97   'geddy@example.com'
98
99
100 exit $failed