From 2f4a487a68473762367e894b726e4f3a9e0e7e5b Mon Sep 17 00:00:00 2001 From: Daniel Stenberg <daniel@haxx.se> Date: Tue, 3 Jan 2012 16:12:58 +0100 Subject: tests: test IMAP, POP3 and SMTP over HTTP proxy tunnel --- tests/data/Makefile.am | 2 +- tests/data/test1319 | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/data/test1320 | 62 +++++++++++++++++++++++++++++++++++++++++++ tests/data/test1321 | 66 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 tests/data/test1319 create mode 100644 tests/data/test1320 create mode 100644 tests/data/test1321 diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 6b661a216..f5894940a 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -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 diff --git a/tests/data/test1319 b/tests/data/test1319 new file mode 100644 index 000000000..ab31b9c25 --- /dev/null +++ b/tests/data/test1319 @@ -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> diff --git a/tests/data/test1320 b/tests/data/test1320 new file mode 100644 index 000000000..d8671f582 --- /dev/null +++ b/tests/data/test1320 @@ -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> diff --git a/tests/data/test1321 b/tests/data/test1321 new file mode 100644 index 000000000..6050d9da2 --- /dev/null +++ b/tests/data/test1321 @@ -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> -- cgit v1.2.3