tests: Added imap STATUS command test

This commit is contained in:
Steve Holme 2013-04-29 12:43:18 +01:00
parent f317ffb7bb
commit b56e3d43e5
3 changed files with 70 additions and 0 deletions

View File

@ -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 \
\

42
tests/data/test809 Normal file
View File

@ -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>

View File

@ -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";