]> diplodocus.org Git - nmh/blob - test/inc/test-pop
Very very rough cut at trying to parse email addresses with Bison.
[nmh] / test / inc / test-pop
1 #!/bin/sh
2 ######################################################
3 #
4 # Test POP support in inc
5 # Only tests checking of local maildrop, does not
6 # test checking of POP server.
7 #
8 ######################################################
9
10 set -e
11
12 if test -z "${MH_OBJ_DIR}"; then
13 srcdir=`dirname $0`/../..
14 MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
15 fi
16
17 . "$MH_OBJ_DIR/test/common.sh"
18
19 setup_test
20
21 #
22 # Some extra stuff we need for POP support
23 #
24
25 TESTUSER=testuser
26 TESTPASS=testuserpass
27 arith_eval 64001 + `id -u` % 1000
28 testport=$arith_val
29
30 HOME="${MH_TEST_DIR}"; export HOME
31 netrc="${HOME}/.netrc"
32 echo "default login ${TESTUSER} password ${TESTPASS}" > "$netrc"
33 chmod 600 "$netrc"
34
35 expected=$MH_TEST_DIR/$$.expected
36 expected_err=$MH_TEST_DIR/$$.expected_err
37 actual=$MH_TEST_DIR/$$.actual
38 actual_err=$MH_TEST_DIR/$$.actual_err
39 testmessage=$MH_TEST_DIR/testmessage
40
41 cat > "$testmessage" <<EOM
42 Received: From somewhere
43 From: No Such User <nosuch@example.com>
44 To: Some Other User <someother@example.com>
45 Subject: Hello
46 Date: Sun, 17 Dec 2006 12:13:14 -0500
47
48 Hey man, how's it going?
49 .
50 Hope you're doing better.
51 EOM
52
53 cat > "${testmessage}.2" <<EOM
54 Received: From somewhere
55 From: A Real User <real@example.com>
56 To: Some Other User <someother@example.com>
57 Subject: Anything new?
58 Date: Monday, 18 Dec 2006 14:13:14 -0500
59
60 What's been happening at your place?
61 EOM
62
63 cat > "${testmessage}.3" <<EOM
64 Received: From somewhere
65 From: Nathan Explosion <nathan@dethklok.com>
66 To: Some Other User <someother@example.com>
67 Subject: Brutal
68 Date: Tuesday, 19 Dec 2006 4:15:16 -0500
69
70 Dude, nmh is totally brutal.
71 EOM
72
73 pid=`"${MH_OBJ_DIR}/test/fakepop" "$testport" \
74 "$TESTUSER" "$TESTPASS" "$testmessage"`
75
76 run_test "inc -user ${TESTUSER} -host 127.0.0.1 -port $testport -width 80" \
77 "Incorporating new mail into inbox...
78
79 11+ 12/17 No Such User Hello<<Hey man, how's it going? . Hope you're do"
80 check "$testmessage" `mhpath +inbox 11` 'keep first'
81
82 # Check multiple messages at once
83
84 pid=`"${MH_OBJ_DIR}/test/fakepop" "$testport" \
85 "$TESTUSER" "$TESTPASS" "$testmessage" \
86 "${testmessage}.2" "${testmessage}.3"`
87
88 run_test "inc -user ${TESTUSER} -host 127.0.0.1 -port $testport -width 80" \
89 "Incorporating new mail into inbox...
90
91 11+ 12/17 No Such User Hello<<Hey man, how's it going? . Hope you're do
92 12 12/18 A Real User Anything new?<<What's been happening at your pla
93 13 12/19 Nathan Explosion Brutal<<Dude, nmh is totally brutal. >>"
94
95 check "$testmessage" `mhpath +inbox 11` 'keep first'
96 check "${testmessage}.2" `mhpath +inbox 12`
97 check "${testmessage}.3" `mhpath +inbox 13`
98
99 # check -pack
100 pid=`"${MH_OBJ_DIR}/test/fakepop" "$testport" \
101 "$TESTUSER" "$TESTPASS" "$testmessage"`
102
103 touch "$MH_TEST_DIR/inc.mbox"
104 run_test "inc -user ${TESTUSER} -host 127.0.0.1 -port $testport -width 80 \
105 -pack $MH_TEST_DIR/inc.mbox" \
106 "Incorporating new mail into (null)...
107
108 1 12/17 No Such User Hello<<Hey man, how's it going? . Hope you're do"
109 run_test "inc -file $MH_TEST_DIR/inc.mbox -truncate -width 80" \
110 "Incorporating new mail into inbox...
111
112 11+ 12/17 No Such User Hello<<Hey man, how's it going? . Hope you're do"
113
114 check $testmessage `mhpath +inbox 11` 'keep first'
115 rm -f "$MH_TEST_DIR/inc.mbox" "$MH_TEST_DIR/.inc.map" "$netrc"
116
117 # check credentials: file
118 # Redirect stdin so that inc doesn't wait on the user if it can't
119 # read the netrc file, even though that shouldn't happen.
120 TESTUSER=differenuser
121 TESTPASS=differentpass
122
123 netrc="${HOME}/.mhnetrc"
124 echo "default login ${TESTUSER} password ${TESTPASS}" > "$netrc"
125 chmod 600 "$netrc"
126 echo "credentials: file:${netrc}" >>$MH
127
128 pid=`"${MH_OBJ_DIR}/test/fakepop" "$testport" \
129 "$TESTUSER" "$TESTPASS" "$testmessage"`
130
131 touch "$MH_TEST_DIR/inc.mbox"
132 run_test "inc -user ${TESTUSER} -host 127.0.0.1 -port $testport -width 65 \
133 -pack $MH_TEST_DIR/inc.mbox" \
134 "Incorporating new mail into (null)...
135
136 1 12/17 No Such User Hello<<Hey man, how's it going? ." </dev/null
137 run_test "inc -file $MH_TEST_DIR/inc.mbox -truncate -width 65" \
138 "Incorporating new mail into inbox...
139
140 11+ 12/17 No Such User Hello<<Hey man, how's it going? ." </dev/null
141
142 check $testmessage `mhpath +inbox 11`
143 rm -f "$MH_TEST_DIR/inc.mbox" "$MH_TEST_DIR/.inc.map" "$netrc"
144
145 exit ${failed:-0}