<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>

# Server-side
<reply>
# file1361 contents...
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 6
Connection: close
Content-Type: text/html
Content-Disposition: filename=name1361; charset=funny; option=strange

MOOOO
</data>
</reply>

# Client-side
<client>
# this relies on the debug feature to allow us to set directory to store the
# -O output in, using the CURL_TESTDIR variable
<features>
debug
</features>
<server>
ftp
</server>
<name>
FTP download, file with C-D inside, using -O -i -D file
</name>
<setenv>
CURL_TESTDIR=%PWD/log
</setenv>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1361 -O -i -D log/heads1361
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/name1361
</postcheck>
</client>

# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD path
EPSV
TYPE I
SIZE file1361
RETR file1361
QUIT
</protocol>

<file1 name="log/file1361">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 6
Connection: close
Content-Type: text/html
Content-Disposition: filename=name1361; charset=funny; option=strange

MOOOO
</file1>

<file2 name="log/heads1361">
220-        _   _ ____  _     
220-    ___| | | |  _ \| |    
220-   / __| | | | |_) | |    
220-  | (__| |_| |  _ {| |___ 
220    \___|\___/|_| \_\_____|
331 We are happy you popped in!
230 Welcome you silly person
257 "/" is current directory
250 CWD command successful.
229 Entering Passive Mode (stripped)
200 I modify TYPE as you wanted
213 214
150 Binary data connection for 1361 () (214 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>

<file3 name="log/stdout1361">
</file3>

</verify>
</testcase>
