1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

Added test cases 1052 through 1055 to test uploading data from files

during redirects.  Test cases 1052 and 1055 show problems (maybe the same
root cause as 1051) and are disabled.
This commit is contained in:
Dan Fandrich 2008-07-30 21:04:44 +00:00
parent cc0285da7f
commit bc649593e4
8 changed files with 402 additions and 5 deletions

10
CHANGES
View File

@ -6,14 +6,18 @@
Changelog Changelog
Daniel Fandrich (30 Jul 2008)
- Added test cases 1052 through 1055 to test uploading data from files
during redirects. Test cases 1052 and 1055 show problems (maybe the same
root cause as 1051) and are disabled.
Daniel Fandrich (29 Jul 2008) Daniel Fandrich (29 Jul 2008)
- Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS - Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS
and OS/2. and OS/2.
- Added test case 1051 to test Location: following with PUT, as reported - Added test case 1051 to test Location: following with PUT, as reported
by Ben Sutcliffe. The test when run manually shows a problem in curl, by Ben Sutcliffe. The test when run manually shows a problem in curl
but the test harness web server doesn't run the test correctly so it's so it's disabled.
disabled for now.
Daniel Fandrich (28 Jul 2008) Daniel Fandrich (28 Jul 2008)
- Fixed display of the interface bind address in the trace output when it's - Fixed display of the interface bind address in the trace output when it's

View File

@ -5,3 +5,5 @@
# Lines starting with '#' letters are treated as comments. # Lines starting with '#' letters are treated as comments.
1041 1041
1051 1051
1052
1055

View File

@ -54,7 +54,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
test556 test1031 test628 test629 test630 test631 test632 test1032 \ test556 test1031 test628 test629 test630 test631 test632 test1032 \
test1033 test539 test1034 test1035 test1036 test1037 test1038 test1039 \ test1033 test539 test1034 test1035 test1036 test1037 test1038 test1039 \
test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \ test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \
test1048 test1049 test1050 test1051 test1048 test1049 test1050 test1051 test1052 test1053 test1054 test1055
filecheck: filecheck:
@mkdir test-place; \ @mkdir test-place; \

View File

@ -45,7 +45,7 @@ ftp
HTTP Location: redirect to FTP URL HTTP Location: redirect to FTP URL
</name> </name>
<command> <command>
-k http://%HOSTIP:%HTTPPORT/10280001 -L http://%HOSTIP:%HTTPPORT/10280001 -L
</command> </command>
# The data section doesn't do variable substitution, so we must assert this # The data section doesn't do variable substitution, so we must assert this
<precheck> <precheck>

97
tests/data/test1052 Normal file
View File

@ -0,0 +1,97 @@
<testcase>
<info>
<keywords>
HTTP
HTTP PUT
followlocation
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.0 301 Redirect swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Location: data/10520002.txt?coolsite=yes
Content-Length: 0
Connection: close
</data>
<data2>
HTTP/1.0 200 Followed here fine swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 51
If this is received, the location following worked
</data2>
<datacheck>
HTTP/1.0 301 Redirect
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Location: data/10520002.txt?coolsite=yes
Content-Length: 0
Connection: Keep-Alive
HTTP/1.0 200 Followed here fine swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 51
If this is received, the location following worked
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP 1.0 PUT with Location: following
</name>
<command>
http://%HOSTIP:%HTTPPORT/want/1052 -0 -L -T log/test1052.txt
</command>
<file name="log/test1052.txt">
Weird
file
to
upload
for
testing
the
PUT
feature
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
PUT /want/1052 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 78
PUT /want/data/10520002.txt?coolsite=yes HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 78
Weird
file
to
upload
for
testing
the
PUT
feature
</protocol>
</verify>
</testcase>

125
tests/data/test1053 Normal file
View File

@ -0,0 +1,125 @@
<testcase>
# Based on test 9
<info>
<keywords>
HTTP
HTTP FORMPOST
HTTP file upload
followredirect
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.0 307 Redirect swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Location: data/10530002.txt?coolsite=yes
Content-Length: 0
Connection: close
</data>
<data2>
HTTP/1.0 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
blablabla
</data2>
<datacheck>
HTTP/1.0 307 Redirect swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Location: data/10530002.txt?coolsite=yes
Content-Length: 0
Connection: close
HTTP/1.0 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
blablabla
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP RFC1867-type formposting from file with Location following
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/test1053.txt
</command>
# We create this file before the command is invoked!
<file name="log/test1053.txt">
foo-
This is a moo-
bar
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<strip>
^(User-Agent:|Content-Type: multipart/form-data;|------------).*
</strip>
<protocol>
POST /we/want/1053 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: 410
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
------------------------------9ef8d6205763
Content-Disposition: form-data; name="name"
daniel
------------------------------9ef8d6205763
Content-Disposition: form-data; name="tool"
curl
------------------------------9ef8d6205763
Content-Disposition: form-data; name="file"; filename="test1053.txt"
Content-Type: text/plain
foo-
This is a moo-
bar
------------------------------9ef8d6205763--
POST /we/want/data/10530002.txt?coolsite=yes 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: 410
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
------------------------------9ef8d6205763
Content-Disposition: form-data; name="name"
daniel
------------------------------9ef8d6205763
Content-Disposition: form-data; name="tool"
curl
------------------------------9ef8d6205763
Content-Disposition: form-data; name="file"; filename="test1053.txt"
Content-Type: text/plain
foo-
This is a moo-
bar
------------------------------9ef8d6205763--
</protocol>
</verify>
</testcase>

80
tests/data/test1054 Normal file
View File

@ -0,0 +1,80 @@
<testcase>
<info>
<keywords>
HTTP
HTTP POST
followlocation
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 301 OK swsclose
Location: moo.html&testcase=/10540002
Date: Thu, 31 Jul 2008 14:49:00 GMT
Connection: close
</data>
<data2>
HTTP/1.1 200 OK swsclose
Date: Thu, 31 Jul 2008 14:49:00 GMT
Connection: close
body
</data2>
<datacheck>
HTTP/1.1 301 OK swsclose
Location: moo.html&testcase=/10540002
Date: Thu, 31 Jul 2008 14:49:00 GMT
Connection: close
HTTP/1.1 200 OK swsclose
Date: Thu, 31 Jul 2008 14:49:00 GMT
Connection: close
body
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP POST from file with 301 redirect and --post301
</name>
<file name="log/test1054.txt">
field=data
</file>
<command>
http://%HOSTIP:%HTTPPORT/blah/1054 -L -d @log/test1054.txt --post301
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol nonewline="yes">
POST /blah/1054 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
field=dataPOST /blah/moo.html&testcase=/10540002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
field=data
</protocol>
</verify>
</testcase>

89
tests/data/test1055 Normal file
View File

@ -0,0 +1,89 @@
<testcase>
<info>
<keywords>
HTTP
HTTP PUT
followlocation
FTP
EPSV
STOR
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 307 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Location: ftp://127.0.0.1:8992/1055
Content-Length: 0
Connection: close
</data>
</reply>
#
# Client-side
<client>
<server>
http
ftp
</server>
<name>
HTTP PUT Location: redirect to FTP URL
</name>
<command>
http://%HOSTIP:%HTTPPORT/1055 -L -T log/test1055.txt
</command>
# The data section doesn't do variable substitution, so we must assert this
<precheck>
perl -e "print 'Test requires default test server host and port' if ( '%HOSTIP' ne '127.0.0.1' || '%FTPPORT' ne '8992' );"
</precheck>
<file name="log/test1055.txt">
Weird
file
to
upload
for
testing
the
PUT
feature
</file>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
PUT /1055 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
USER anonymous
PASS ftp@example.com
PWD
EPSV
TYPE I
STOR 1055
QUIT
</protocol>
<upload>
Weird
file
to
upload
for
testing
the
PUT
feature
</upload>
</verify>
</testcase>