summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2011-03-17 16:59:30 -0700
committerDan Fandrich <dan@coneharvesters.com>2011-03-17 16:59:30 -0700
commitef1c18b952de0763037b7c940cc6960bbf990912 (patch)
treeffa970c9b44bdf94c3480529c52b50ad2d60137c /tests
parent409867e62bf1b12e0fa0d39007256b5807a60cea (diff)
downloadcurl-ef1c18b952de0763037b7c940cc6960bbf990912.tar.gz
Added support for LISTing a single POP3 message
Added tests for a number of POP3 LIST operations, including one that shows a curl problem when listing no messages, so is disabled.
Diffstat (limited to 'tests')
-rw-r--r--tests/data/DISABLED1
-rw-r--r--tests/data/Makefile.am3
-rw-r--r--tests/data/test80841
-rw-r--r--tests/data/test80945
-rw-r--r--tests/data/test81045
-rw-r--r--tests/data/test81143
-rwxr-xr-xtests/ftpserver.pl24
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
################