Commit b56e3d43 authored by Steve Holme's avatar Steve Holme
Browse files

tests: Added imap STATUS command test

parent f317ffb7
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -64,6 +64,7 @@ test700 test701 test702 test703 test704 test705 test706 test707 test708 \
test709 test710 test711 test712 \
test709 test710 test711 test712 \
\
\
test800 test801 test802 test803 test804 test805 test806 test807 test808 \
test800 test801 test802 test803 test804 test805 test806 test807 test808 \
test809 \
\
\
test850 test851 test852 test853 test854 test855 test856 test857 \
test850 test851 test852 test853 test854 test855 test856 test857 \
\
\

tests/data/test809

0 → 100644
+42 −0
Original line number Original line Diff line number Diff line
<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>
+27 −0
Original line number Original line Diff line number Diff line
@@ -583,6 +583,7 @@ sub protocolsetup {
            'LIST'   => \&LIST_imap,
            'LIST'   => \&LIST_imap,
            'LOGOUT'   => \&LOGOUT_imap,
            'LOGOUT'   => \&LOGOUT_imap,
            'SELECT' => \&SELECT_imap,
            'SELECT' => \&SELECT_imap,
            'STATUS'  => \&STATUS_imap,
            'STORE'  => \&STORE_imap
            'STORE'  => \&STORE_imap
        );
        );
        %displaytext = (
        %displaytext = (
@@ -1004,6 +1005,32 @@ sub EXAMINE_imap {
    return 0;
    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 {
sub LOGOUT_imap {
    sendcontrol "* BYE cURL IMAP server signing off\r\n";
    sendcontrol "* BYE cURL IMAP server signing off\r\n";
    sendcontrol "$cmdid OK LOGOUT completed\r\n";
    sendcontrol "$cmdid OK LOGOUT completed\r\n";