| <testcase> |
| <info> |
| <keywords> |
| Metalink |
| HTTP |
| HTTP GET |
| -J |
| FILE |
| </keywords> |
| </info> |
| |
| # |
| # Server-side |
| <reply> |
| <data nocheck="yes"> |
| HTTP/1.1 200 OK |
| Date: Thu, 21 Jun 2012 14:50:02 GMT |
| Server: test-server/fake |
| Content-Length: 42 |
| Connection: close |
| Content-Type: text/html |
| Content-Disposition: filename=name2007; charset=funny; option=strange |
| Funny-head: yesyes |
| |
| Something delivered from an HTTP resource |
| </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. This test might use |
| # it upon failure only, successful execution won't actually use it. |
| <features> |
| debug |
| file |
| Metalink |
| </features> |
| <server> |
| http |
| </server> |
| <name> |
| Metalink local XML file, HTTP resource, using -O -J -D file |
| </name> |
| <setenv> |
| CURL_TESTDIR=%PWD/log |
| </setenv> |
| <command option="no-output,no-include"> |
| --metalink file://%PWD/log/test2007.metalink -J -O -D log/heads2007 |
| </command> |
| # local metalink file written before test command runs |
| <file name="log/test2007.metalink"> |
| <?xml version="1.0" encoding="utf-8"?> |
| <metalink version="3.0" xmlns="http://www.metalinker.org/"> |
| <files> |
| <file name="log/download2007"> |
| <verification> |
| <hash type="md5">we-only-check-the-strongest-hash-provided</hash> |
| <hash type="sha256">52899e30f80e3490632d505653204e1fb5b02bda141048704ce9a0ed00b8a3f5</hash> |
| </verification> |
| <resources maxconnections="1"> |
| <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2007</url> |
| </resources> |
| </file> |
| </files> |
| </metalink> |
| </file> |
| <postcheck> |
| perl %SRCDIR/libtest/notexists.pl log/2007 log/name2007 |
| </postcheck> |
| </client> |
| |
| # |
| # Verify data after the test has been "shot" |
| <verify> |
| <strip> |
| ^User-Agent:.* |
| </strip> |
| <protocol> |
| GET /2007 HTTP/1.1
|
| Host: %HOSTIP:%HTTPPORT
|
| Accept: */*
|
|
|
| </protocol> |
| <file1 name="log/download2007"> |
| Something delivered from an HTTP resource |
| </file1> |
| <stripfile2> |
| s/Last-Modified:.*// |
| </stripfile2> |
| <file2 name="log/heads2007"> |
| Content-Length: 496
|
| Accept-ranges: bytes
|
| |
|
|
| HTTP/1.1 200 OK |
| Date: Thu, 21 Jun 2012 14:50:02 GMT |
| Server: test-server/fake |
| Content-Length: 42 |
| Connection: close |
| Content-Type: text/html |
| Content-Disposition: filename=name2007; charset=funny; option=strange |
| Funny-head: yesyes |
| |
| </file2> |
| <file3 name="log/stdout2007"> |
| </file3> |
| <file4 name="log/stderr2007"> |
| Metalink: parsing (file://%PWD/log/test2007.metalink) metalink/XML... |
| Metalink: parsing (file://%PWD/log/test2007.metalink) OK |
| Metalink: fetching (log/download2007) from (http://%HOSTIP:%HTTPPORT/2007)... |
| Metalink: fetching (log/download2007) from (http://%HOSTIP:%HTTPPORT/2007) OK |
| Metalink: validating (log/download2007)... |
| Metalink: validating (log/download2007) [sha-256] OK |
| </file4> |
| <stripfile4> |
| $_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i)) |
| </stripfile4> |
| </verify> |
| </testcase> |