]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
mlmmj-process: add tests about maxmailsize
authorBaptiste Daroussin <bapt@FreeBSD.org>
Fri, 14 Apr 2023 12:31:58 +0000 (14:31 +0200)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Fri, 14 Apr 2023 12:31:58 +0000 (14:31 +0200)
tests/mlmmj-receive.sh

index 02283c8b8d62adb47484ac54c8abfa98dbe48d2d..a09c19f936a83bdb1f168eb8de25d75304584a79 100755 (executable)
@@ -18,7 +18,9 @@ tests_init \
        subscription_moderation \
        moderation \
        moderation_notmetoo \
-       moderation_reject_invalid
+       moderation_reject_invalid \
+       maxmailsize \
+       maxmailsize0
 
 mlmmjreceive=$(command -v mlmmj-receive)
 
@@ -2174,3 +2176,139 @@ EOF
        atf_check -s exit:0 test -f list/moderation/${var}
        atf_check -s exit:0 test -f list/moderation/${var}.omit
 }
+
+maxmailsize_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 "heloname" > list/control/smtphelo
+
+       echo "1" > list/control/maxmailsize
+       printf "user@test\nuser2@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-help@mlmmjtest>\r
+RCPT TO:<bob@test>\r
+DATA\r
+Subject: =?utf-8?q?Post_to_test=40mlmmjtest_denied:_yeah?=\r
+MIME-Version: 1.0\r
+Content-Type: multipart/mixed;\r
+ boundary
+Content-Transfer-Encoding: 8bit\r
+From: test+owner@mlmmjtest\r
+To: bob@test\r
+\r
+--=RANDOM=\r
+Content-Type: text/plain; charset=utf8\r
+Content-Transfer-Encoding: 8bit\r
+\r
+Hi, this is the Mlmmj program managing the <test@mlmmjtest> mailing list.\r
+\r
+The message from <bob@test> with subject "yeah" was unable to be delivered\r
+to the list because it exceeded the maximum allowed message size of 1\r
+bytes.\r
+\r
+(The beginning of the denied message is below.)\r
+\r
+--=RANDOM=\r
+Content-Type: message/rfc822\r
+Content-Transfer-Encoding: 8bit\r
+Content-Disposition: inline; filename="message.eml"\r
+\r
+From: bob@test\r
+To: test@mlmmjtest\r
+Subject: yeah\r
+\r
+Let's go, first email\r
+--=RANDOM=--\r
+\r
+.\r
+QUIT\r
+EOF
+       atf_check -o file:expected-1.txt sed -e "/^Message-ID:/d; /^Date:/d; s/boundary=.*/boundary/g; s/--=.*=/--=RANDOM=/g" mail-1.txt
+       atf_check -s exit:1 test -f mail-2.txt
+       return
+}
+
+maxmailsize0_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 "heloname" > list/control/smtphelo
+
+       echo "0" > list/control/maxmailsize
+       printf "user@test\nuser2@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-help@mlmmjtest>\r
+RCPT TO:<bob@test>\r
+DATA\r
+Subject: =?utf-8?q?Post_to_test=40mlmmjtest_denied:_yeah?=\r
+MIME-Version: 1.0\r
+Content-Type: multipart/mixed;\r
+ boundary
+Content-Transfer-Encoding: 8bit\r
+From: test+owner@mlmmjtest\r
+To: bob@test\r
+\r
+--=RANDOM=\r
+Content-Type: text/plain; charset=utf8\r
+Content-Transfer-Encoding: 8bit\r
+\r
+Hi, this is the Mlmmj program managing the <test@mlmmjtest> mailing list.\r
+\r
+The message from <bob@test> with subject "yeah" was unable to be delivered\r
+to the list because it exceeded the maximum allowed message size of 0\r
+bytes.\r
+\r
+(The beginning of the denied message is below.)\r
+\r
+--=RANDOM=\r
+Content-Type: message/rfc822\r
+Content-Transfer-Encoding: 8bit\r
+Content-Disposition: inline; filename="message.eml"\r
+\r
+From: bob@test\r
+To: test@mlmmjtest\r
+Subject: yeah\r
+\r
+Let's go, first email\r
+--=RANDOM=--\r
+\r
+.\r
+QUIT\r
+EOF
+       atf_check -o file:expected-1.txt sed -e "/^Message-ID:/d; /^Date:/d; s/boundary=.*/boundary/g; s/--=.*=/--=RANDOM=/g" mail-1.txt
+       atf_check -s exit:1 test -f mail-2.txt
+       return
+}