tests: test IMAP, POP3 and SMTP over HTTP proxy tunnel

This commit is contained in:
Daniel Stenberg 2012-01-03 16:12:58 +01:00
parent 82180643f4
commit 2f4a487a68
4 changed files with 201 additions and 1 deletions

View File

@ -81,7 +81,7 @@ test1208 test1209 test1210 test1211 \
test1220 \
test1300 test1301 test1302 test1303 test1304 test1305 \
test1306 test1307 test1308 test1309 test1310 test1311 test1312 test1313 \
test1314 test1315 test1316 test1317 test1318 \
test1314 test1315 test1316 test1317 test1318 test1319 test1320 test1321 \
test2000 test2001 test2002 test2003 test2004
EXTRA_DIST = $(TESTCASES) DISABLED

72
tests/data/test1319 Normal file
View File

@ -0,0 +1,72 @@
<testcase>
<info>
<keywords>
POP3
RETR
HTTP CONNECT
</keywords>
</info>
#
# Server-side
<reply>
# When doing LIST, we get the default list output hard-coded in the test
# FTP server
<data>
From: me@somewhere
To: fake@nowhere
body
--
yours sincerely
</data>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
From: me@somewhere
To: fake@nowhere
body
--
yours sincerely
</datacheck>
</reply>
#
# Client-side
<client>
<server>
pop3
http-proxy
</server>
<name>
POP3 fetch tunneled through HTTP proxy
</name>
<command>
pop3://%HOSTIP:%POP3PORT/1319 -p -x %HOSTIP:%PROXYPORT -u user:secret
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:
</strip>
<protocol>
USER user
PASS secret
RETR 1319
QUIT
</protocol>
<proxy>
CONNECT %HOSTIP:%POP3PORT HTTP/1.1
Host: %HOSTIP:%POP3PORT
User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
Proxy-Connection: Keep-Alive
</proxy>
</verify>
</testcase>

62
tests/data/test1320 Normal file
View File

@ -0,0 +1,62 @@
<testcase>
<info>
<keywords>
SMTP
HTTP CONNECT
</keywords>
</info>
#
# Server-side
<reply>
</reply>
#
# Client-side
<client>
<server>
smtp
http-proxy
</server>
<name>
SMTP send tunneled trough HTTP proxy
</name>
<stdin>
From: different
To: another
body
</stdin>
<command>
smtp://%HOSTIP:%SMTPPORT/user --mail-rcpt 1320@foo --mail-rcpt 1320@foobar.example --mail-from 1320@from -T - -p -x %HOSTIP:%PROXYPORT
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
EHLO user
MAIL FROM:<1320@from>
RCPT TO:<1320@foo>
RCPT TO:<1320@foobar.example>
DATA
QUIT
</protocol>
<upload>
From: different
To: another
body
.
</upload>
<proxy>
CONNECT %HOSTIP:%SMTPPORT HTTP/1.1
Host: %HOSTIP:%SMTPPORT
User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
Proxy-Connection: Keep-Alive
</proxy>
</verify>
</testcase>

66
tests/data/test1321 Normal file
View File

@ -0,0 +1,66 @@
<testcase>
<info>
<keywords>
IMAP
FETCH
</keywords>
</info>
#
# Server-side
<reply>
<data>
From: me@somewhere
To: fake@nowhere
body
--
yours sincerely
</data>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
From: me@somewhere
To: fake@nowhere
body
--
yours sincerely
</datacheck>
</reply>
#
# Client-side
<client>
<server>
imap
http-proxy
</server>
<name>
IMAP FETCH tunneled through HTTP proxy
</name>
<command>
imap://%HOSTIP:%IMAPPORT/1321 -u user:secret -p -x %HOSTIP:%PROXYPORT
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
B LOGIN user secret
C SELECT 1321
D FETCH 1 BODY[TEXT]
A LOGOUT
</protocol>
<proxy>
CONNECT %HOSTIP:%IMAPPORT HTTP/1.1
Host: %HOSTIP:%IMAPPORT
User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
Proxy-Connection: Keep-Alive
</proxy>
</verify>
</testcase>