]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
VERP: add a unit test
authorBaptiste Daroussin <bapt@FreeBSD.org>
Sat, 14 Oct 2023 21:38:36 +0000 (23:38 +0200)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Sat, 14 Oct 2023 21:38:36 +0000 (23:38 +0200)
tests/mlmmj-receive.sh

index ef6b3163a9cef06013f9d68f2577e42f416e3d80..dc61190869e67b5f35d3f55359fb70c7882b970a 100755 (executable)
@@ -23,7 +23,8 @@ tests_init \
        maxmailsize0 \
        normail_email \
        delheaders \
-       customheaders
+       customheaders \
+       verp
 
 mlmmjreceive=$(command -v mlmmj-receive)
 
@@ -2609,3 +2610,83 @@ QUIT
 EOF
        atf_check -o file:expected-2.txt sed -e "/^Message-ID:/d; /^Date:/d;" mail-2.txt
 }
+
+verp_body()
+{
+       atf_check $srcdir/fakesmtpd
+       trap kill_fakesmtp EXIT TERM
+       init_ml list
+       rmdir list/text
+       ln -s ${srcdir}/../listtexts/en list/text
+       echo test@mlmmjtest > list/control/listaddress
+       echo "25678" > list/control/smtpport
+       echo "postfix" > list/control/verp
+       echo 2 > list/control/maxverprecips
+       echo "heloname" > list/control/smtphelo
+       printf "X-H1: test\nNope: really not\n" > list/control/customheaders
+
+       printf "user@test\nuser2@test\nuser3@test" > list/subscribers.d/u
+cat > first <<EOF
+From: bob@test
+To: test@mlmmjtest
+Return-path: bob@test
+Subject: yeah
+
+Let's go, first email
+EOF
+
+       atf_check -s exit:0 $mlmmjreceive -L list -F <first
+       cat >> expected-1.txt <<EOF
+EHLO heloname\r
+MAIL FROM:<test+bounces-1@mlmmjtest> XVERP=-=\r
+QUIT\r
+EOF
+       atf_check -o file:expected-1.txt sed -e "/^Message-ID:/d; /^Date:/d;" mail-1.txt
+cat > second <<EOF
+From: bob@test
+To: test@mlmmjtest
+Return-path: bob@test
+Mime: really
+Subject: yeah
+
+Let's go, first email
+EOF
+
+       atf_check -s exit:0 $mlmmjreceive -L list -F <second
+       cat >> expected-2.txt <<EOF
+EHLO heloname\r
+MAIL FROM:<test+bounces-1@mlmmjtest> XVERP=-=\r
+RCPT TO:<user@test>\r
+RCPT TO:<user2@test>\r
+DATA\r
+From: bob@test\r
+To: test@mlmmjtest\r
+Subject: yeah\r
+X-H1: test\r
+Nope: really not\r
+\r
+Let's go, first email\r
+\r
+.\r
+QUIT\r
+EOF
+       atf_check -o file:expected-2.txt sed -e "/^Message-ID:/d; /^Date:/d;" mail-2.txt
+       cat >> expected-3.txt <<EOF
+EHLO heloname\r
+MAIL FROM:<test+bounces-1@mlmmjtest> XVERP=-=\r
+RCPT TO:<user3@test>\r
+DATA\r
+From: bob@test\r
+To: test@mlmmjtest\r
+Subject: yeah\r
+X-H1: test\r
+Nope: really not\r
+\r
+Let's go, first email\r
+\r
+.\r
+QUIT\r
+EOF
+       atf_check -o file:expected-3.txt sed -e "/^Message-ID:/d; /^Date:/d;" mail-3.txt
+       atf_check -s exit:1 test -f mail-4.txt
+}