aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-04-29 12:43:18 +0100
committerSteve Holme <steve_holme@hotmail.com>2013-04-29 12:53:09 +0100
commitb56e3d43e5de43121779dfbbe0f7d1a19bef8c7b (patch)
treec14f8702dd8e6cf26b4d932bedb957d81c33d2b6
parentf317ffb7bbd18428ab3275ac47bf82f146f6c066 (diff)
tests: Added imap STATUS command test
-rw-r--r--tests/data/Makefile.am1
-rw-r--r--tests/data/test80942
-rwxr-xr-xtests/ftpserver.pl27
3 files changed, 70 insertions, 0 deletions
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 18120374a..4de091a4c 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -64,6 +64,7 @@ test700 test701 test702 test703 test704 test705 test706 test707 test708 \
test709 test710 test711 test712 \
\
test800 test801 test802 test803 test804 test805 test806 test807 test808 \
+test809 \
\
test850 test851 test852 test853 test854 test855 test856 test857 \
\
diff --git a/tests/data/test809 b/tests/data/test809
new file mode 100644
index 000000000..099dd3322
--- /dev/null
+++ b/tests/data/test809
@@ -0,0 +1,42 @@
+<testcase>
+<info>
+<keywords>
+IMAP
+STATUS
+CUSTOMREQUEST
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+* STATUS 809 (MESSAGES 231 UIDNEXT 44292)
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+imap
+</server>
+ <name>
+IMAP STATUS (CUSTOMREQUEST)
+ </name>
+ <command>
+imap://%HOSTIP:%IMAPPORT -u user:secret -X 'STATUS 809 (UIDNEXT MESSAGES)'
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+A001 CAPABILITY
+A002 LOGIN user secret
+A003 STATUS 809 (UIDNEXT MESSAGES)
+A004 LOGOUT
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 4c0144ff9..1163dcb74 100755
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -583,6 +583,7 @@ sub protocolsetup {
'LIST' => \&LIST_imap,
'LOGOUT' => \&LOGOUT_imap,
'SELECT' => \&SELECT_imap,
+ 'STATUS' => \&STATUS_imap,
'STORE' => \&STORE_imap
);
%displaytext = (
@@ -1004,6 +1005,32 @@ sub EXAMINE_imap {
return 0;
}
+sub STATUS_imap {
+ my ($testno) = @_;
+ fix_imap_params($testno);
+
+ logmsg "STATUS_imap got test $testno\n";
+
+ $testno =~ s/^([^0-9]*)//;
+ my $testpart = "";
+ if ($testno > 10000) {
+ $testpart = $testno % 10000;
+ $testno = int($testno / 10000);
+ }
+
+ loadtest("$srcdir/data/test$testno");
+
+ @data = getpart("reply", "data$testpart");
+
+ for my $d (@data) {
+ sendcontrol $d;
+ }
+
+ sendcontrol "$cmdid OK STATUS completed\r\n";
+
+ return 0;
+}
+
sub LOGOUT_imap {
sendcontrol "* BYE cURL IMAP server signing off\r\n";
sendcontrol "$cmdid OK LOGOUT completed\r\n";