]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tests: add five more Metalink test cases
authorYang Tse <yangsita@gmail.com>
Wed, 27 Jun 2012 11:15:05 +0000 (13:15 +0200)
committerYang Tse <yangsita@gmail.com>
Wed, 27 Jun 2012 11:16:01 +0000 (13:16 +0200)
tests/data/DISABLED
tests/data/Makefile.am
tests/data/test2013 [new file with mode: 0644]
tests/data/test2014 [new file with mode: 0644]
tests/data/test2015 [new file with mode: 0644]
tests/data/test2016 [new file with mode: 0644]
tests/data/test2017 [new file with mode: 0644]

index 0bcc328e3fe42f965415d0e7242326593109d0e3..c15fe769b733fae19742ba74a291e98bcf3117fc 100644 (file)
@@ -6,3 +6,8 @@
 1209
 1211
 2012
+2013
+2014
+2015
+2016
+2017
index 797763b4cdfd2ff40b9d15b39bb18931ed77733d..5136b419e9af45049da4116e44bac78faeccbc95 100644 (file)
@@ -94,7 +94,8 @@ test1387 test1388 test1389 test1390 test1391 test1392 test1393 \
 test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 \
 test1408 \
 test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \
-test2008 test2009 test2010 test2011 test2012
+test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \
+test2016 test2017
 
 EXTRA_DIST = $(TESTCASES) DISABLED
 
diff --git a/tests/data/test2013 b/tests/data/test2013
new file mode 100644 (file)
index 0000000..dc0208b
--- /dev/null
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2013; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt absolute path
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2013.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2013.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+  <file name="/tmp/download2013">
+   <verification>
+    <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+   </verification>
+   <resources maxconnections="1">
+    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2013</url>
+   </resources>
+  </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2013 log/name2013 /tmp/download2013
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2013">
+</file1>
+<file2 name="log/stderr2013">
+Metalink: parsing (file://%PWD/log/test2013.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2013.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2013.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if ($_ !~ /^Metalink: /)
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2014 b/tests/data/test2014
new file mode 100644 (file)
index 0000000..659bc92
--- /dev/null
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2014; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt path relative to current
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2014.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2014.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+  <file name="./log/download2014">
+   <verification>
+    <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+   </verification>
+   <resources maxconnections="1">
+    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2014</url>
+   </resources>
+  </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2014 log/name2014 log/download2014
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2014">
+</file1>
+<file2 name="log/stderr2014">
+Metalink: parsing (file://%PWD/log/test2014.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2014.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2014.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if ($_ !~ /^Metalink: /)
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2015 b/tests/data/test2015
new file mode 100644 (file)
index 0000000..45646f2
--- /dev/null
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2015; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt path relative to upper
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2015.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2015.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+  <file name="../tests/log/download2015">
+   <verification>
+    <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+   </verification>
+   <resources maxconnections="1">
+    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2015</url>
+   </resources>
+  </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2015 log/name2015 log/download2015
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2015">
+</file1>
+<file2 name="log/stderr2015">
+Metalink: parsing (file://%PWD/log/test2015.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2015.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2015.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if ($_ !~ /^Metalink: /)
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2016 b/tests/data/test2016
new file mode 100644 (file)
index 0000000..a5f3674
--- /dev/null
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2016; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt path traversal
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2016.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2016.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+  <file name="log/../log/download2016">
+   <verification>
+    <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+   </verification>
+   <resources maxconnections="1">
+    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2016</url>
+   </resources>
+  </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2016 log/name2016 log/download2016
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2016">
+</file1>
+<file2 name="log/stderr2016">
+Metalink: parsing (file://%PWD/log/test2016.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2016.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2016.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if ($_ !~ /^Metalink: /)
+</stripfile2>
+</verify>
+</testcase>
diff --git a/tests/data/test2017 b/tests/data/test2017
new file mode 100644 (file)
index 0000000..f4312c4
--- /dev/null
@@ -0,0 +1,78 @@
+<testcase>
+<info>
+<keywords>
+Metalink
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2017; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+file
+Metalink
+</features>
+ <name>
+Metalink local XML file, attempt questionable file name
+ </name>
+<command option="no-output,no-include">
+--metalink file://%PWD/log/test2017.metalink
+</command>
+# local metalink file written before test command runs
+<file name="log/test2017.metalink">
+<?xml version="1.0" encoding="utf-8"?>
+<metalink version="3.0" xmlns="http://www.metalinker.org/">
+ <files>
+  <file name="log/.download2017">
+   <verification>
+    <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash>
+   </verification>
+   <resources maxconnections="1">
+    <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2017</url>
+   </resources>
+  </file>
+ </files>
+</metalink>
+</file>
+<postcheck>
+perl %SRCDIR/libtest/notexists.pl log/2017 log/name2017 log/.download2017
+</postcheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<file1 name="log/stdout2017">
+</file1>
+<file2 name="log/stderr2017">
+Metalink: parsing (file://%PWD/log/test2017.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2017.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2017.metalink) FAILED
+</file2>
+<stripfile2>
+$_ = '' if ($_ !~ /^Metalink: /)
+</stripfile2>
+</verify>
+</testcase>