1#!/bin/sh
2######################################################
3#
4# Test ali
5#
6######################################################
7
8. "$MH_TEST_COMMON"
9
10expected=$MH_TEST_DIR/$$.expected
11expected_err=$MH_TEST_DIR/$$.expected_err
12actual=$MH_TEST_DIR/$$.actual
13actual_err=$MH_TEST_DIR/$$.actual_err
14
15
16runandcheck "ali -help" <<!
17Usage: ali [switches] aliases ...
18  switches are:
19  -file aliasfile
20  -[no]list
21  -[no]normalize
22  -[no]user
23  -Version
24  -help
25!
26
27
28# check -Version
29case `ali -V` in
30  ali\ --*) ;;
31  *       ) echo "$0: ali -V generated unexpected output" 1>&2
32            failed=`expr "${failed:-0}" + 1`;;
33esac
34
35
36# check with no arguments and no AliasFile profile component
37runandcheck 'ali' <<!
38!
39
40# check with nonexistent alias file
41runandcheck 'ali -file nonexistent || :' <<!
42ali: aliasing error in nonexistent: unable to read 'nonexistent'
43!
44
45cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
46me: me@example.com
47rush: geddy, alex, neil
48geddy: geddy@example.com
49alex: alex@example.com
50neil: neil@example.com
51EOF
52
53# check -file
54runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases" <<!
55me: me@example.com
56rush: geddy@example.com, alex@example.com, neil@example.com
57geddy: geddy@example.com
58alex: alex@example.com
59neil: neil@example.com
60!
61
62# check for a specific alias
63runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases rush" <<!
64geddy@example.com, alex@example.com, neil@example.com
65!
66
67# check for a specific alias that doesn't exist
68runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases nonexistent" <<!
69nonexistent
70!
71
72# check -list
73runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases -list" <<!
74me: me@example.com
75rush: geddy@example.com
76      alex@example.com
77      neil@example.com
78geddy: geddy@example.com
79alex: alex@example.com
80neil: neil@example.com
81!
82
83# check -nolist, which is the default
84runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases -list -nolist" <<!
85me: me@example.com
86rush: geddy@example.com, alex@example.com, neil@example.com
87geddy: geddy@example.com
88alex: alex@example.com
89neil: neil@example.com
90!
91
92# check -user
93runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases -user geddy@example.com" <<!
94rush, geddy
95!
96
97# check -nouser
98runandcheck \
99  "ali -file ${MH_TEST_DIR}/Mail/aliases -user -nouser geddy@example.com" <<!
100geddy@example.com
101!
102
103# check expansion of first address of blind list [Bug #15604]
104cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
105rush: Rush: geddy, alex, neil
106geddy: geddy@example.com
107alex: alex@example.com
108neil: neil@example.com
109EOF
110
111runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases rush" <<!
112Rush: geddy@example.com, alex@example.com, neil@example.com
113!
114
115# check that aliases followed by ; are not expanded [Bug #15604]
116cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
117rush: Rush: geddy, alex, neil;
118geddy: geddy@example.com
119alex: alex@example.com
120neil: neil@example.com
121EOF
122
123runandcheck "ali -file ${MH_TEST_DIR}/Mail/aliases rush" <<!
124Rush: geddy@example.com, alex@example.com, neil;
125!
126
127
128exit $failed
129