<testcase>
<info>
<keywords>
FTP
HTTPS-proxy
</keywords>
</info>

# Server-side
<reply>

# This is the HTTPS proxy response
<connect>
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Funny-head: yesyes
Content-Length: 0

</connect>

# This is the FTP server response. The Life and Adventures of Robinson Crusoe
<data>
I was born in the year %TESTNUMBER, in the city of York, of a good family, though not
of that country, myfather being a foreigner of Bremen, who settled first at
Hull.  He got a good estate by merchandise,and leaving off his trade, lived
afterwards at York, from whence he had married my mother, whoserelations were
named Robinson, a very good family in that country, and from whom I was
calledRobinson Kreutznaer; but, by the usual corruption of words in England,
we are now called—nay wecall ourselves and write our name—Crusoe; and so my
companions always called me.
</data>

<data2>
I had two elder brothers, one of whom was lieutenant-colonel to an
English regiment of foot inFlanders, formerly commanded by the famous Colonel
Lockhart, and was killed at the battle nearDunkirk against the Spaniards.
What became of my second brother I never knew, any more thanmy father or
mother knew what became of me.
</data2>

</reply>

# Client-side
<client>
<server>
ftp
https-proxy
</server>
 <name>
FTP through HTTPS-proxy, with connection re-use
 </name>
 <command>
-p -x https://%HOSTIP:%HTTPSPROXYPORT ftp://ftp.site.thru.https.proxy:%FTPPORT/%TESTNUMBER --proxy-insecure ftp://ftp.site.thru.https.proxy:%FTPPORT/%TESTNUMBER0002
</command>
<features>
http
proxy
</features>
</client>

# Verify data after the test has been "shot"
<verify>

# The second and third CONNECT will be made to the dynamic port number the FTP
# server opens for us, so we can't compare with known pre-existing numbers!

<strippart>
s/((https.proxy):(\d+))/$2:12345/
s/^(User-Agent: curl).*/$1/
</strippart>
<proxy>
CONNECT ftp.site.thru.https.proxy:12345 HTTP/1.1
Host: ftp.site.thru.https.proxy:12345
User-Agent: curl
Proxy-Connection: Keep-Alive

CONNECT ftp.site.thru.https.proxy:12345 HTTP/1.1
Host: ftp.site.thru.https.proxy:12345
User-Agent: curl
Proxy-Connection: Keep-Alive

CONNECT ftp.site.thru.https.proxy:12345 HTTP/1.1
Host: ftp.site.thru.https.proxy:12345
User-Agent: curl
Proxy-Connection: Keep-Alive

</proxy>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
EPSV
TYPE I
SIZE %TESTNUMBER
RETR %TESTNUMBER
EPSV
SIZE %TESTNUMBER0002
RETR %TESTNUMBER0002
QUIT
</protocol>
</verify>
</testcase>
