1<testcase>
2<info>
3<keywords>
4Metalink
5HTTP
6HTTP GET
7FILE
8</keywords>
9</info>
10
11#
12# Server-side
13<reply>
14<data nocheck="yes">
15HTTP/1.1 200 OK
16Date: Thu, 21 Jun 2012 17:37:27 GMT
17Server: test-server/fake
18Content-Length: 41
19Connection: close
20Content-Type: text/html
21Content-Disposition: filename=name2010; charset=funny; option=strange
22Funny-head: yesyes
23
24Contents delivered from an HTTP resource
25</data>
26</reply>
27
28#
29# Client-side
30<client>
31<features>
32file
33Metalink
34</features>
35<server>
36http
37</server>
38 <name>
39Metalink local XML file, HTTP resource, using -o fname -D file
40 </name>
41<command option="no-output,no-include">
42--metalink file://%PWD/log/test2010.metalink -o log/outfile2010 -D log/heads2010
43</command>
44# local metalink file written before test command runs
45<file name="log/test2010.metalink">
46<?xml version="1.0" encoding="utf-8"?>
47<metalink version="3.0" xmlns="http://www.metalinker.org/">
48 <files>
49  <file name="log/download2010">
50   <verification>
51    <hash type="md5">we-only-check-the-strongest-hash-provided</hash>
52    <hash type="sha256">19dcb4e2a99b9cd02c30b1ed6c55869b7ef8cda9f985648909c48a6dbb54356c</hash>
53   </verification>
54   <resources maxconnections="1">
55    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2010</url>
56   </resources>
57  </file>
58 </files>
59</metalink>
60</file>
61<postcheck>
62perl %SRCDIR/libtest/notexists.pl log/2010 log/name2010 log/outfile2010
63</postcheck>
64</client>
65
66#
67# Verify data after the test has been "shot"
68<verify>
69<protocol>
70GET /2010 HTTP/1.1
71Host: %HOSTIP:%HTTPPORT
72User-Agent: curl/%VERSION
73Accept: */*
74
75</protocol>
76<file1 name="log/download2010">
77Contents delivered from an HTTP resource
78</file1>
79# The Content-Length replace here is to handle with 4/5 digit port number in
80# the content
81<stripfile2>
82s/Last-Modified:.*//
83s/Content-Length: 49[67]/Content-Length: yeps/
84</stripfile2>
85<file2 name="log/heads2010">
86Content-Length: yeps
87Accept-ranges: bytes
88
89
90HTTP/1.1 200 OK
91Date: Thu, 21 Jun 2012 17:37:27 GMT
92Server: test-server/fake
93Content-Length: 41
94Connection: close
95Content-Type: text/html
96Content-Disposition: filename=name2010; charset=funny; option=strange
97Funny-head: yesyes
98
99</file2>
100<file3 name="log/stdout2010">
101</file3>
102<file4 name="log/stderr2010" mode="text">
103Metalink: parsing (file://%PWD/log/test2010.metalink) metalink/XML...
104Metalink: parsing (file://%PWD/log/test2010.metalink) OK
105Metalink: fetching (log/download2010) from (http://%HOSTIP:%HTTPPORT/2010)...
106Metalink: fetching (log/download2010) from (http://%HOSTIP:%HTTPPORT/2010) OK
107Metalink: validating (log/download2010)...
108Metalink: validating (log/download2010) [sha-256] OK
109</file4>
110<stripfile4>
111$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
112</stripfile4>
113</verify>
114</testcase>
115