| <?xml version="1.0" encoding="US-ASCII"?> |
| <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> |
| <features> |
| Mime |
| --libcurl |
| </features> |
| <server> |
| http |
| </server> |
| <name> |
| --libcurl plus -F with 3 files, one with explicit type and encoder |
| </name> |
| <setenv> |
| SSL_CERT_FILE |
| </setenv> |
| <command> |
| http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER |
| -F name=value |
| -F 'file=@%LOGDIR/test%TESTNUMBER.txt,%LOGDIR/test%TESTNUMBER.txt;type=magic/content;encoder=8bit,%LOGDIR/test%TESTNUMBER.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' |
| --libcurl %LOGDIR/test%TESTNUMBER.c |
| </command> |
| # We create this file before the command is invoked! |
| <file name="%LOGDIR/test%TESTNUMBER.txt"> |
| dummy data |
| </file> |
| </client> |
| |
| # Verify data after the test has been "shot" |
| <verify> |
| <strip> |
| -----+\w+ |
| </strip> |
| <protocol> |
| POST /we/want/%TESTNUMBER HTTP/1.1%CR |
| Host: %HOSTIP:%HTTPPORT%CR |
| User-Agent: curl/%VERSION%CR |
| Accept: */*%CR |
| Content-Length: 930%CR |
| Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763%CR |
| %CR |
| ------------------------------9ef8d6205763%CR |
| Content-Disposition: form-data; name="name"%CR |
| %CR |
| value%CR |
| ------------------------------9ef8d6205763%CR |
| Content-Disposition: form-data; name="file"%CR |
| Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa%CR |
| %CR |
| Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR |
| Content-Type: text/plain%CR |
| %CR |
| dummy data |
| %CR |
| ------------------------------9ef8d6205763%CR |
| Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR |
| Content-Type: magic/content%CR |
| Content-Transfer-Encoding: 8bit%CR |
| %CR |
| dummy data |
| %CR |
| ------------------------------9ef8d6205763%CR |
| Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR |
| Content-Type: text/plain%CR |
| X-testheader-1: header 1%CR |
| X-testheader-2: header 2%CR |
| %CR |
| dummy data |
| %CR |
| ------------------------------aaaaaaaaaaaa--%CR |
| %CR |
| ------------------------------9ef8d6205763--%CR |
| </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/ |
| $_ = '' if /CURLOPT_INTERLEAVEDATA/ |
| $_ = '' if /CURLOPT_SSLVERSION/ |
| $_ = '' if /CURLOPT_TIMEOUT_MS/ |
| # CURL_DOES_CONVERSION generates an extra comment. |
| $_ = '' if /\/\* "value" \*\// |
| </stripfile> |
| <file name="%LOGDIR/test%TESTNUMBER.c" mode="text"> |
| %includetext %SRCDIR/data/data%TESTNUMBER.c% |
| </file> |
| </verify> |
| </testcase> |