summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--imap/.gitignore1
-rw-r--r--imap/Makefile.am6
-rw-r--r--imap/mockmaildirpurge.c22
-rwxr-xr-ximap/testsuite14
-rw-r--r--imap/testsuite.txt7
5 files changed, 49 insertions, 1 deletions
diff --git a/imap/.gitignore b/imap/.gitignore
index 0eeab13..663429e 100644
--- a/imap/.gitignore
+++ b/imap/.gitignore
@@ -7,6 +7,7 @@
/courierpop3d.html
/courierpop3d.html.in
/imapd
+/imapd.testmockpurge
/imapd-ssl.dist
/imapd-ssl.dist.in
/imapd.8
diff --git a/imap/Makefile.am b/imap/Makefile.am
index 8523af1..813a977 100644
--- a/imap/Makefile.am
+++ b/imap/Makefile.am
@@ -26,7 +26,7 @@ EXTRA_DIST=testsuite testsuite.txt smaptestsuite smaptestsuite.txt \
imapd.cnf.gnutls pop3d.cnf.gnutls
noinst_SCRIPTS=mkimapdcert mkpop3dcert mkdhparams
-noinst_PROGRAMS=imaplogin imapd pop3login pop3d
+noinst_PROGRAMS=imaplogin imapd imapd.testmockpurge pop3login pop3d
noinst_DATA=imapd.8 imapd.html imapd.cnf pop3d.cnf \
makeimapaccess.html makeimapaccess.8 \
@@ -79,6 +79,10 @@ imapd_DEPENDENCIES=libimapd.la @dblibrary@
imapd_LDADD=libimapd.la @dblibrary@ @DEBUGLIB@ @LDAUTH@ -lcourierauth
+imapd_testmockpurge_SOURCES=$(imapd_SOURCES) mockmaildirpurge.c
+imapd_testmockpurge_DEPENDENCIES=$(imapd_DEPENDENCIES)
+imapd_testmockpurge_LDADD=$(imapd_LDADD)
+
pop3login_SOURCES=pop3login.c pop3dcapa.c proxy.c proxy.h
pop3login_DEPENDENCIES=../tcpd/libspipe.la ../tcpd/libspipe.la libpop3d.la
pop3login_LDADD=../tcpd/libtlsclient.la ../tcpd/libspipe.la libpop3d.la ../tcpd/libspipe.la @LDAUTH@ -lcourierauth -lcourierauthsasl @NETLIBS@
diff --git a/imap/mockmaildirpurge.c b/imap/mockmaildirpurge.c
new file mode 100644
index 0000000..fe95f9c
--- /dev/null
+++ b/imap/mockmaildirpurge.c
@@ -0,0 +1,22 @@
+/*
+** Copyright 20212 Double Precision, Inc.
+** See COPYING for distribution information.
+*/
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "maildir/maildirmisc.h"
+#include <stdio.h>
+
+void maildir_purgetmp(const char *dir)
+{
+ printf("maildir_purgetmp: %s\n", dir);
+}
+
+void maildir_purge(const char *dir,
+ unsigned n)
+{
+ printf("maildir_purge: %s (%u)\n", dir, n);
+}
diff --git a/imap/testsuite b/imap/testsuite
index ebca863..8ad8140 100755
--- a/imap/testsuite
+++ b/imap/testsuite
@@ -1156,3 +1156,17 @@ U021 SELECT INBOX
U022 STORE 1 +FLAGS(Label1)
U023 COPY 1 INBOX
EOF
+
+rm -rf confmdtest*
+
+../maildir/maildirmake confmdtest || exit 1
+../maildir/maildirmake -f Trash confmdtest || exit 1
+../maildir/maildirmake -f Trash2 confmdtest || exit 1
+
+env IMAP_EMPTYTRASH=2 ./imapd.testmockpurge confmdtest <<EOF | grep maildir_purge
+TRASH1 SELECT INBOX
+TRASH1 LOGOUT
+EOF
+env IMAP_EMPTYTRASH=Trash:2,Trash2:3 ./imapd.testmockpurge confmdtest <<EOF | grep maildir_purge
+TRASH2 LOGOUT
+EOF
diff --git a/imap/testsuite.txt b/imap/testsuite.txt
index 6ab1aad..462abe7 100644
--- a/imap/testsuite.txt
+++ b/imap/testsuite.txt
@@ -1769,3 +1769,10 @@
001475 * 1 FETCH (FLAGS (\Seen Label1))
001476 U022 OK STORE completed.
001477 U023 NO [ALERT] You exceeded your mail quota.
+001478 maildir_purge: ./.Trash (172800)
+001479 maildir_purgetmp: .
+001480 maildir_purge: ./.Trash (172800)
+001481 maildir_purge: ./.Trash (172800)
+001482 maildir_purge: ./.Trash2 (259200)
+001483 maildir_purge: ./.Trash (172800)
+001484 maildir_purge: ./.Trash2 (259200)