This commit is contained in:
zhangsz
2025-03-07 16:54:33 +08:00
parent 29c5eb74bc
commit 3eae0a7615
1203 changed files with 0 additions and 299221 deletions

View File

@@ -1,96 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1362 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=name1362; 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 stdout
</name>
<setenv>
CURL_TESTDIR=%PWD/log
</setenv>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1362 -O -i -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/name1362
</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 file1362
RETR file1362
QUIT
</protocol>
<file1 name="log/file1362">
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=name1362; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/stdout1362">
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 1362 () (214 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
</verify>
</testcase>

View File

@@ -1,79 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1363 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=name1363; 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, without -D
</name>
<setenv>
CURL_TESTDIR=%PWD/log
</setenv>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1363 -O -i
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/name1363
</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 file1363
RETR file1363
QUIT
</protocol>
<file1 name="log/file1363">
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=name1363; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/stdout1363">
</file2>
</verify>
</testcase>

View File

@@ -1,71 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname without Content-Disposition, -D file
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1364 -o log/outfile1364 -D log/heads1364
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1364
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1364 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1364">
12345
</file1>
<file2 name="log/heads1364">
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
</file2>
<file3 name="log/stdout1364">
</file3>
</verify>
</testcase>

View File

@@ -1,68 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname without Content-Disposition, -D stdout
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1365 -o log/outfile1365 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1365
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1365 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1365">
12345
</file1>
<file2 name="log/stdout1365">
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
</file2>
</verify>
</testcase>

View File

@@ -1,73 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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=name1366; charset=funny; option=strange
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname and Content-Disposition, -D file
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1366 -o log/outfile1366 -D log/heads1366
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1366 log/name1366
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1366 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1366">
12345
</file1>
<file2 name="log/heads1366">
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=name1366; charset=funny; option=strange
</file2>
<file3 name="log/stdout1366">
</file3>
</verify>
</testcase>

View File

@@ -1,70 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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=name1367; charset=funny; option=strange
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname and Content-Disposition, -D stdout
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1367 -o log/outfile1367 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1367 log/name1367
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1367 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1367">
12345
</file1>
<file2 name="log/stdout1367">
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=name1367; charset=funny; option=strange
</file2>
</verify>
</testcase>

View File

@@ -1,72 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
-J
</keywords>
</info>
#
<reply>
<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
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -J without Content-Disposition, -D file
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1368 -J -o log/outfile1368 -D log/heads1368
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1368
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1368 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1368">
12345
</file1>
<file2 name="log/heads1368">
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
</file2>
<file3 name="log/stdout1368">
</file3>
</verify>
</testcase>

View File

@@ -1,69 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
-J
</keywords>
</info>
#
<reply>
<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
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -J without Content-Disposition, -D stdout
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1369 -J -o log/outfile1369 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1369
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1369 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1369">
12345
</file1>
<file2 name="log/stdout1369">
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
</file2>
</verify>
</testcase>

View File

@@ -1,47 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
--data-binary
</keywords>
</info>
# Server-side
<reply>
<data>
this is file contents
</data>
<servercmd>
RETRNOSIZE
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download without size in RETR string
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/lululul/137
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD blalbla
CWD lululul
EPSV
TYPE I
SIZE 137
RETR 137
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,74 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
-J
</keywords>
</info>
#
<reply>
<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=name1370; charset=funny; option=strange
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -J and Content-Disposition, -D file
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1370 -J -o log/outfile1370 -D log/heads1370
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1370 log/name1370
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1370 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1370">
12345
</file1>
<file2 name="log/heads1370">
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=name1370; charset=funny; option=strange
</file2>
<file3 name="log/stdout1370">
</file3>
</verify>
</testcase>

View File

@@ -1,71 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
-J
</keywords>
</info>
#
<reply>
<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=name1371; charset=funny; option=strange
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -J and Content-Disposition, -D stdout
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1371 -J -o log/outfile1371 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1371 log/name1371
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1371 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1371">
12345
</file1>
<file2 name="log/stdout1371">
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=name1371; charset=funny; option=strange
</file2>
</verify>
</testcase>

View File

@@ -1,78 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -i without Content-Disposition, -D file
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1372 -i -o log/outfile1372 -D log/heads1372
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1372
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1372 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1372">
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
12345
</file1>
<file2 name="log/heads1372">
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
</file2>
<file3 name="log/stdout1372">
</file3>
</verify>
</testcase>

View File

@@ -1,75 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -i without Content-Disposition, -D stdout
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1373 -i -o log/outfile1373 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1373
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1373 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1373">
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
12345
</file1>
<file2 name="log/stdout1373">
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
</file2>
</verify>
</testcase>

View File

@@ -1,81 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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=name1374; charset=funny; option=strange
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -i and Content-Disposition, -D file
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1374 -i -o log/outfile1374 -D log/heads1374
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1374 log/name1374
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1374 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1374">
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=name1374; charset=funny; option=strange
12345
</file1>
<file2 name="log/heads1374">
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=name1374; charset=funny; option=strange
</file2>
<file3 name="log/stdout1374">
</file3>
</verify>
</testcase>

View File

@@ -1,78 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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=name1375; charset=funny; option=strange
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -i and Content-Disposition, -D stdout
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1375 -i -o log/outfile1375 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1375 log/name1375
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1375 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1375">
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=name1375; charset=funny; option=strange
12345
</file1>
<file2 name="log/stdout1375">
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=name1375; charset=funny; option=strange
</file2>
</verify>
</testcase>

View File

@@ -1,68 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -i without Content-Disposition, without -D
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1376 -i -o log/outfile1376
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1376
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1376 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1376">
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
12345
</file1>
<file2 name="log/stdout1376">
</file2>
</verify>
</testcase>

View File

@@ -1,70 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<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=name1377; charset=funny; option=strange
12345
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname -i and Content-Disposition, without -D
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1377 -i -o log/outfile1377
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1377 log/name1377
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1377 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1377">
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=name1377; charset=funny; option=strange
12345
</file1>
<file2 name="log/stdout1377">
</file2>
</verify>
</testcase>

View File

@@ -1,56 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without Content-Disposition inside, using -o fname
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1378 -o log/download1378
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1378
</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 file1378
RETR file1378
QUIT
</protocol>
<file1 name="log/download1378">
fooo
mooo
</file1>
<file2 name="log/stdout1378">
</file2>
</verify>
</testcase>

View File

@@ -1,76 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without C-D inside, using -o fname -D file
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1379 -o log/download1379 -D log/heads1379
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1379
</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 file1379
RETR file1379
QUIT
</protocol>
<file1 name="log/download1379">
fooo
mooo
</file1>
<file2 name="log/heads1379">
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 10
150 Binary data connection for 1379 () (10 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
<file3 name="log/stdout1379">
</file3>
</verify>
</testcase>

View File

@@ -1,49 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
<data>
this is file contents
</data>
<size>
-1
</size>
<servercmd>
RETRNOSIZE
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download without size in RETR string and no SIZE command
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/lululul/138
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD blalbla
CWD lululul
EPSV
TYPE I
SIZE 138
RETR 138
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,73 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without C-D inside, using -o fname -D stdout
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1380 -o log/download1380 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1380
</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 file1380
RETR file1380
QUIT
</protocol>
<file1 name="log/download1380">
fooo
mooo
</file1>
<file2 name="log/stdout1380">
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 10
150 Binary data connection for 1380 () (10 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
</verify>
</testcase>

View File

@@ -1,77 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
-J
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without C-D inside, using -o fname -J -D file
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1381 -o log/download1381 -J -D log/heads1381
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1381
</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 file1381
RETR file1381
QUIT
</protocol>
<file1 name="log/download1381">
fooo
mooo
</file1>
<file2 name="log/heads1381">
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 10
150 Binary data connection for 1381 () (10 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
<file3 name="log/stdout1381">
</file3>
</verify>
</testcase>

View File

@@ -1,74 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
-J
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without C-D inside, using -o fname -J -D stdout
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1382 -o log/download1382 -J -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1382
</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 file1382
RETR file1382
QUIT
</protocol>
<file1 name="log/download1382">
fooo
mooo
</file1>
<file2 name="log/stdout1382">
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 10
150 Binary data connection for 1382 () (10 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
</verify>
</testcase>

View File

@@ -1,76 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without C-D inside, using -o fname -i -D file
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1383 -o log/download1383 -i -D log/heads1383
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1383
</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 file1383
RETR file1383
QUIT
</protocol>
<file1 name="log/download1383">
fooo
mooo
</file1>
<file2 name="log/heads1383">
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 10
150 Binary data connection for 1383 () (10 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
<file3 name="log/stdout1383">
</file3>
</verify>
</testcase>

View File

@@ -1,73 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without C-D inside, using -o fname -i -D stdout
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1384 -o log/download1384 -i -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1384
</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 file1384
RETR file1384
QUIT
</protocol>
<file1 name="log/download1384">
fooo
mooo
</file1>
<file2 name="log/stdout1384">
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 10
150 Binary data connection for 1384 () (10 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
</verify>
</testcase>

View File

@@ -1,56 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
fooo
mooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file without C-D inside, using -o fname -i, without -D
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1385 -o log/download1385 -i
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1385
</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 file1385
RETR file1385
QUIT
</protocol>
<file1 name="log/download1385">
fooo
mooo
</file1>
<file2 name="log/stdout1385">
</file2>
</verify>
</testcase>

View File

@@ -1,71 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1386 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=name1386; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with Content-Disposition inside, using -o fname
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1386 -o log/download1386
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1386 log/name1386
</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 file1386
RETR file1386
QUIT
</protocol>
<file1 name="log/download1386">
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=name1386; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/stdout1386">
</file2>
</verify>
</testcase>

View File

@@ -1,91 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1387 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=name1387; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with C-D inside, using -o fname -D file
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1387 -o log/download1387 -D log/heads1387
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1387 log/name1387
</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 file1387
RETR file1387
QUIT
</protocol>
<file1 name="log/download1387">
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=name1387; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/heads1387">
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 222
150 Binary data connection for 1387 () (222 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
<file3 name="log/stdout1387">
</file3>
</verify>
</testcase>

View File

@@ -1,88 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1388 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=name1388; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with C-D inside, using -o fname -D stdout
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1388 -o log/download1388 -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1388 log/name1388
</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 file1388
RETR file1388
QUIT
</protocol>
<file1 name="log/download1388">
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=name1388; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/stdout1388">
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 222
150 Binary data connection for 1388 () (222 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
</verify>
</testcase>

View File

@@ -1,92 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
-J
</keywords>
</info>
# Server-side
<reply>
# file1389 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=name1389; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with C-D inside, using -o fname -J -D file
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1389 -o log/download1389 -J -D log/heads1389
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1389 log/name1389
</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 file1389
RETR file1389
QUIT
</protocol>
<file1 name="log/download1389">
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=name1389; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/heads1389">
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 222
150 Binary data connection for 1389 () (222 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
<file3 name="log/stdout1389">
</file3>
</verify>
</testcase>

View File

@@ -1,47 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
-z
</keywords>
</info>
# Server-side
<reply>
<data>
this is file contents
</data>
<mdtm>
213 20030409102659
</mdtm>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download a newer file with -z
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/139 -z "1 jan 1989"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD blalbla
MDTM 139
EPSV
TYPE I
SIZE 139
RETR 139
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,89 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
-J
</keywords>
</info>
# Server-side
<reply>
# file1390 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=name1390; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with C-D inside, using -o fname -J -D stdout
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1390 -o log/download1390 -J -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1390 log/name1390
</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 file1390
RETR file1390
QUIT
</protocol>
<file1 name="log/download1390">
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=name1390; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/stdout1390">
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 222
150 Binary data connection for 1390 () (222 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
</verify>
</testcase>

View File

@@ -1,91 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1391 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=name1391; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with C-D inside, using -o fname -i -D file
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1391 -o log/download1391 -i -D log/heads1391
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1391 log/name1391
</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 file1391
RETR file1391
QUIT
</protocol>
<file1 name="log/download1391">
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=name1391; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/heads1391">
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 222
150 Binary data connection for 1391 () (222 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
<file3 name="log/stdout1391">
</file3>
</verify>
</testcase>

View File

@@ -1,88 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1392 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=name1392; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with C-D inside, using -o fname -i -D stdout
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1392 -o log/download1392 -i -D -
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1392 log/name1392
</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 file1392
RETR file1392
QUIT
</protocol>
<file1 name="log/download1392">
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=name1392; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/stdout1392">
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 222
150 Binary data connection for 1392 () (222 bytes).
226 File transfer complete
</file2>
<stripfile2>
s/^(229 Entering Passive Mode \().*(\).*)/${1}stripped${2}/
</stripfile2>
</verify>
</testcase>

View File

@@ -1,71 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
</keywords>
</info>
# Server-side
<reply>
# file1393 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=name1393; charset=funny; option=strange
MOOOO
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP DL, file with C-D inside, using -o fname -i, without -D
</name>
<command option="no-output,no-include">
ftp://%HOSTIP:%FTPPORT/path/file1393 -o log/download1393 -i
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/file1393 log/name1393
</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 file1393
RETR file1393
QUIT
</protocol>
<file1 name="log/download1393">
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=name1393; charset=funny; option=strange
MOOOO
</file1>
<file2 name="log/stdout1393">
</file2>
</verify>
</testcase>

View File

@@ -1,30 +0,0 @@
<testcase>
<info>
<keywords>
unittest
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<features>
unittest
</features>
<name>
unit test for parse_cert_parameter()
</name>
<tool>
unit1394
</tool>
</client>
<verify>
<stdout mode="text">
</stdout>
</verify>
</testcase>

View File

@@ -1,26 +0,0 @@
<testcase>
<info>
<keywords>
unittest
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<features>
unittest
</features>
<name>
Curl_dedotdotify
</name>
<tool>
unit1395
</tool>
</client>
</testcase>

View File

@@ -1,27 +0,0 @@
<testcase>
<info>
<keywords>
unittest
curl_easy_escape
curl_easy_unescape
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<features>
unittest
</features>
<name>
curl_easy_escape and curl_easy_unescape
</name>
<tool>
unit1396
</tool>
</client>
</testcase>

View File

@@ -1,27 +0,0 @@
<testcase>
<info>
<keywords>
unittest
ssl
wildcard
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<features>
unittest
</features>
<name>
Check wildcard certificate matching function Curl_cert_hostcheck
</name>
<tool>
unit1397
</tool>
</client>
</testcase>

View File

@@ -1,26 +0,0 @@
<testcase>
<info>
<keywords>
unittest
curl_msnprintf
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<features>
unittest
</features>
<name>
curl_msnprintf unit tests
</name>
<tool>
unit1398
</tool>
</client>
</testcase>

View File

@@ -1,44 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP HEAD
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Server: thebest/1.0
Connection: close
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP HEAD with Connection: close
</name>
<command>
http://%HOSTIP:%HTTPPORT/want/14 -i --head
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
HEAD /want/14 HTTP/1.1
User-Agent: curl/7.4.2-pre4 (sparc-sun-solaris2.7) libcurl 7.4.2-pre4
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,42 +0,0 @@
<testcase>
<info>
<keywords>
FTP
-z
--data-binary
</keywords>
</info>
# Server-side
<reply>
<data>
</data>
<mdtm>
213 20030409102659
</mdtm>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download file with -z, expected to not transfer
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/140 -z "1 jan 2004"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD blalbla
MDTM 140
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,105 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
--libcurl
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 0
Connection: close
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
--libcurl for simple HTTP GET
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/1400 --libcurl log/test1400.c
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /we/want/1400 HTTP/1.1
User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<stripfile>
s/(USERAGENT, \")[^\"]+/${1}stripped/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
<file name="log/test1400.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1400");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
</verify>
</testcase>

View File

@@ -1,128 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP Basic auth
HTTP set cookie
cookies
--libcurl
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 0
Content-Type: text/plain
Connection: close
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
--libcurl for GET with various options
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/1401 --libcurl log/test1401.c --basic -u fake:user -H "X-Files: Mulder" -H "X-Men: cyclops, iceman" -A MyUA -b chocolate=chip --proto "=http,ftp,file"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /we/want/1401 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: stripped
Authorization: Basic ZmFrZTp1c2Vy
Accept: */*
Cookie: chocolate=chip
X-Files: Mulder
X-Men: cyclops, iceman
</protocol>
<stripfile>
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
<file name="log/test1401.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
struct curl_slist *slist1;
slist1 = NULL;
slist1 = curl_slist_append(slist1, "X-Files: Mulder");
slist1 = curl_slist_append(slist1, "X-Men: cyclops, iceman");
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1401");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_USERPWD, "fake:user");
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "MyUA");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, slist1);
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_HTTPAUTH, (long)CURLAUTH_BASIC);
curl_easy_setopt(hnd, CURLOPT_COOKIE, "chocolate=chip");
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
curl_easy_setopt(hnd, CURLOPT_PROTOCOLS, (long)CURLPROTO_FILE |
(long)CURLPROTO_FTP |
(long)CURLPROTO_HTTP);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
curl_slist_free_all(slist1);
slist1 = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
<stdout>
</stdout>
</verify>
</testcase>

View File

@@ -1,114 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP POST
--libcurl
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 0
Content-Type: text/plain
Connection: close
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
--libcurl for simple POST
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/1402 --libcurl log/test1402.c -d "foo=bar" -d "baz=quux"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol nonewline="yes">
POST /we/want/1402 HTTP/1.1
User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 16
Content-Type: application/x-www-form-urlencoded
foo=bar&baz=quux
</protocol>
<stripfile>
# curl's default user-agent varies with version, libraries etc.
s/(USERAGENT, \")[^\"]+/${1}stripped/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
<file name="log/test1402.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1402");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "foo=bar&baz=quux");
curl_easy_setopt(hnd, CURLOPT_POSTFIELDSIZE_LARGE, (curl_off_t)16);
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
<stdout>
</stdout>
</verify>
</testcase>

View File

@@ -1,109 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
--libcurl
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 0
Content-Type: text/plain
Connection: close
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
--libcurl for GET with query
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/1403 --libcurl log/test1403.c -G -d "foo=bar" -d "baz=quux"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /we/want/1403?foo=bar&baz=quux HTTP/1.1
User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<stripfile>
# curl's default user-agent varies with version, libraries etc.
s/(USERAGENT, \")[^\"]+/${1}stripped/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
<file name="log/test1403.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1403?foo=bar&baz=quux");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
<stdout>
</stdout>
</verify>
</testcase>

View File

@@ -1,163 +0,0 @@
<testcase>
# Based on test 1315
<info>
<keywords>
HTTP
HTTP FORMPOST
HTTP file upload
--libcurl
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 0
Connection: close
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
--libcurl for HTTP RFC1867-type formposting - -F with three files, one with explicit type
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/1404 -F name=value -F 'file=@log/test1404.txt,log/test1404.txt;type=magic/content,log/test1404.txt' --libcurl log/test1404.c
</command>
# We create this file before the command is invoked!
<file name="log/test1404.txt">
dummy data
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
(^User-Agent:.*|-----+\w+)
</strip>
<protocol>
POST /we/want/1404 HTTP/1.1
User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 795
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
------------------------------9ef8d6205763
Content-Disposition: form-data; name="name"
value
------------------------------9ef8d6205763
Content-Disposition: form-data; name="file"
Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa
Content-Disposition: attachment; filename="test1404.txt"
Content-Type: text/plain
dummy data
------------------------------9ef8d6205763
Content-Disposition: attachment; filename="test1404.txt"
Content-Type: magic/content
dummy data
------------------------------9ef8d6205763
Content-Disposition: attachment; filename="test1404.txt"
Content-Type: text/plain
dummy data
------------------------------aaaaaaaaaaaa--
------------------------------9ef8d6205763--
</protocol>
<stripfile>
# curl's default user-agent varies with version, libraries etc.
s/(USERAGENT, \")[^\"]+/${1}stripped/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
<file name="log/test1404.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
struct curl_httppost *post1;
struct curl_httppost *postend;
post1 = NULL;
postend = NULL;
curl_formadd(&post1, &postend,
CURLFORM_COPYNAME, "name",
CURLFORM_COPYCONTENTS, "value",
CURLFORM_END);
curl_formadd(&post1, &postend,
CURLFORM_COPYNAME, "file",
CURLFORM_FILE, "log/test1404.txt",
CURLFORM_CONTENTTYPE, "text/plain",
CURLFORM_FILE, "log/test1404.txt",
CURLFORM_CONTENTTYPE, "magic/content",
CURLFORM_FILE, "log/test1404.txt",
CURLFORM_CONTENTTYPE, "text/plain",
CURLFORM_END);
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1404");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_HTTPPOST, post1);
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
curl_formfree(post1);
post1 = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
</verify>
</testcase>

View File

@@ -1,138 +0,0 @@
<testcase>
# Derived from test227
<info>
<keywords>
FTP
post-quote
pre-quote
--libcurl
</keywords>
</info>
# Server-side
<reply>
<data>
data
to
see
that FTP
works
so does it?
</data>
<servercmd>
REPLY EPSV 500 no such command
REPLY FAIL 500 this might not be a failure!
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
--libcurl for FTP with quote ops
</name>
<command>
ftp://%HOSTIP:%FTPPORT/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/test1405.c
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
NOOP 1
FAIL
EPSV
PASV
TYPE I
NOOP 2
FAIL HARD
SIZE 1405
RETR 1405
NOOP 3
QUIT
</protocol>
<file name="log/test1405.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
struct curl_slist *slist1;
struct curl_slist *slist2;
struct curl_slist *slist3;
slist1 = NULL;
slist1 = curl_slist_append(slist1, "NOOP 1");
slist1 = curl_slist_append(slist1, "*FAIL");
slist2 = NULL;
slist2 = curl_slist_append(slist2, "NOOP 3");
slist3 = NULL;
slist3 = curl_slist_append(slist3, "NOOP 2");
slist3 = curl_slist_append(slist3, "*FAIL HARD");
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "ftp://%HOSTIP:%FTPPORT/1405");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_QUOTE, slist1);
curl_easy_setopt(hnd, CURLOPT_POSTQUOTE, slist2);
curl_easy_setopt(hnd, CURLOPT_PREQUOTE, slist3);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
curl_slist_free_all(slist1);
slist1 = NULL;
curl_slist_free_all(slist2);
slist2 = NULL;
curl_slist_free_all(slist3);
slist3 = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
<stripfile>
# CURLOPT_USERAGENT and CURLOPT_MAXREDIRS requires HTTP protocol
# support, IOW depends on configuration - just ignore these.
$_ = '' if /CURLOPT_USERAGENT/
$_ = '' if /CURLOPT_MAXREDIRS/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
</verify>
</testcase>

View File

@@ -1,127 +0,0 @@
<testcase>
# Based on test900
# N.B. --libcurl output not sufficient to deal with uploaded files.
<info>
<keywords>
SMTP
--libcurl
</keywords>
</info>
#
# Server-side
<reply>
<servercmd>
CAPA SIZE
</servercmd>
</reply>
#
# Client-side
<client>
<server>
smtp
</server>
<name>
--libcurl for SMTP
</name>
<file name="log/test1406.eml">
From: different
To: another
body
</file>
<command>
smtp://%HOSTIP:%SMTPPORT/1406 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/test1406.eml --libcurl log/test1406.c
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
EHLO 1406
MAIL FROM:<sender@example.com> SIZE=38
RCPT TO:<recipient.one@example.com>
RCPT TO:<recipient.two@example.com>
DATA
QUIT
</protocol>
<upload>
From: different
To: another
body
.
</upload>
<file name="log/test1406.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
struct curl_slist *slist1;
slist1 = NULL;
slist1 = curl_slist_append(slist1, "recipient.one@example.com");
slist1 = curl_slist_append(slist1, "recipient.two@example.com");
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_INFILESIZE_LARGE, (curl_off_t)38);
curl_easy_setopt(hnd, CURLOPT_URL, "smtp://%HOSTIP:%SMTPPORT/1406");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
curl_easy_setopt(hnd, CURLOPT_MAIL_FROM, "sender@example.com");
curl_easy_setopt(hnd, CURLOPT_MAIL_RCPT, slist1);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
curl_slist_free_all(slist1);
slist1 = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
<stripfile>
# curl's default user-agent varies with version, libraries etc.
s/(USERAGENT, \")[^\"]+/${1}stripped/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
</verify>
</testcase>

View File

@@ -1,105 +0,0 @@
<testcase>
# Based on test851
<info>
<keywords>
POP3
Clear Text
LIST
--libcurl
</keywords>
</info>
#
# Server-side
<reply>
<servercmd>
REPLY LIST +OK 1407 100\r\n.
</servercmd>
</reply>
#
# Client-side
<client>
<server>
pop3
</server>
<name>
--libcurl for POP3 LIST one message
</name>
<command>
pop3://%HOSTIP:%POP3PORT/1407 -l -u user:secret --libcurl log/test1407.c
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
CAPA
USER user
PASS secret
LIST 1407
QUIT
</protocol>
<file name="log/test1407.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "pop3://%HOSTIP:%POP3PORT/1407");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_DIRLISTONLY, 1L);
curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:secret");
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
<stripfile>
# curl's default user-agent varies with version, libraries etc.
s/(USERAGENT, \")[^\"]+/${1}stripped/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
</verify>
</testcase>

View File

@@ -1,74 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
IPv6
cookies
cookiejar
</keywords>
</info>
#
# Server-side
<reply>
<data1>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 6
Connection: close
Content-Type: text/html
Set-Cookie: time=1
-foo-
</data1>
<data2>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 6
Connection: close
Content-Type: text/html
Set-Cookie: time=2
-foo-
</data2>
</reply>
#
# Client-side
<client>
<features>
ipv6
</features>
<server>
http-ipv6
</server>
<name>
HTTP receive cookies over IPV6
</name>
<command>
-c log/jar1408 -g http://%HOST6IP:%HTTP6PORT/path/14080001 http://%HOST6IP:%HTTP6PORT/path/14080002
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /path/14080001 HTTP/1.1
Host: %HOST6IP:%HTTP6PORT
Accept: */*
GET /path/14080002 HTTP/1.1
Host: %HOST6IP:%HTTP6PORT
Accept: */*
Cookie: time=1
</protocol>
</verify>
</testcase>

View File

@@ -1,31 +0,0 @@
<testcase>
<info>
<keywords>
cmdline
FAILURE
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<name>
Pass in string to -C
</name>
<command>
http://%HOSTIP:%HTTPPORT/1409 -C wrong
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<errorcode>
2
</errorcode>
</verify>
</testcase>

View File

@@ -1,52 +0,0 @@
<testcase>
<info>
<keywords>
FTP
NOBODY
</keywords>
</info>
# Server-side
<reply>
<data>
</data>
<size>
42
</size>
<mdtm>
213 20030409102659
</mdtm>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download info with -I
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/141 -I
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD blalbla
MDTM 141
TYPE I
SIZE 141
REST 0
QUIT
</protocol>
<stdout>
Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT
Content-Length: 42
Accept-ranges: bytes
</stdout>
</verify>
</testcase>

View File

@@ -1,31 +0,0 @@
<testcase>
<info>
<keywords>
cmdline
FAILURE
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<name>
Pass in negative number to --max-time
</name>
<command>
http://%HOSTIP:%HTTPPORT/1410 --max-time -4
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<errorcode>
2
</errorcode>
</verify>
</testcase>

View File

@@ -1,60 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
PUT
</keywords>
</info>
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
# make sure there's no Expect: 100-continue when there's no file to send!
<name>
HTTP with zero size file PUT
</name>
<command>
http://%HOSTIP:%HTTPPORT/1411 -T log/empty1411
</command>
# create an empty file
<file name="log/empty1411">
</file>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
PUT /1411 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 0
</protocol>
</verify>
</testcase>

View File

@@ -1,118 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP Digest auth
--anyauth
</keywords>
</info>
# Server-side
<reply>
<servercmd>
auth_required
</servercmd>
<data>
HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344"
Content-Type: text/html; charset=iso-8859-1
Connection: close
This is not the real page
</data>
# This is supposed to be returned when the server gets a
# Authorization: Digest line passed-in from the client
<data1000>
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 23
Connection: close
This IS the real page!
</data1000>
# This is the second request
<data1001>
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 23
Connection: close
This IS the second real page!
</data1001>
<datacheck>
HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344"
Content-Type: text/html; charset=iso-8859-1
Connection: close
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 23
Connection: close
This IS the real page!
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<features>
!SSPI
crypto
</features>
<name>
HTTP GET with --anyauth with two URLs (picking Digest)
</name>
<command>
http://%HOSTIP:%HTTPPORT/1412 -u testuser:testpass --anyauth http://%HOSTIP:%HTTPPORT/14120001
</command>
<file name="log/put1412">
This is data we upload with PUT
a second line
line three
four is the number of lines
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1412 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /1412 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/1412", response="0390dbe89e31adca0413d11f91f30e7f"
User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Accept: */*
GET /14120001 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/14120001", response="0085df91870374c8bf4e94415e7fbf8e"
User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,73 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
followlocation
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 302 OK swsclose
Location: moo.html/14130002#fragmentpart
Date: Thu, 09 Nov 2010 14:49:00 GMT
Connection: close
</data>
<data2>
HTTP/1.1 200 OK swsclose
Location: this should be ignored
Date: Thu, 09 Nov 2010 14:49:00 GMT
Connection: close
body
</data2>
<datacheck>
HTTP/1.1 302 OK swsclose
Location: moo.html/14130002#fragmentpart
Date: Thu, 09 Nov 2010 14:49:00 GMT
Connection: close
HTTP/1.1 200 OK swsclose
Location: this should be ignored
Date: Thu, 09 Nov 2010 14:49:00 GMT
Connection: close
body
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP redirect with fragment in new URL
</name>
<command>
http://%HOSTIP:%HTTPPORT/this/1413 -L
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /this/1413 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /this/moo.html/14130002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,57 +0,0 @@
<testcase>
<info>
<keywords>
FTP
PORT
RETR
no SIZE
</keywords>
</info>
# Server-side
<reply>
<data>
data
to
see
that FTP
works
so does it?
</data>
<servercmd>
REPLY SIZE 502 no such command
REPLY EPRT 502 no such command
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP PORT without SIZE or EPRT support
</name>
<command>
ftp://%HOSTIP:%FTPPORT/1414 -P -
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strippart>
s/^(EPRT \|1\|)(.*)/$1/
s/^(PORT)(.*)/$1/
</strippart>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
EPRT |1|
PORT
TYPE I
SIZE 1414
RETR 1414
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,75 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP proxy
cookies
cookiejar
delete expired cookie
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 4
Content-Type: text/html
Funny-head: yesyes
Set-Cookie: test1value=test1; domain=example.com; path=/;
Set-Cookie: test2value=test2; expires=Friday, 01-Jan-2037 00:00:00 GMT; domain=example.com; path=/;
Set-Cookie: test3value=test3; expires=Monday, 13-Jun-1988 03:04:55 GMT; domain=example.com; path=/;
Set-Cookie: test4value=test4; expires=Friday, 01-Jan-2037 00:00:00 GMT; domain=example.com; path=/;
Set-Cookie: test5value=test5; expires=Monday, 13-Jun-1988 03:04:55 GMT; domain=example.com; path=/;
Set-Cookie: test6value=test6; expires=Monday, 13-Jun-1988 03:04:55 GMT; domain=example.com; path=/;
Set-Cookie: test7value=test7; expires=Friday, 01-Jan-2037 00:00:00 GMT; domain=example.com; path=/;
Set-Cookie: test8value=test8; expires=Monday, 13-Jun-1988 03:04:55 GMT; domain=example.com; path=/;
boo
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
Delete expired cookies
</name>
<setenv>
TZ=GMT
</setenv>
<command>
http://example.com/we/want/1415 -b none -c log/jar1415.txt -x %HOSTIP:%HTTPPORT
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET http://example.com/we/want/1415 HTTP/1.1
Host: example.com
Accept: */*
Proxy-Connection: Keep-Alive
</protocol>
<file name="log/jar1415.txt" mode="text">
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
.example.com TRUE / FALSE 0 test1value test1
.example.com TRUE / FALSE 2114380800 test2value test2
.example.com TRUE / FALSE 2114380800 test4value test4
.example.com TRUE / FALSE 2114380800 test7value test7
</file>
</verify>
</testcase>

View File

@@ -1,63 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
chunked Transfer-Encoding
</keywords>
</info>
#
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Connection: mooo
12345678123456789
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
30
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
21;heresatest=moooo
cccccccccccccccccccccccccccccccc
0
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with chunked Transfer-Encoding overflowed chunked size
</name>
<command>
http://%HOSTIP:%HTTPPORT/1416
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1416 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
# 56 = CURLE_RECV_ERROR
<errorcode>
56
</errorcode>
</verify>
</testcase>

View File

@@ -1,78 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
chunked Transfer-Encoding
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Trailer: chunky-trailer
Connection: mooo
40
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
30
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
21;heresatest=moooo
cccccccccccccccccccccccccccccccc
0
chunky-trailer: header data
</data>
<datacheck>
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Trailer: chunky-trailer
Connection: mooo
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with chunked encoding and chunked trailer without CRs
</name>
<command>
http://%HOSTIP:%HTTPPORT/1417 -D log/heads1417
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1417 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file name="log/heads1417">
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Trailer: chunky-trailer
Connection: mooo
chunky-trailer: header data
</file>
</verify>
</testcase>

View File

@@ -1,108 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP NTLM auth
connection re-use
</keywords>
</info>
# Server-side
<reply>
<servercmd>
connection-monitor
</servercmd>
<data>
HTTP/1.1 401 Authentication please!
Content-Length: 20
WWW-Authenticate: Digest realm="loonie", nonce="314156592"
WWW-Authenticate: Basic
Please auth with me
</data>
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<data1000>
HTTP/1.1 200 Things are fine in server land
Server: Microsoft-IIS/5.0
Content-Length: 4
moo
</data1000>
<data1003>
HTTP/1.1 200 OK
Server: Another one/1.0
Content-Length: 4
boo
</data1003>
# This is the first reply after the redirection
<data1011>
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
Content-Length: 34
This is not the real page either!
</data1011>
<datacheck>
HTTP/1.1 401 Authentication please!
Content-Length: 20
WWW-Authenticate: Digest realm="loonie", nonce="314156592"
WWW-Authenticate: Basic
HTTP/1.1 200 Things are fine in server land
Server: Microsoft-IIS/5.0
Content-Length: 4
moo
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<features>
!SSPI
crypto
</features>
<name>
HTTP with --anyauth and connection re-use
</name>
<command>
http://%HOSTIP:%HTTPPORT/1418 -u testuser:testpass --anyauth http://%HOSTIP:%HTTPPORT/14180003
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1418 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /1418 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: Digest username="testuser", realm="loonie", nonce="314156592", uri="/1418", response="986238b7e0077754944c966f56d9bc77"
Accept: */*
GET /14180003 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: Digest username="testuser", realm="loonie", nonce="314156592", uri="/14180003", response="1c6390a67bac3283a9b023402f3b3540"
Accept: */*
[DISCONNECT]
</protocol>
</verify>
</testcase>

View File

@@ -1,69 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP NTLM auth
connection re-use
</keywords>
</info>
# Server-side
<reply>
<servercmd>
connection-monitor
</servercmd>
<data>
HTTP/1.1 200 fine!
Content-Length: 20
Feel free to get it
</data>
<data3>
HTTP/1.1 200 OK
Server: Another one/1.0
Content-Length: 4
boo
</data3>
<datacheck>
HTTP/1.1 200 fine!
Content-Length: 20
Feel free to get it
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP with --anyauth (but no auth!) and connection re-use
</name>
<command>
http://%HOSTIP:%HTTPPORT/1419 --anyauth http://%HOSTIP:%HTTPPORT/14190003
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1419 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /14190003 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
[DISCONNECT]
</protocol>
</verify>
</testcase>

View File

@@ -1,190 +0,0 @@
<testcase>
<info>
<keywords>
FTP
</keywords>
</info>
# Server-side
<reply>
<data>
many parts there are
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP URL with 150 dir levels
</name>
<command>
ftp://%HOSTIP:%FTPPORT/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD part1
CWD part2
CWD part3
CWD part4
CWD part5
CWD part6
CWD part7
CWD part8
CWD part9
CWD part10
CWD part11
CWD part12
CWD part13
CWD part14
CWD part15
CWD part16
CWD part17
CWD part18
CWD part19
CWD part20
CWD part21
CWD part22
CWD part23
CWD part24
CWD part25
CWD part26
CWD part27
CWD part28
CWD part29
CWD part30
CWD part31
CWD part32
CWD part33
CWD part34
CWD part35
CWD part36
CWD part37
CWD part38
CWD part39
CWD part40
CWD part41
CWD part42
CWD part43
CWD part44
CWD part45
CWD part46
CWD part47
CWD part48
CWD part49
CWD part50
CWD part51
CWD part52
CWD part53
CWD part54
CWD part55
CWD part56
CWD part57
CWD part58
CWD part59
CWD part60
CWD part61
CWD part62
CWD part63
CWD part64
CWD part65
CWD part66
CWD part67
CWD part68
CWD part69
CWD part70
CWD part71
CWD part72
CWD part73
CWD part74
CWD part75
CWD part76
CWD part77
CWD part78
CWD part79
CWD part80
CWD part81
CWD part82
CWD part83
CWD part84
CWD part85
CWD part86
CWD part87
CWD part88
CWD part89
CWD part90
CWD part91
CWD part92
CWD part93
CWD part94
CWD part95
CWD part96
CWD part97
CWD part98
CWD part99
CWD part100
CWD part101
CWD part102
CWD part103
CWD part104
CWD part105
CWD part106
CWD part107
CWD part108
CWD part109
CWD part110
CWD part111
CWD part112
CWD part113
CWD part114
CWD part115
CWD part116
CWD part117
CWD part118
CWD part119
CWD part120
CWD part121
CWD part122
CWD part123
CWD part124
CWD part125
CWD part126
CWD part127
CWD part128
CWD part129
CWD part130
CWD part131
CWD part132
CWD part133
CWD part134
CWD part135
CWD part136
CWD part137
CWD part138
CWD part139
CWD part140
CWD part141
CWD part142
CWD part143
CWD part144
CWD part145
CWD part146
CWD part147
CWD part148
CWD part149
CWD part150
EPSV
TYPE I
SIZE 142
RETR 142
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,110 +0,0 @@
<testcase>
# Based on test800
<info>
<keywords>
IMAP
Clear Text
FETCH
--libcurl
</keywords>
</info>
#
# Server-side
<reply>
<data>
From: me@somewhere
To: fake@nowhere
body
--
yours sincerely
</data>
</reply>
#
# Client-side
<client>
<server>
imap
</server>
<name>
--libcurl for IMAP FETCH message
</name>
<command>
'imap://%HOSTIP:%IMAPPORT/1420/;UID=1' -u user:secret --libcurl log/test1420.c
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
A001 CAPABILITY
A002 LOGIN user secret
A003 SELECT 1420
A004 FETCH 1 BODY[]
A005 LOGOUT
</protocol>
<file name="log/test1420.c" mode="text">
/********* Sample code generated by the curl command line tool **********
* All curl_easy_setopt() options are documented at:
* https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
************************************************************************/
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURLcode ret;
CURL *hnd;
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_URL, "imap://%HOSTIP:%IMAPPORT/1420/;UID=1");
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:secret");
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
as source easily. You may select to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
CURLOPT_INTERLEAVEDATA set to a objectpointer
CURLOPT_WRITEFUNCTION set to a functionpointer
CURLOPT_READDATA set to a objectpointer
CURLOPT_READFUNCTION set to a functionpointer
CURLOPT_SEEKDATA set to a objectpointer
CURLOPT_SEEKFUNCTION set to a functionpointer
CURLOPT_ERRORBUFFER set to a objectpointer
CURLOPT_STDERR set to a objectpointer
CURLOPT_DEBUGFUNCTION set to a functionpointer
CURLOPT_DEBUGDATA set to a objectpointer
CURLOPT_HEADERFUNCTION set to a functionpointer
CURLOPT_HEADERDATA set to a objectpointer
*/
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
hnd = NULL;
return (int)ret;
}
/**** End of sample code ****/
</file>
<stripfile>
# curl's default user-agent varies with version, libraries etc.
s/(USERAGENT, \")[^\"]+/${1}stripped/
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
# configurations - just ignore them
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
$_ = '' if /CURLOPT_HTTP_VERSION/
</stripfile>
</verify>
</testcase>

View File

@@ -1,72 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP proxy
</keywords>
</info>
#
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Uknown-header: blrub
Content-Length: 6
-foo-
</data>
<servercmd>
connection-monitor
</servercmd>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
Re-using HTTP proxy connection for two different host names
</name>
<command>
--proxy http://%HOSTIP:%HTTPPORT http://test.remote.haxx.se.1421:8990/ http://different.remote.haxx.se.1421:8990
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<stdout>
HTTP/1.1 200 OK
Uknown-header: blrub
Content-Length: 6
-foo-
HTTP/1.1 200 OK
Uknown-header: blrub
Content-Length: 6
-foo-
</stdout>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET http://test.remote.haxx.se.1421:8990/ HTTP/1.1
Host: test.remote.haxx.se.1421:8990
Accept: */*
Proxy-Connection: Keep-Alive
GET http://different.remote.haxx.se.1421:8990/ HTTP/1.1
Host: different.remote.haxx.se.1421:8990
Accept: */*
Proxy-Connection: Keep-Alive
[DISCONNECT]
</protocol>
</verify>
</testcase>

View File

@@ -1,63 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
-J
</keywords>
</info>
#
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 0
Connection: close
Content-Type: text/html
Content-Disposition: filename=name1422; charset=funny; option=strange
</data>
</reply>
#
# Client-side
<client>
# this relies on the debug feature to allow us to set directory to store the
# -O and -J output in, using the CURL_TESTDIR variable
<features>
debug
</features>
<server>
http
</server>
<name>
HTTP GET with -O -J and Content-Disposition (empty file)
</name>
<setenv>
CURL_TESTDIR=%PWD/log
</setenv>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1422 -J -O file://%PWD/log/name1422
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1422 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/name1422">
</file1>
</verify>
</testcase>

View File

@@ -1,57 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
#
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 0
Connection: close
Content-Type: text/html
</data>
</reply>
#
# Client-side
<client>
<server>
http
file
</server>
<name>
HTTP GET -o fname without Content-Disposition (empty file)
</name>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1423 -o log/outfile1423 file://%PWD/log/outfile1423
</command>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/1423
</postcheck>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1423 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file1 name="log/outfile1423">
</file1>
</verify>
</testcase>

View File

@@ -1,76 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
If-Modified-Since
-z
</keywords>
</info>
#
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Server: test-server/fake
Last-Modified: Tue, 13 Jun 1990 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
<datacheck>
HTTP/1.1 200 OK
Server: test-server/fake
Last-Modified: Tue, 13 Jun 1990 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET -o fname without Content-Disposition (unmet time condition)
</name>
<file name="log/outfile1424">
original contents
</file>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1424 -z "dec 12 11:00:00 1999 GMT" -o log/outfile1424
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1424 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
If-Modified-Since: Sun, 12 Dec 1999 11:00:00 GMT
</protocol>
<file1 name="log/outfile1424">
original contents
</file1>
</verify>
</testcase>

View File

@@ -1,81 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP CONNECT
HTTP Basic auth
proxytunnel
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
Content-Length: 9
contents
</data>
<connect>
HTTP/1.1 200 Mighty fine indeed
</connect>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
Content-Length: 9
contents
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
http-proxy
</server>
<name>
HTTP over proxy-tunnel with --proxy-header and --header
</name>
<command>
http://test.1428:%HTTPPORT/we/want/that/page/1428 -p -x %HOSTIP:%PROXYPORT --user 'iam:my:;self' --header "header-type: server" --proxy-header "header-type: proxy"
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<proxy>
CONNECT test.1428:%HTTPPORT HTTP/1.1
Host: test.1428:%HTTPPORT
User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
Proxy-Connection: Keep-Alive
header-type: proxy
</proxy>
<protocol>
GET /we/want/that/page/1428 HTTP/1.1
Host: test.1428:%HTTPPORT
Authorization: Basic aWFtOm15OjtzZWxm
User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
Accept: */*
header-type: server
</protocol>
</verify>
</testcase>

View File

@@ -1,69 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
<reply>
<data nocheck="yes">
HTTP/1.1 1234 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with 4-digit reponse code
</name>
<command>
http://%HOSTIP:%HTTPPORT/1429 --write-out '%{response_code}'
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<stdout nonewline="yes">
HTTP/1.1 1234 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
1234
</stdout>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1429 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,44 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
type=
</keywords>
</info>
# Server-side
<reply>
<data>
bla bla bla
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP URL with type=a
</name>
<command>
"ftp://%HOSTIP:%FTPPORT/%2ftmp/moo/143;type=a"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD /tmp
CWD moo
EPSV
TYPE A
SIZE 143
RETR 143
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,53 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
<reply>
<data>
HTTP/1.1 -12 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with negative reponse code
</name>
<command>
http://%HOSTIP:%HTTPPORT/1430
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1430 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,53 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
<reply>
<data>
HTTP/1.1 2 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with single-digit reponse code
</name>
<command>
http://%HOSTIP:%HTTPPORT/1431
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1431 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,54 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
<reply>
<data nocheck="yes">
HTTP/1.1 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with 100-digit reponse code and survive
</name>
<command>
http://%HOSTIP:%HTTPPORT/1432
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1432 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,69 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
</keywords>
</info>
<reply>
<data nocheck="yes">
HTTP/1.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with 100-digit subversion number in response
</name>
<command>
http://%HOSTIP:%HTTPPORT/1433 --write-out '%{response_code}'
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<stdout nonewline="yes">
HTTP/1.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
200
</stdout>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1433 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,90 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
Resume
</keywords>
</info>
# Server-side
<reply>
# Some servers (e.g. Apache 1.2) respond this way to an invalid byte range
<data>
HTTP/1.1 200 OK
Connection: close
Content-Length: 100
Content-Type: text/plain
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
</data>
# The file data that exists at the start of the test must be included in
# the verification.
<datacheck>
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
HTTP/1.1 200 OK
Connection: close
Content-Length: 100
Content-Type: text/plain
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET resume at exactly the existing file size is fine
</name>
<command>
http://%HOSTIP:%HTTPPORT/1434 -C 100
</command>
<file name="log/curl1434.out">
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1434 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Range: bytes=100-
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,46 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
unix sockets
</keywords>
</info>
<reply>
<data>
HTTP/1.1 200 OK
Date: Sun, 16 Nov 2014 23:47:38 GMT
Content-Length: 17
Based on test300
</data>
</reply>
<client>
<features>
unix-sockets
</features>
<server>
http-unix
</server>
<name>
simple HTTP GET over Unix socket
</name>
<command>
--unix-socket %HTTPUNIXPATH http://server-interpreted.example.com/1435
</command>
</client>
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1435 HTTP/1.1
Host: server-interpreted.example.com
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,85 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
unix sockets
</keywords>
</info>
<reply>
<data1>
HTTP/1.1 200 OK
Date: Mon, 17 Nov 2014 13:42:47 GMT
Content-Length: 6
First
</data1>
<data2>
HTTP/1.1 200 OK
Date: Mon, 17 Nov 2014 13:42:48 GMT
Content-Length: 7
Second
</data2>
<data3>
HTTP/1.1 200 OK
Date: Mon, 17 Nov 2014 13:42:49 GMT
Content-Length: 6
Third
</data3>
</reply>
<client>
<features>
unix-sockets
</features>
<server>
http-unix
</server>
<name>
HTTP requests with multiple connections over Unix socket
</name>
<command>
--unix-socket %HTTPUNIXPATH http://one.example.com/14360001 http://two.example.com/14360002 http://one.example.com/14360003
</command>
</client>
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /14360001 HTTP/1.1
Host: one.example.com
Accept: */*
GET /14360002 HTTP/1.1
Host: two.example.com
Accept: */*
GET /14360003 HTTP/1.1
Host: one.example.com
Accept: */*
</protocol>
<stdout>
HTTP/1.1 200 OK
Date: Mon, 17 Nov 2014 13:42:47 GMT
Content-Length: 6
First
HTTP/1.1 200 OK
Date: Mon, 17 Nov 2014 13:42:48 GMT
Content-Length: 7
Second
HTTP/1.1 200 OK
Date: Mon, 17 Nov 2014 13:42:49 GMT
Content-Length: 6
Third
</stdout>
</verify>
</testcase>

View File

@@ -1,84 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP Digest auth
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, algorithm=MD5, nonce=1, nonce=2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 26
This is not the real page
</data>
# This is supposed to be returned when the server gets a
# Authorization: Digest line passed-in from the client
<data1000>
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 23
This IS the real page!
</data1000>
<datacheck>
HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, algorithm=MD5, nonce=1, nonce=2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 26
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 23
This IS the real page!
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<features>
!SSPI
crypto
</features>
<name>
HTTP with duplicated WWW-Authenticate parameters
</name>
<command>
http://%HOSTIP:%HTTPPORT/1437 -u testuser:testpass --digest
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1437 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /1437 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/1437", response="4376eb639bf8e7343a6e7b56e1b89c4f", algorithm="MD5"
User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,58 +0,0 @@
<testcase>
<info>
<keywords>
protocol
--write-out
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 9
Connection: close
Content-Type: text/plain
testdata
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
Check if %{scheme} returns HTTP
</name>
<command>
http://%HOSTIP:%HTTPPORT/1438 --write-out '%{scheme}'
</command>
</client>
# Verify data
<verify>
<stdout nonewline="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 9
Connection: close
Content-Type: text/plain
testdata
HTTP
</stdout>
<protocol>
GET /1438 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<strip>
^User-Agent:.*
</strip>
</verify>
</testcase>

View File

@@ -1,58 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
--write-out
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 9
Connection: close
Content-Type: text/plain
testdata
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
Check if %{scheme} returns HTTP
</name>
<command>
http://%HOSTIP:%HTTPPORT/1439 --write-out '%{http_version}'
</command>
</client>
# Verify data
<verify>
<stdout nonewline="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 9
Connection: close
Content-Type: text/plain
testdata
1.1
</stdout>
<protocol>
GET /1439 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<strip>
^User-Agent:.*
</strip>
</verify>
</testcase>

View File

@@ -1,49 +0,0 @@
<testcase>
<info>
<keywords>
FTP
PORT
NLST
--data-binary
</keywords>
</info>
# Server-side
<reply>
<data>
</data>
<servercmd>
REPLY NLST 450 No files found
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP NLST dir list without contents, using PORT
</name>
<command>
ftp://%HOSTIP:%FTPPORT/ -P - -l
</command>
</client>
# Verify data after the test has been "shot"
<verify>
# Strip all valid kinds of PORT and EPRT that curl can send
<strip>
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
</strip>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
PORT 127,0,0,1,243,212
TYPE A
NLST
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,51 +0,0 @@
<testcase>
<info>
<keywords>
FTP
NLST
PORT
</keywords>
</info>
# Server-side
<reply>
<servercmd>
REPLY NLST 550 Have a taste on this!
</servercmd>
<data>
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP NLST dir list with weird reply code, using PORT
</name>
<command>
ftp://%HOSTIP:%FTPPORT/ -P - -l
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<errorcode>
19
</errorcode>
# Strip all valid kinds of PORT and EPRT that curl can send
<strip>
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
</strip>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
PORT 127,0,0,1,243,212
TYPE A
NLST
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,55 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
persistent connection
</keywords>
</info>
# Server-side
<reply>
<data>
this is file contents
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
persistent FTP with different paths
</name>
<command>
ftp://%HOSTIP:%FTPPORT/first/dir/here/146 ftp://%HOSTIP:%FTPPORT/146
</command>
</client>
# Verify data after the test has been "shot"
<verify>
# Strip all valid kinds of PORT and EPRT that curl can send
<strip>
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
</strip>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD first
CWD dir
CWD here
EPSV
TYPE I
SIZE 146
RETR 146
CWD /
EPSV
SIZE 146
RETR 146
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,55 +0,0 @@
<testcase>
<info>
<keywords>
FTP
</keywords>
</info>
# Server-side
<reply>
<data>
foo
</data>
<servercmd>
REPLY CWD 550 I won't allow this on my server
COUNT CWD 1
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP with --ftp-create-dirs (failing CWD)
</name>
<command>
ftp://%HOSTIP:%FTPPORT/first/dir/here/147 --ftp-create-dirs
</command>
</client>
# Verify data after the test has been "shot"
<verify>
# Strip all valid kinds of PORT and EPRT that curl can send
<strip>
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
</strip>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD first
MKD first
CWD first
CWD dir
CWD here
EPSV
TYPE I
SIZE 147
RETR 147
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,49 +0,0 @@
<testcase>
<info>
<keywords>
FTP
</keywords>
</info>
# Server-side
<reply>
<servercmd>
REPLY CWD 550 I won't allow this on my server
REPLY MKD 550 We will have no such thing
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP with --ftp-create-dirs (failing MKD)
</name>
<command>
ftp://%HOSTIP:%FTPPORT/attempt/to/get/this/148 --ftp-create-dirs
</command>
</client>
# Verify data after the test has been "shot"
<verify>
# Strip all valid kinds of PORT and EPRT that curl can send
<strip>
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
</strip>
<errorcode>
9
</errorcode>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD attempt
MKD attempt
CWD attempt
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,53 +0,0 @@
<testcase>
<info>
<keywords>
FTP
</keywords>
</info>
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP with multiple uploads
</name>
<command>
-T log/upload149 ftp://%HOSTIP:%FTPPORT/dir1/149 -T log/upload149 ftp://%HOSTIP:%FTPPORT/dir2/149
</command>
<file name="log/upload149">
send away this contents
</file>
</client>
# Verify data after the test has been "shot"
<verify>
# Strip all valid kinds of PORT and EPRT that curl can send
<strip>
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
</strip>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD dir1
EPSV
TYPE I
STOR 149
CWD /
CWD dir2
EPSV
STOR 149
QUIT
</protocol>
<file name="log/upload149">
send away this contents
</file>
</verify>
</testcase>

View File

@@ -1,57 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
--write-out
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.4 200 OK
Fake: yes
Fake: yes
Fake: yes
Content-Length: 26
Repeated nonsense-headers
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
--write-out test
</name>
<command>
http://%HOSTIP:%HTTPPORT/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<stdout>
HTTP/1.4 200 OK
Fake: yes
Fake: yes
Fake: yes
Content-Length: 26
Repeated nonsense-headers
http://%HOSTIP:%HTTPPORT/want/15 200 26
</stdout>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/15 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,103 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP NTLM auth
</keywords>
</info>
<!-- Server-side -->
<reply>
<!-- no <data> in this test since we have NTLM from the start
This is supposed to be returned when the server gets a first
Authorization: NTLM line passed-in from the client -->
<data1001>
HTTP/1.1 401 Now gimme that second request of crap
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
Content-Length: 34
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
This is not the real page either!
</data1001>
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<data1002>
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
Content-Length: 32
Finally, this is the real page!
</data1002>
<datacheck>
HTTP/1.1 401 Now gimme that second request of crap
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
Content-Length: 34
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
Content-Length: 32
Finally, this is the real page!
</datacheck>
</reply>
# Client-side
<client>
<features>
NTLM
!SSPI
debug
</features>
<server>
http
</server>
<name>
HTTP with NTLM authorization and --fail
</name>
<setenv>
# we force our own host name, in order to make the test machine independent
CURL_GETHOSTNAME=curlhost
# we try to use the LD_PRELOAD hack, if not a debug build
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
http://%HOSTIP:%HTTPPORT/150 -u testuser:testpass --ntlm --fail
</command>
<precheck>
chkhostname curlhost
</precheck>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /150 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Accept: */*
GET /150 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAACeAJ4AWAAAAAAAAAD2AAAACAAIAPYAAAAIAAgA/gAAAAAAAAAAAAAABoKBAL9LNW5+nkyHZRmyFaL/LJ4xMjM0MjIzNGUCyhgQ9hw6eWAT13EbDa0BAQAAAAAAAACAPtXesZ0BMTIzNDIyMzQAAAAAAgAEAEMAQwABABIARQBMAEkAUwBBAEIARQBUAEgABAAYAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAMALABlAGwAaQBzAGEAYgBlAHQAaAAuAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAAAAAAAAAAAdGVzdHVzZXJjdXJsaG9zdA==
User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,44 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
multi
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 all good!
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Content-Length: 12
Connection: close
Hello World
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<features>
http
</features>
# tool is what to use instead of 'curl'
<tool>
lib1500
</tool>
<name>
curl_multi_wait
</name>
<command>
http://%HOSTIP:%HTTPPORT/1500
</command>
</client>
</testcase>

View File

@@ -1,53 +0,0 @@
<testcase>
<info>
<keywords>
FTP
RETR
multi
LIST
</keywords>
</info>
# Server-side
<reply>
<data>
</data>
<servercmd>
DELAY LIST 2
DELAY TYPE 2
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<tool>
lib1501
</tool>
<name>
FTP with multi interface and slow LIST response
</name>
<command>
ftp://%HOSTIP:%FTPPORT/1501/
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<errorcode>
0
</errorcode>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD 1501
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>
</testcase>

View File

@@ -1,58 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
multi
CURLOPT_RESOLVE
</keywords>
</info>
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<tool>
lib1502
</tool>
<name>
HTTP multi with CURLOPT_RESOLVE, cleanup sequence UA
</name>
<command>
http://google.com:%HTTPPORT/1502 %HTTPPORT %HOSTIP
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1502 HTTP/1.1
Host: google.com:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,58 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
multi
CURLOPT_RESOLVE
</keywords>
</info>
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<tool>
lib1503
</tool>
<name>
HTTP multi with CURLOPT_RESOLVE, cleanup sequence PA
</name>
<command>
http://google.com:%HTTPPORT/1503 %HTTPPORT %HOSTIP
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1503 HTTP/1.1
Host: google.com:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,58 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
multi
CURLOPT_RESOLVE
</keywords>
</info>
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<tool>
lib1504
</tool>
<name>
HTTP multi with CURLOPT_RESOLVE, cleanup sequence UB
</name>
<command>
http://google.com:%HTTPPORT/1504 %HTTPPORT %HOSTIP
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1504 HTTP/1.1
Host: google.com:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,58 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
multi
CURLOPT_RESOLVE
</keywords>
</info>
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<tool>
lib1505
</tool>
<name>
HTTP multi with CURLOPT_RESOLVE, cleanup sequence PB
</name>
<command>
http://google.com:%HTTPPORT/1505 %HTTPPORT %HOSTIP
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1505 HTTP/1.1
Host: google.com:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>

View File

@@ -1,96 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
multi
verbose logs
</keywords>
</info>
# Server-side
<reply>
<data1>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data1>
<data2>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data2>
<data3>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data3>
<data4>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data4>
</reply>
# Client-side
<client>
<server>
http
</server>
<tool>
lib1506
</tool>
<name>
HTTP GET connection cache limit (CURLMOPT_MAXCONNECTS)
</name>
<command>
http://%HOSTIP:%HTTPPORT/path/1506 %HOSTIP %HTTPPORT
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
GET /path/15060001 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /path/15060002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /path/15060003 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /path/15060004 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<strip>
^Host:.*
</strip>
<file name="log/stderr1506" mode="text">
* Connection #0 to host server1.example.com left intact
* Connection #1 to host server2.example.com left intact
* Connection #2 to host server3.example.com left intact
* Closing connection 0
* Connection #3 to host server4.example.com left intact
</file>
<stripfile>
$_ = '' if (($_ !~ /left intact/) && ($_ !~ /Closing connection/))
</stripfile>
</verify>
</testcase>

View File

@@ -1,51 +0,0 @@
<testcase>
<info>
<keywords>
SMTP
multi
</keywords>
</info>
#
# Server-side
<reply>
</reply>
#
# Client-side
<client>
<server>
smtp
</server>
<tool>
lib1507
</tool>
# based on bug report #1184
<name>
SMTP with multi interface and CURLE_ABORTED_BY_CALLBACK
</name>
<stdin>
From: different
To: another
body
</stdin>
<command>
smtp://%HOSTIP:%SMTPPORT/1507
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
EHLO 1507
MAIL FROM:<1507-realuser@example.com>
RCPT TO:<1507-recipient@example.com>
DATA
</protocol>
<upload>
</upload>
</verify>
</testcase>

View File

@@ -1,31 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
multi
</keywords>
</info>
# Client-side
<client>
<server>
none
</server>
<tool>
lib1508
</tool>
<name>
Close a multi handle without using it
</name>
<command>
http://%HOSTIP:%HTTPPORT/path/1508
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<file name="log/stdout1508">
We are done
</file>
</verify>
</testcase>

View File

@@ -1,88 +0,0 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP CONNECT
HTTP proxy
proxytunnel
</keywords>
</info>
# Server-side
<reply>
<servercmd>
connection-monitor
</servercmd>
<connect>
HTTP/1.1 200 Mighty fine indeed
Server: the beast that eats naughty clients
</connect>
<data>
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
</data>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
Server: the beast that eats naughty clients
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
header length is ........: 245
header length should be..: 245
</datacheck>
</reply>
# Client-side
<client>
<server>
http
http-proxy
</server>
# tool is what to use instead of 'curl'
<tool>
lib1509
</tool>
<name>
simple multi http:// through proxytunnel with authentication info
</name>
<command>
http://the.old.moo.1509:%HTTPPORT/1509 %HOSTIP:%PROXYPORT
</command>
<file name="log/test1509.txt">
foo
bar
bar
foo
moo
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<proxy>
CONNECT the.old.moo.1509:%HTTPPORT HTTP/1.1
Host: the.old.moo.1509:%HTTPPORT
Proxy-Connection: Keep-Alive
</proxy>
<protocol>
GET /1509 HTTP/1.1
Host: the.old.moo.1509:%HTTPPORT
Accept: */*
[DISCONNECT]
</protocol>
</verify>
</testcase>

Some files were not shown because too many files have changed in this diff Show More