<testcase>
<info>
<keywords>
Metalink
HTTP
HTTP GET
FILE
</keywords>
</info>

#
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Thu, 21 Jun 2012 15:23:48 GMT
Server: test-server/fake
Content-Length: 43
Connection: close
Content-Type: text/html
Content-Disposition: filename=name%TESTNUMBER; charset=funny; option=strange
Funny-head: yesyes

Some stuff delivered from an HTTP resource
</data>
</reply>

#
# Client-side
<client>
<features>
file
Metalink
</features>
<server>
http
</server>
 <name>
Metalink local XML file, HTTP resource, using -o fname -D file
 </name>
<command option="no-output,no-include">
--metalink file://%PWD/log/test%TESTNUMBER.metalink -o log/outfile%TESTNUMBER -D log/heads%TESTNUMBER
</command>
# local metalink file written before test command runs
<file name="log/test%TESTNUMBER.metalink">
<?xml version="1.0" encoding="utf-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org/">
 <files>
  <file name="log/download%TESTNUMBER">
   <verification>
    <hash type="md5">we-only-check-the-strongest-hash-provided</hash>
    <hash type="sha256">711b1b566b536c5baae9b36f2f5c1830a7c8ff126d1afa2febc5b59f8d0aab54</hash>
   </verification>
   <resources maxconnections="1">
    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/%TESTNUMBER</url>
   </resources>
  </file>
 </files>
</metalink>
</file>
<postcheck>
perl %SRCDIR/libtest/notexists.pl log/%TESTNUMBER log/name%TESTNUMBER log/outfile%TESTNUMBER
</postcheck>
</client>

#
# Verify data after the test has been "shot"
<verify>
<protocol>
GET /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*

</protocol>
<file1 name="log/download%TESTNUMBER">
Some stuff delivered from an HTTP resource
</file1>
# The Content-Length replace here is to handle with 4/5 digit port number in
# the content
<stripfile2>
s/Last-Modified:.*//
s/Content-Length: 49[67]/Content-Length: yeps/
</stripfile2>
<file2 name="log/heads%TESTNUMBER">
Content-Length: yeps
Accept-ranges: bytes


HTTP/1.1 200 OK
Date: Thu, 21 Jun 2012 15:23:48 GMT
Server: test-server/fake
Content-Length: 43
Connection: close
Content-Type: text/html
Content-Disposition: filename=name%TESTNUMBER; charset=funny; option=strange
Funny-head: yesyes

</file2>
<file3 name="log/stdout%TESTNUMBER">
</file3>
<file4 name="log/stderr%TESTNUMBER" mode="text">
Metalink: parsing (file://%PWD/log/test%TESTNUMBER.metalink) metalink/XML...
Metalink: parsing (file://%PWD/log/test%TESTNUMBER.metalink) OK
Metalink: fetching (log/download%TESTNUMBER) from (http://%HOSTIP:%HTTPPORT/%TESTNUMBER)...
Metalink: fetching (log/download%TESTNUMBER) from (http://%HOSTIP:%HTTPPORT/%TESTNUMBER) OK
Metalink: validating (log/download%TESTNUMBER)...
Metalink: validating (log/download%TESTNUMBER) [sha-256] OK
</file4>
<stripfile4>
$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
</stripfile4>
</verify>
</testcase>
