# a particular email address is "mine" or not
#
-if [ -z "${MH_TEST_COMMON}" ]; then
- echo "MH_TEST_COMMON not set; try running via 'make check'"
+if test -z "${MH_OBJ_DIR}"; then
+ srcdir=`dirname "$0"`/../..
+ MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
fi
-. ${MH_TEST_COMMON}
+. "$MH_OBJ_DIR/test/common.sh"
setup_test
-runtest()
-{
- testoutput=$(${MH_LIB_DIR}/ap -format "%(mymbox{text})" "$1")
+#### Use ap to get the username. That will either be what's in the
+#### Local-Mailbox profile component, which we don't use in the test
+#### suite, or the user's login name. ap will escape (quote) it if
+#### needed.
+user=`run_prog ${MH_LIBEXEC_DIR}/ap -format '%(me)' 0`
+host=`${MH_OBJ_DIR}/test/getcanon`
- if [ -z "${testoutput}" ]; then
- echo "Test program did not return anything for $3"
- exit 1
- fi
+output=`run_prog ${MH_LIBEXEC_DIR}/ap -format '%(mymbox{text})' "${user}"`
+run_test "echo $output" 1 "Basic user test"
+output=`run_prog ${MH_LIBEXEC_DIR}/ap -format '%(mymbox{text})' "${user}@${host}"`
+run_test "echo $output" 1 "Basic user@host test"
+run_test "${MH_LIBEXEC_DIR}/ap -format %(mymbox{text}) nosuchuser@nosuchhost.blah" \
+ 0 "Basic non-matching test"
- if [ "${testoutput}" -ne $2 ]; then
- echo "Did not get expected output for $3"
- exit 1
- fi
-}
+myname="Random User <random@user.something.com>"
-user="$(id -un)"
-host="$(hostname)"
+#### Remove existing Local-Mailbox: profile component, if any. Then
+#### add one.
+grep -v 'Local-Mailbox: ' "$MH" > "$MH".new
+mv -f "$MH".new "$MH"
+echo "Local-Mailbox: ${myname}" >> "$MH"
-runtest "${user}" 1 "Basic user test"
-runtest "${user}@${host}" 1 "Basic user@host test"
-runtest "nosuchuser@nosuchhost.blah" 0 "Basic non-matching test"
+run_test "echo \
+ `run_prog ${MH_LIBEXEC_DIR}/ap -format '%(mymbox{text})' "${myname}"`" \
+ 1 "Local-Mailbox test"
-myname="Random User <random@user.something.com>"
+output=`run_prog ${MH_LIBEXEC_DIR}/ap -format '%(mymbox{text})' "${user}@${host}"`
+run_test "echo $output" 0 "Local-mailbox overriding user@host test"
+
+# Add an Alternate-Mailbox. This caused ismymbox() to lose the
+# Local-Mailbox, Bug #36635: -nocc me doesn't account for
+# Alternate-Mailboxes.
+printf 'Alternate-Mailboxes: user@example.com\n' >> $MH
+run_test "echo \
+ `run_prog ${MH_LIBEXEC_DIR}/ap -format '%(mymbox{text})' "${myname}"`" \
+ 1 "Local-Mailbox with Alternate-Mailbox test"
+
+# check getmymbox, without match
+run_test 'fmttest -message -format %(getmymbox{from}) first' ''
+
+# check getmyaddr, without match
+run_test 'fmttest -message -format %(getmyaddr{from}) first' ''
+
+grep -v 'Alternate-Mailboxes: ' "$MH" > "$MH".new
+mv -f "$MH".new "$MH"
+cat >>"$MH" <<EOF
+Alternate-Mailboxes: test1@example.com
+EOF
+
+# check getmymbox, with match
+run_test 'fmttest -message -format %(getmymbox{from}) first' \
+ 'Test1 <test1@example.com>'
+
+# check getmyaddr, with match
+run_test 'fmttest -message -format %(getmyaddr{from}) first' \
+ 'test1@example.com'
-echo "Local-Mailbox: ${myname}" >> ${MH}
+# check getmymbox and getmyaddr, with match of other than first address in
+# component
+cat >`mhpath new` <<'EOF'
+From: Test11 <test11@example.com>
+Cc: Test0 <test0@example.com>, Test3 <test3@example.com>,
+ Test1 <test1@example.com>, Test2 <test2@example.com>
+To: Some User <user@example.com>
+Date: Fri, 29 Sep 2006 00:00:00
+Message-Id: 11@test.nmh
+Subject: Testing message 11
-runtest "${myname}" 1 "Local-Mailbox test"
-runtest "${user}@${host}" 0 "Local-mailbox overriding user@host test"
+This is message number 11
+EOF
+run_test 'fmttest -message -format %(getmymbox{cc}) last' \
+ 'Test1 <test1@example.com>'
+run_test 'fmttest -message -format %(getmyaddr{cc}) last' \
+ 'test1@example.com'
-exit 0
+exit $failed