For XML-compliance.
Closes #19923
HTTP
HTTP POST
followlocation
-notxml
</keywords>
</info>
#
<reply>
<data crlf="headers">
HTTP/1.1 301 OK
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 0
</data2>
<datacheck crlf="headers">
HTTP/1.1 301 OK
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 0
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
-mooGET /blah/moo.html&testcase=/%TESTNUMBER0002 HTTP/1.1
+mooGET /blah/moo.html%AMPtestcase=/%TESTNUMBER0002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP
HTTP POST
followlocation
-notxml
</keywords>
</info>
#
<reply>
<data crlf="headers">
HTTP/1.1 301 OK swsclose
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
</data2>
<datacheck crlf="headers">
HTTP/1.1 301 OK swsclose
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
-mooPOST /blah/moo.html&testcase=/%TESTNUMBER0002 HTTP/1.1
+mooPOST /blah/moo.html%AMPtestcase=/%TESTNUMBER0002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP
HTTP POST
--data-urlencode
-notxml
</keywords>
</info>
Content-Length: 119
Content-Type: application/x-www-form-urlencoded
-my+name+is+moo%5B%5D&y e s=s_i_r&v_alue=content+to+_%3F%21%23%24%27%7C%3C%3E%0A&content+to+_%3F%21%23%24%27%7C%3C%3E%0A
+my+name+is+moo%5B%5D%AMPy e s=s_i_r%AMPv_alue=content+to+_%3F%21%23%24%27%7C%3C%3E%0A%AMPcontent+to+_%3F%21%23%24%27%7C%3C%3E%0A
</protocol>
</verify>
</testcase>
HTTP
HTTP POST
followlocation
-notxml
</keywords>
</info>
#
<reply>
<data>
HTTP/1.1 302 OK swsclose
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
</data2>
<datacheck>
HTTP/1.1 302 OK swsclose
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
-mooPOST /blah/moo.html&testcase=/%TESTNUMBER0002 HTTP/1.1
+mooPOST /blah/moo.html%AMPtestcase=/%TESTNUMBER0002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP POST
cookies
cookiejar
-notxml
</keywords>
</info>
HTTP with cookie parser and header recording
</name>
<command>
-"http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER?parm1=this*that/other/thing&parm2=foobar/%TESTNUMBER" -c %LOGDIR/cookie%TESTNUMBER.txt -d "userid=myname&password=mypassword"
+"http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER?parm1=this*that/other/thing%AMPparm2=foobar/%TESTNUMBER" -c %LOGDIR/cookie%TESTNUMBER.txt -d "userid=myname%AMPpassword=mypassword"
</command>
<features>
cookies
# Verify data after the test has been "shot"
<verify>
<protocol crlf="yes" nonewline="yes">
-POST /we/want/%TESTNUMBER?parm1=this*that/other/thing&parm2=foobar/%TESTNUMBER HTTP/1.1
+POST /we/want/%TESTNUMBER?parm1=this*that/other/thing%AMPparm2=foobar/%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
-userid=myname&password=mypassword
+userid=myname%AMPpassword=mypassword
</protocol>
<file name="%LOGDIR/cookie%TESTNUMBER.txt" mode="text">
# Netscape HTTP Cookie File
HTTP
HTTP GET
followlocation
-notxml
</keywords>
</info>
#
<reply>
<data crlf="headers">
HTTP/1.1 302 OK swsclose
-Location: ../moo.html/?name=%hex[%d8%a2%d8%ba%d8%a7%d8%b2%2d%d8%b3%d9%85%2d%d8%b2%d8%af%d8%a7%db%8c%db%8c%2d%d8%a7%d8%b2%2d%d8%a8%d8%a7%d8%b2%d8%a7%d8%b1%2d%d9%be%d9%88%d9%84]hex%&testcase=/%TESTNUMBER0002
+Location: ../moo.html/?name=%hex[%d8%a2%d8%ba%d8%a7%d8%b2%2d%d8%b3%d9%85%2d%d8%b2%d8%af%d8%a7%db%8c%db%8c%2d%d8%a7%d8%b2%2d%d8%a8%d8%a7%d8%b2%d8%a7%d8%b1%2d%d9%be%d9%88%d9%84]hex%%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
</data2>
<datacheck crlf="headers">
HTTP/1.1 302 OK swsclose
-Location: ../moo.html/?name=%hex[%d8%a2%d8%ba%d8%a7%d8%b2%2d%d8%b3%d9%85%2d%d8%b2%d8%af%d8%a7%db%8c%db%8c%2d%d8%a7%d8%b2%2d%d8%a8%d8%a7%d8%b2%d8%a7%d8%b1%2d%d9%be%d9%88%d9%84]hex%&testcase=/%TESTNUMBER0002
+Location: ../moo.html/?name=%hex[%d8%a2%d8%ba%d8%a7%d8%b2%2d%d8%b3%d9%85%2d%d8%b2%d8%af%d8%a7%db%8c%db%8c%2d%d8%a7%d8%b2%2d%d8%a8%d8%a7%d8%b2%d8%a7%d8%b1%2d%d9%be%d9%88%d9%84]hex%%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
User-Agent: curl/%VERSION
Accept: */*
-GET /we/are/all/moo.html/?name=%D8%A2%D8%BA%D8%A7%D8%B2-%D8%B3%D9%85-%D8%B2%D8%AF%D8%A7%DB%8C%DB%8C-%D8%A7%D8%B2-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%D9%BE%D9%88%D9%84&testcase=/%TESTNUMBER0002 HTTP/1.1
+GET /we/are/all/moo.html/?name=%D8%A2%D8%BA%D8%A7%D8%B2-%D8%B3%D9%85-%D8%B2%D8%AF%D8%A7%DB%8C%DB%8C-%D8%A7%D8%B2-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%D9%BE%D9%88%D9%84%AMPtestcase=/%TESTNUMBER0002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP POST
--data-urlencode
--url-query
-notxml
</keywords>
</info>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="yes" nonewline="yes">
-POST /%TESTNUMBER?my+name+is+moo%5b%5d&yes=s+i+r&v_alue=content+to+_%3f%21%23%24%27%7c%3c%3e%0a&content+to+_%3f%21%23%24%27%7c%3c%3e%0a&%3d%3d HTTP/1.1
+POST /%TESTNUMBER?my+name+is+moo%5b%5d%AMPyes=s+i+r%AMPv_alue=content+to+_%3f%21%23%24%27%7c%3c%3e%0a%AMPcontent+to+_%3f%21%23%24%27%7c%3c%3e%0a%AMP%3d%3d HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP
HTTP POST
followlocation
-notxml
</keywords>
</info>
#
<reply>
<data>
HTTP/1.1 303 OK swsclose
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
</data2>
<datacheck>
HTTP/1.1 303 OK swsclose
-Location: moo.html&testcase=/%TESTNUMBER0002
+Location: moo.html%AMPtestcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
-mooPOST /blah/moo.html&testcase=/%TESTNUMBER0002 HTTP/1.1
+mooPOST /blah/moo.html%AMPtestcase=/%TESTNUMBER0002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP
HTTP POST
--libcurl
-notxml
</keywords>
</info>
Content-Length: 16
Content-Type: application/x-www-form-urlencoded
-foo=bar&baz=quux
+foo=bar%AMPbaz=quux
</protocol>
<stripfile>
# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
HTTP
HTTP GET
--libcurl
-notxml
</keywords>
</info>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-GET /we/want/%TESTNUMBER?foo=bar&baz=quux HTTP/1.1
+GET /we/want/%TESTNUMBER?foo=bar%AMPbaz=quux HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP POST
CURLOPT_HTTPTRAILER_FUNCTION
CURLOPT_HTTPTRAILER_DATA
-notxml
</keywords>
</info>
Content-Type: application/x-www-form-urlencoded
11
-xxx=yyy&aaa=bbbbb
+xxx=yyy%AMPaaa=bbbbb
0
my-super-awesome-trailer: trail1
my-other-awesome-trailer: trail2
<keywords>
CURLOPT_CURLU
CURLINFO_EFFECTIVE_URL
-notxml
</keywords>
</info>
<stdout>
effective URL: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
effective URL: http://%HOSTIP:%HTTPPORT/%TESTNUMBER?foo
-effective URL: http://%HOSTIP:%HTTPPORT/%TESTNUMBER?foo&bar
+effective URL: http://%HOSTIP:%HTTPPORT/%TESTNUMBER?foo%AMPbar
</stdout>
<protocol crlf="headers">
GET /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
-GET /%TESTNUMBER?foo&bar HTTP/1.1
+GET /%TESTNUMBER?foo%AMPbar HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
HTTP
HTTP GET
globbing
-notxml
</keywords>
</info>
#
HTTP with -d, -G and {}
</name>
<command>
--d "foo=moo&moo=poo" "http://%HOSTIP:%HTTPPORT/{%TESTNUMBER,%TESTNUMBER}" -G
+-d "foo=moo%AMPmoo=poo" "http://%HOSTIP:%HTTPPORT/{%TESTNUMBER,%TESTNUMBER}" -G
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-GET /%TESTNUMBER?foo=moo&moo=poo HTTP/1.1
+GET /%TESTNUMBER?foo=moo%AMPmoo=poo HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
-GET /%TESTNUMBER?foo=moo&moo=poo HTTP/1.1
+GET /%TESTNUMBER?foo=moo%AMPmoo=poo HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP
HTTP POST
HTTP Basic auth
-notxml
</keywords>
</info>
#
HTTP POST with auth and contents but with content-length set to 0
</name>
<command>
- -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://%HOSTIP:%HTTPPORT/%TESTNUMBER
+ -d "fooo=mooo%AMPpooo=clue%AMPdoo=%20%20%20++++" -u "fake:-user" http://%HOSTIP:%HTTPPORT/%TESTNUMBER
</command>
</client>
Content-Length: 37
Content-Type: application/x-www-form-urlencoded
-fooo=mooo&pooo=clue&doo=%20%20%20++++
+fooo=mooo%AMPpooo=clue%AMPdoo=%20%20%20++++
</protocol>
</verify>
</testcase>
HTTP
HTTP GET
-G
-notxml
</keywords>
</info>
#
HTTP with -d and -G
</name>
<command>
--d "foo=moo&moo=poo" http://%HOSTIP:%HTTPPORT/%TESTNUMBER -G
+-d "foo=moo%AMPmoo=poo" http://%HOSTIP:%HTTPPORT/%TESTNUMBER -G
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-GET /%TESTNUMBER?foo=moo&moo=poo HTTP/1.1
+GET /%TESTNUMBER?foo=moo%AMPmoo=poo HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
HTTP
HTTP GET
followlocation
-notxml
</keywords>
</info>
#
<reply>
<data crlf="headers">
HTTP/1.1 302 OK swsclose
-Location: ../moo.html/?name=d a niel&testcase=/%TESTNUMBER0002%repeat[4 x ]%
+Location: ../moo.html/?name=d a niel%AMPtestcase=/%TESTNUMBER0002%repeat[4 x ]%
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
</data2>
<datacheck crlf="headers">
HTTP/1.1 302 OK swsclose
-Location: ../moo.html/?name=d a niel&testcase=/%TESTNUMBER0002%repeat[4 x ]%
+Location: ../moo.html/?name=d a niel%AMPtestcase=/%TESTNUMBER0002%repeat[4 x ]%
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
User-Agent: curl/%VERSION
Accept: */*
-GET /we/are/all/moo.html/?name=d+a+niel&testcase=/%TESTNUMBER0002 HTTP/1.1
+GET /we/are/all/moo.html/?name=d+a+niel%AMPtestcase=/%TESTNUMBER0002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
<keywords>
HTTP
aws-sigv4
-notxml
</keywords>
</info>
aws-sigv4 with query
</name>
<command>
-"http://fake.fake.fake:8000/%TESTNUMBER/?name=me&noval&aim=b%aad&&&weirdo=*.//-" -u user:secret --aws-sigv4 "aws:amz:us-east-2:es" --connect-to fake.fake.fake:8000:%HOSTIP:%HTTPPORT
+"http://fake.fake.fake:8000/%TESTNUMBER/?name=me%AMPnoval%AMPaim=b%aad%AMP%AMP%AMPweirdo=*.//-" -u user:secret --aws-sigv4 "aws:amz:us-east-2:es" --connect-to fake.fake.fake:8000:%HOSTIP:%HTTPPORT
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-GET /%TESTNUMBER/?name=me&noval&aim=b%aad&&&weirdo=*.//- HTTP/1.1
+GET /%TESTNUMBER/?name=me%AMPnoval%AMPaim=b%aad%AMP%AMP%AMPweirdo=*.//- HTTP/1.1
Host: fake.fake.fake:8000
Authorization: AWS4-HMAC-SHA256 Credential=user/19700101/us-east-2/es/aws4_request, SignedHeaders=host;x-amz-date, Signature=9dd8592929306832a6673d10063491391e486e5f50de4647ea7c2c797277e0a6
X-Amz-Date: 19700101T000000Z
HTTP
HTTP HEAD
-G
-notxml
</keywords>
</info>
#
HTTP with -d and -G and -I
</name>
<command>
--d "foo=moo&moo=poo" http://%HOSTIP:%HTTPPORT/%TESTNUMBER -G -I http://%HOSTIP:%HTTPPORT/%TESTNUMBER
+-d "foo=moo%AMPmoo=poo" http://%HOSTIP:%HTTPPORT/%TESTNUMBER -G -I http://%HOSTIP:%HTTPPORT/%TESTNUMBER
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-HEAD /%TESTNUMBER?foo=moo&moo=poo HTTP/1.1
+HEAD /%TESTNUMBER?foo=moo%AMPmoo=poo HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
-HEAD /%TESTNUMBER?foo=moo&moo=poo HTTP/1.1
+HEAD /%TESTNUMBER?foo=moo%AMPmoo=poo HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
<keywords>
RTSP
ANNOUNCE
-notxml
</keywords>
</info>
Content-Type: posty goodness
Content-Length: 35
-postyfield=postystuff&project=curl
+postyfield=postystuff%AMPproject=curl
OPTIONS rtsp://%HOSTIP:%RTSPPORT/%TESTNUMBER0004 RTSP/1.0
CSeq: 4
<info>
<keywords>
IPFS
-notxml
</keywords>
</info>
IPFS with path and query args
</name>
<command>
---ipfs-gateway http://%HOSTIP:%HTTPPORT "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb"
+--ipfs-gateway http://%HOSTIP:%HTTPPORT "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar%AMPaaa=bbb"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-GET /ipfs/bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb HTTP/1.1
+GET /ipfs/bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar%AMPaaa=bbb HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
<info>
<keywords>
IPFS
-notxml
</keywords>
</info>
IPFS with path, query args and gateway with path
</name>
<command>
---ipfs-gateway http://%HOSTIP:%HTTPPORT/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb"
+--ipfs-gateway http://%HOSTIP:%HTTPPORT/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar%AMPaaa=bbb"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-GET /some/path/ipfs/bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb HTTP/1.1
+GET /some/path/ipfs/bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar%AMPaaa=bbb HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
<info>
<keywords>
IPFS
-notxml
</keywords>
</info>
IPNS with path, query args and gateway with path
</name>
<command>
---ipfs-gateway http://%HOSTIP:%HTTPPORT/some/path "ipns://fancy.tld/a/b?foo=bar&aaa=bbb"
+--ipfs-gateway http://%HOSTIP:%HTTPPORT/some/path "ipns://fancy.tld/a/b?foo=bar%AMPaaa=bbb"
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
-GET /some/path/ipns/fancy.tld/a/b?foo=bar&aaa=bbb HTTP/1.1
+GET /some/path/ipns/fancy.tld/a/b?foo=bar%AMPaaa=bbb HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
<info>
<keywords>
IPFS
-notxml
</keywords>
</info>
IPNS path and query args for gateway and IPFS URL (malformed gateway URL)
</name>
<command>
---ipfs-gateway "http://%HOSTIP:%HTTPPORT/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar&aaa=bbb"
+--ipfs-gateway "http://%HOSTIP:%HTTPPORT/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar%AMPaaa=bbb"
</command>
</client>