diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/data/DISABLED | 1 | ||||
-rw-r--r-- | tests/data/Makefile.am | 3 | ||||
-rw-r--r-- | tests/data/test808 | 41 | ||||
-rw-r--r-- | tests/data/test809 | 45 | ||||
-rw-r--r-- | tests/data/test810 | 45 | ||||
-rw-r--r-- | tests/data/test811 | 43 | ||||
-rwxr-xr-x | tests/ftpserver.pl | 24 |
7 files changed, 201 insertions, 1 deletions
diff --git a/tests/data/DISABLED b/tests/data/DISABLED index b6071cbd9..9ac123b18 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -3,3 +3,4 @@ # per line. # Lines starting with '#' letters are treated as comments. 564 +811 diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index c3c68cae3..502abecc5 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -70,7 +70,8 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ test313 test1115 test578 test579 test1116 test1200 test1201 test1202 \ test1203 test1117 test1118 test1119 test1120 test1300 test1301 test1302 \ test1303 test320 test321 test322 test323 test324 test1121 test581 test580 \ - test1304 test1305 test1306 test1307 test582 test583 + test1304 test1305 test1306 test1307 test582 test583 test808 test809 \ + test810 test811 filecheck: @mkdir test-place; \ diff --git a/tests/data/test808 b/tests/data/test808 new file mode 100644 index 000000000..756801c6b --- /dev/null +++ b/tests/data/test808 @@ -0,0 +1,41 @@ +<testcase> +<info> +<keywords> +POP3 +LIST +</keywords> +</info> + +# +# Server-side +<reply> +<servercmd> +REPLY LIST +OK 808 100 +</servercmd> +</reply> + +# +# Client-side +<client> +<server> +pop3 +</server> + <name> +POP3 LIST one message + </name> + <command> +pop3://%HOSTIP:%POP3PORT/808 -l -u user:secret +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<protocol> +USER user
+PASS secret
+LIST 808
+QUIT
+</protocol> +</verify> +</testcase> diff --git a/tests/data/test809 b/tests/data/test809 new file mode 100644 index 000000000..29358e00c --- /dev/null +++ b/tests/data/test809 @@ -0,0 +1,45 @@ +<testcase> +<info> +<keywords> +POP3 +LIST +FAILURE +</keywords> +</info> + +# +# Server-side +<reply> +<servercmd> +REPLY LIST -ERR no such message +</servercmd> +</reply> + +# +# Client-side +<client> +<server> +pop3 +</server> + <name> +POP3 LIST invalid message + </name> + <command> +pop3://%HOSTIP:%POP3PORT/809 -l -u user:secret +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<errorcode> +78 +</errorcode> +<protocol> +USER user
+PASS secret
+LIST 809
+QUIT
+</protocol> +</verify> +</testcase> diff --git a/tests/data/test810 b/tests/data/test810 new file mode 100644 index 000000000..d4f75972a --- /dev/null +++ b/tests/data/test810 @@ -0,0 +1,45 @@ +<testcase> +<info> +<keywords> +POP3 +LIST +</keywords> +</info> + +# +# Server-side +<reply> +# When doing LIST, we get the default list output hard-coded in the test +# POP3 server +<datacheck> +1 100
+2 4294967400
+4 200
+</datacheck> +</reply> + +# +# Client-side +<client> +<server> +pop3 +</server> + <name> +POP3 LIST messages + </name> + <command> +pop3://%HOSTIP:%POP3PORT/ -u user:secret +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<protocol> +USER user
+PASS secret
+LIST
+QUIT
+</protocol> +</verify> +</testcase> diff --git a/tests/data/test811 b/tests/data/test811 new file mode 100644 index 000000000..850e5e27d --- /dev/null +++ b/tests/data/test811 @@ -0,0 +1,43 @@ +<testcase> +<info> +<keywords> +POP3 +LIST +</keywords> +</info> + +# +# Server-side +<reply> +<servercmd> +REPLY LIST +OK but no messages\r\n. +</servercmd> +<datacheck> +</datacheck> +</reply> + +# +# Client-side +<client> +<server> +pop3 +</server> + <name> +POP3 LIST no messages available + </name> + <command> +pop3://%HOSTIP:%POP3PORT/ -u user:secret +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<protocol> +USER user
+PASS secret
+LIST
+QUIT
+</protocol> +</verify> +</testcase> diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index bbbf7be29..182511f13 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -392,6 +392,7 @@ sub protocolsetup { elsif($proto eq 'pop3') { %commandfunc = ( 'RETR' => \&RETR_pop3, + 'LIST' => \&LIST_pop3, ); %displaytext = ( 'USER' => '+OK We are happy you popped in!', @@ -683,6 +684,29 @@ sub RETR_pop3 { return 0; } +sub LIST_pop3 { + +# this is a built-in fake-message list +my @pop3list=( +"1 100\r\n", +"2 4294967400\r\n", # > 4 GB +"4 200\r\n", # Note that message 3 is a simulated "deleted" message +); + + logmsg "retrieve a message list\n"; + + sendcontrol "+OK Listing starts\r\n"; + + for my $d (@pop3list) { + sendcontrol $d; + } + + # end with the magic 5-byte end of listing marker + sendcontrol "\r\n.\r\n"; + + return 0; +} + ################ ################ FTP commands ################ |