]> diplodocus.org Git - nmh/blob - test/ali/test-ali
Use HasPrefix() instead of strncmp().
[nmh] / 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 -noalias
34 -[no]list
35 -[no]user
36 -version
37 -help
38 EOF
39
40 #### Skip nmh intro text.
41 ali -help | sed '/^$/,$d' >"$actual" 2>&1
42 check "$expected" "$actual"
43
44 # check -version
45 case `ali -v` in
46 ali\ --*) ;;
47 * ) echo "$0: ali -v generated unexpected output" 1>&2
48 failed=`expr ${failed:-0} + 1`;;
49 esac
50
51 # check unknown option
52 run_test 'ali -nonexistent' 'ali: -nonexistent unknown'
53
54 # check with no arguments and no AliasFile profile component
55 run_test 'ali' ''
56
57 # check with nonexistent alias file
58 run_test 'ali -alias nonexistent' \
59 "ali: aliasing error in nonexistent - unable to read 'nonexistent'"
60
61 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
62 me: me@example.com
63 rush: geddy, alex, neil
64 geddy: geddy@example.com
65 alex: alex@example.com
66 neil: neil@example.com
67 EOF
68
69 # check -alias
70 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases" \
71 'me: me@example.com
72 rush: geddy@example.com, alex@example.com, neil@example.com
73 geddy: geddy@example.com
74 alex: alex@example.com
75 neil: neil@example.com'
76
77 # check for a specific alias
78 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
79 'geddy@example.com, alex@example.com, neil@example.com'
80
81 # check for a specific alias that doesn't exist
82 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases nonexistent" \
83 'nonexistent'
84
85 # check -list
86 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list" \
87 'me: me@example.com
88 rush: geddy@example.com
89 alex@example.com
90 neil@example.com
91 geddy: geddy@example.com
92 alex: alex@example.com
93 neil: neil@example.com'
94
95 # check -nolist, which is the default
96 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list -nolist" \
97 'me: me@example.com
98 rush: geddy@example.com, alex@example.com, neil@example.com
99 geddy: geddy@example.com
100 alex: alex@example.com
101 neil: neil@example.com'
102
103 # check -user
104 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -user geddy@example.com" \
105 'rush, geddy'
106
107 # check -nouser
108 run_test \
109 "ali -alias ${MH_TEST_DIR}/Mail/aliases -user -nouser geddy@example.com" \
110 'geddy@example.com'
111
112 # check expansion of first address of blind list [Bug #15604]
113 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
114 rush: Rush: geddy, alex, neil
115 geddy: geddy@example.com
116 alex: alex@example.com
117 neil: neil@example.com
118 EOF
119
120 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
121 'Rush: geddy@example.com, alex@example.com, neil@example.com'
122
123 # check that aliases followed by ; are not expanded [Bug #15604]
124 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
125 rush: Rush: geddy, alex, neil;
126 geddy: geddy@example.com
127 alex: alex@example.com
128 neil: neil@example.com
129 EOF
130
131 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
132 'Rush: geddy@example.com, alex@example.com, neil;'
133
134
135 exit $failed