summaryrefslogtreecommitdiff
path: root/test/tests/queue/rewrite
diff options
context:
space:
mode:
Diffstat (limited to 'test/tests/queue/rewrite')
-rw-r--r--test/tests/queue/rewrite82
1 files changed, 82 insertions, 0 deletions
diff --git a/test/tests/queue/rewrite b/test/tests/queue/rewrite
new file mode 100644
index 0000000..780aa3b
--- /dev/null
+++ b/test/tests/queue/rewrite
@@ -0,0 +1,82 @@
+. functions
+
+que() {
+ set -e
+ ../src/nullmailer-queue && \
+ cat $QUEUEDIR/queue/* && \
+ rm -f $QUEUEDIR/queue/*
+}
+que-recip() {
+ set -e
+ que | sed -e '2,/^$/!d' | grep -q "$@"
+}
+que-sender() {
+ set -e
+ que | head -n 1 | grep -q "$@"
+}
+
+echo admin@remote >$SYSCONFDIR/adminaddr
+
+echo "Checking that queue rewrites user@localhost to adminaddr."
+que-recip '^admin@remote$' <<EOF
+bruceg@qcc.sk.ca
+user@localhost
+
+header
+
+data
+EOF
+
+echo "Checking that queue rewrites user@hostname to adminaddr."
+que-recip '^admin@remote$' <<EOF
+bruceg@qcc.sk.ca
+user@f.q.d.n
+
+header
+
+data
+EOF
+
+echo "Checking that queue does not rewrite non-local users."
+que-recip '^user@nowhere.org$' <<EOF
+bruceg@qcc.sk.ca
+user@nowhere.org
+
+header
+
+data
+EOF
+
+echo admin1@remote1,admin2@remote2 >$SYSCONFDIR/adminaddr
+
+echo "Checking that queue rewrites to multiple adminaddr."
+que-recip '^admin2@remote2$' <<EOF
+bruceg@qcc.sk.ca
+user@localhost
+
+header
+
+data
+EOF
+
+echo "Checking that queue transmits the envelope sender normally."
+que-sender '^bruceg@qcc.sk.ca$' <<EOF
+bruceg@qcc.sk.ca
+user@localhost
+
+header
+
+data
+EOF
+
+echo "Checking that queue rewrites sender with allmailfrom."
+echo sender@remote3 >$SYSCONFDIR/allmailfrom
+que-sender '^sender@remote3$' <<EOF
+bruceg@qcc.sk.ca
+user@localhost
+
+header
+
+data
+EOF
+rm -f $SYSCONFDIR/allmailfrom