1<testcase>
2<info>
3<keywords>
4Metalink
5HTTP
6HTTP GET
7</keywords>
8</info>
9
10#
11# Server-side
12<reply>
13<data nocheck="yes">
14HTTP/1.1 200 OK
15Date: Wed, 20 Jun 2012 14:49:00 GMT
16Server: test-server/fake
17Content-Length: 56
18Connection: close
19Content-Type: text/html
20Content-Disposition: filename=name2016; charset=funny; option=strange
21Funny-head: yesyes
22
23Data that should not be delivered from an HTTP resource
24</data>
25</reply>
26
27#
28# Client-side
29<client>
30<server>
31http
32</server>
33<features>
34file
35Metalink
36</features>
37 <name>
38Metalink local XML file, attempt Unix path traversal
39 </name>
40<command option="no-output,no-include">
41--metalink file://%PWD/log/test2016.metalink
42</command>
43# local metalink file written before test command runs
44<file name="log/test2016.metalink">
45<?xml version="1.0" encoding="utf-8"?>
46<metalink version="3.0" xmlns="http://www.metalinker.org/">
47 <files>
48  <file name="log/../log/download2016">
49   <verification>
50    <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
51   </verification>
52   <resources maxconnections="1">
53    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2016</url>
54   </resources>
55  </file>
56 </files>
57</metalink>
58</file>
59<postcheck>
60perl %SRCDIR/libtest/notexists.pl log/2016 log/name2016 log/download2016
61</postcheck>
62</client>
63
64#
65# Verify data after the test has been "shot"
66<verify>
67<file1 name="log/stdout2016">
68</file1>
69<file2 name="log/stderr2016">
70Metalink: parsing (file://%PWD/log/test2016.metalink) metalink/XML...
71Metalink: parsing (file://%PWD/log/test2016.metalink) WARNING (missing or invalid file name)
72Metalink: parsing (file://%PWD/log/test2016.metalink) FAILED
73</file2>
74<stripfile2>
75$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
76</stripfile2>
77</verify>
78</testcase>
79