summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2012-06-27 13:15:05 +0200
committerYang Tse <yangsita@gmail.com>2012-06-27 13:16:01 +0200
commit6c09ffaf468c47a8b7602d9ee6bbf146e860c994 (patch)
tree94771421d4e879d67579c40688678bcb92eaf542
parent5ce9e7a0b7d569483ba0f4f14f47cf4f01baa0d5 (diff)
downloadcurl-6c09ffaf468c47a8b7602d9ee6bbf146e860c994.tar.gz
tests: add five more Metalink test cases
-rw-r--r--tests/data/DISABLED5
-rw-r--r--tests/data/Makefile.am3
-rw-r--r--tests/data/test201378
-rw-r--r--tests/data/test201478
-rw-r--r--tests/data/test201578
-rw-r--r--tests/data/test201678
-rw-r--r--tests/data/test201778
7 files changed, 397 insertions, 1 deletions
diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index 0bcc328e3..c15fe769b 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -6,3 +6,8 @@
1209
1211
2012
+2013
+2014
+2015
+2016
+2017
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 797763b4c..5136b419e 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -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
index 000000000..dc0208bc9
--- /dev/null
+++ b/tests/data/test2013
@@ -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
index 000000000..659bc9221
--- /dev/null
+++ b/tests/data/test2014
@@ -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
index 000000000..45646f2de
--- /dev/null
+++ b/tests/data/test2015
@@ -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
index 000000000..a5f3674b0
--- /dev/null
+++ b/tests/data/test2016
@@ -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
index 000000000..f4312c47b
--- /dev/null
+++ b/tests/data/test2017
@@ -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>