The first alias contained in a blind list is now expanded. The
[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 nonexistent' \
58          "ali: aliasing error in nonexistent - unable to read 'nonexistent'"
59
60 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
61 me: me@example.com
62 rush: geddy, alex, neil
63 geddy: geddy@example.com
64 alex: alex@example.com
65 neil: neil@example.com
66 EOF
67
68 # check -alias
69 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases" \
70          'me: me@example.com
71 rush: geddy@example.com, alex@example.com, neil@example.com
72 geddy: geddy@example.com
73 alex: alex@example.com
74 neil: neil@example.com'
75
76 # check for a specific alias
77 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
78          'geddy@example.com, alex@example.com, neil@example.com'
79
80 # check for a specific alias that doesn't exist
81 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases nonexistent" \
82          'nonexistent'
83
84 # check -list
85 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list" \
86          'me: me@example.com
87 rush: geddy@example.com
88       alex@example.com
89       neil@example.com
90 geddy: geddy@example.com
91 alex: alex@example.com
92 neil: neil@example.com'
93
94 # check -nolist, which is the default
95 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list -nolist" \
96          'me: me@example.com
97 rush: geddy@example.com, alex@example.com, neil@example.com
98 geddy: geddy@example.com
99 alex: alex@example.com
100 neil: neil@example.com'
101
102 # check -user
103 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -user geddy@example.com" \
104          'rush, geddy'
105
106 # check -nouser
107 run_test \
108   "ali -alias ${MH_TEST_DIR}/Mail/aliases -user -nouser geddy@example.com" \
109   'geddy@example.com'
110
111 # check expansion of first address of blind list [Bug #15604]
112 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
113 rush: Rush: geddy, alex, neil
114 geddy: geddy@example.com
115 alex: alex@example.com
116 neil: neil@example.com
117 EOF
118
119 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
120          'Rush: geddy@example.com, alex@example.com, neil@example.com'
121
122 # check that aliases followed by ; are not expanded [Bug #15604]
123 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
124 rush: Rush: geddy, alex, neil;
125 geddy: geddy@example.com
126 alex: alex@example.com
127 neil: neil@example.com
128 EOF
129
130 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
131          'Rush: geddy@example.com, alex@example.com, neil;'
132
133
134 exit $failed