diff options
| author | Patrick Monnerat <patrick@monnerat.net> | 2017-11-05 15:09:48 +0100 | 
|---|---|---|
| committer | Patrick Monnerat <patrick@monnerat.net> | 2017-11-05 15:09:48 +0100 | 
| commit | dbcced8e32b50c068ac297106f0502ee200a1ebd (patch) | |
| tree | 0fa1ce28f33ab968792e21264e9a9318807d9f9b /tests | |
| parent | 462f3cac34c09b9c28b449258e71dc37171dc604 (diff) | |
HTTP: support multiple Content-Encodings
This is implemented as an output streaming stack of unencoders, the last
calling the client write procedure.
New test 230 checks this feature.
Bug: https://github.com/curl/curl/pull/2002
Reported-By: Daniel Bankhead
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
| -rw-r--r-- | tests/data/test230 | 200 | 
2 files changed, 201 insertions, 1 deletions
| diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 9104f34f5..305f6f318 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -45,7 +45,7 @@ test190 test191 test192 test193 test194 test195 test196 test197 test198 \  test199 test200 test201 test202 test203 test204 test205 test206 test207 \  test208 test209 test210 test211 test212 test213 test214 test215 test216 \  test217 test218 test219 test220 test221 test222 test223 test224 test225 \ -test226 test227 test228 test229         test231         test233 test234 \ +test226 test227 test228 test229 test230 test231         test233 test234 \  test235 test236 test237 test238 test239 test240 test241 test242 test243 \  test244 test245 test246 test247 test248 test249 test250 test251 test252 \  test253 test254 test255 test256 test257 test258 test259 test260 test261 \ diff --git a/tests/data/test230 b/tests/data/test230 new file mode 100644 index 000000000..cc166a3f1 --- /dev/null +++ b/tests/data/test230 @@ -0,0 +1,200 @@ +<testcase> +<info> +<keywords> +HTTP +HTTP GET +compressed +</keywords> +</info> +# +# Server-side +<reply> +<data base64="yes"> +SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy +dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg +UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K +VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J +U08tODg1OS0xDQpDb250ZW50LUVuY29kaW5nOiBkZWZsYXRlLCBpZGVudGl0eSwgZ3ppcA0KQ29u +dGVudC1MZW5ndGg6IDEzMjgNCg0KH4sIAPpl+lkAAwEZBeb6eJzcWNtu4zYQfTeQf2D91AK2brYT +OXC0KHLZBM02wdoFuk8GLdE2G0kUSMq5PPTbO5QoibEcr3eDvgRIYnLmnMPhDEmTmXx6SmK0IVxQ +lp51XcvpIpKGLKLp6qx7M73r+/5o3He7n4LO5JeLu/PZt/tLlHH2DwllP6ZCAhBNv01nl19Qdy1l +dmrbS07EOiFYWimR9gKHDySN7GXS1zzRd6yhFcmoC6JbWkEHocqm2k1vTqPAPXa9iW0YSkSEJZnj +KCKAGI/9vuP3PRc5w1PHPfXGE9vwG4Q8Ux9R4DnOsO86fddHjnfqwc9AUyrEqzhSnJC5WDMugzDn +cR2OYW/jl3kcF3CE0wjFdNGmFhAdHhGhljpnSVJSUoIkY7UAx/wZLRlHYUxJKvuCRgT99fUWSY5T +sYSKWjCLRshQ3hkMogLhcgSlWqlwVd8ljYk46uRCddQY4jmV+MlCNxKJPMtAX6Dr2ey+V/yd9tAV +tI86V0X74uZ81kOzy9s/L+Hz9uJ3gF3d3F72iuE/391fX36FNgzwSGKIqZTqZ0zInm7m0AoZe6BE +FNooz2KGIxgCllqekKiZdQ9lWIhHxiPVhMjSPFkU9un09qgTEi7pkoZQVzD9QTj4mChDgWo8wQjF +tCAbGXsknERHncVzlaQekmvyZsarslhHndkaqAjD74KmajMJSG2dapVgBpsOec5RJ8bpKscrIooY +SLqhnKUJDCBAR5fQWBsbKnFM5fNchIyTYHTiD63RycTesm+BM8JDkAwGlntsYCvzFhrm8wB7bWwg +C5Ne1yzLY8ybsY5HY4hhCMt529MiVAO6A8t3XxFeh2I4ymCc0Su0EQ7HxbnhWyNnYuuO6ZmHLAdd +z6282vAKUw7iD2qMMYDIFyLkNJNwRIpgoE6H16YSBqVPw/Vc7eXggixxHsuJbRpLGNR/Xh1gGZQ9 +2HloVielrdaLPbFbrEZszRLythAsYMpLFXV42iZD69YCjaZcvRwuB2CtpGiNyOLFO1wEwFpE0RqR +F5odLgJgLaJojUi4hj1GYrY6XKqmaMFGopHlWXK4IIC1lKI1IhFZHC4CYC2iaI0IE0+HiwBYiyia +US8RqfPyB2pWEqq6abqxzHMOaRMk0Ou36hqF2YgfKMlGVMXYCENE3RwOV1FoLVMQG52Ecs744Uol +XmtpslnXhAVVraBZemIKhxyk4MvNzP4bncPpASmjeYJuS8fErhAar76n5JyTmNSZa5nn+v4WnFiu +Z8EF6Q33G2x1rzo5dvxRi1hdsNocdS/afXHaBSznYu+azATOUQITXjM5l2v4qoactUwlEucSbjKi +DqnsV93aoE9gnFISo6kkKXzDrya26WxRoEq76/7vAq8ioopsIFt0zmIS3D2mhNe4wlRFapuhVr1q +CasveE4TmmJpzk5yuCEUtYGC1p2W1/OO97kHe7n7nK7v7+W6e8eFpbE/6r1u93i4zz3eS/bHe73O +Xrc7+k7c3wlsf2SD1tjl/W67/LAmMngywUMMrqO1Tm18RvI5I2ddTkJ4HSibeknVi7LBmRvZUUPt +cuwk6nsLuE+Gqhg7XTuZxuOsRd1+uL3FlVSqDQV2uLOjX/Vt6redWiW23mkN4u28seLehuP/L2nO +T2dsOHhnxtT76uMnyvUGI/cdmXqBp9jHz9LAc4Yn78jSNaFJhOOPn6jhcDTw3pGosA9PffEzeTIs ++qyv/ysUdP4DAAD//4IzEaNjAAAAAP//AwDdOI7RbCh2MRkFAAA= +</data> + +<datacheck> +HTTP/1.1 200 OK
 +Date: Mon, 29 Nov 2004 21:56:53 GMT
 +Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
 +Vary: Accept-Encoding
 +Content-Type: text/html; charset=ISO-8859-1
 +Content-Encoding: deflate, identity, gzip
 +Content-Length: 1328
 +
 +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd"> +<project-listing> +  <project> +    <project_id>1612</project_id> +    <date_added>1998-08-21 04:01:29</date_added> +    <date_updated>2004-10-18 02:22:23</date_updated> +    <projectname_short>curl</projectname_short> +    <projectname_full>curl and libcurl</projectname_full> +    <desc_short>Command line tool and library for client-side URL transfers.</desc_short> +    <desc_full>curl and libcurl is a tool for transferring files
 +using URL syntax. It supports HTTP, HTTPS, FTP,
 +FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as
 +well as HTTP-post, HTTP-put, cookies, FTP upload,
 +resumed transfers, passwords, portnumbers, SSL
 +certificates, Kerberos, and proxies. It is powered
 +by libcurl, the client-side URL transfer library.
 +There are bindings to libcurl for over 20
 +languages and environments.
 +</desc_full> +    <vitality_score>5784.57</vitality_score> +    <vitality_percent>3.16</vitality_percent> +    <vitality_rank>169</vitality_rank> +    <popularity_score>6594.54</popularity_score> +    <popularity_percent>13.81</popularity_percent> +    <popularity_rank>105</popularity_rank> +    <rating>8.50</rating> +    <rating_count>21</rating_count> +    <rating_rank>183</rating_rank> +    <subscriptions>323</subscriptions> +    <branch_name>Default</branch_name> +    <url_project_page>http://freshmeat.net/projects/curl/</url_project_page> +    <url_homepage>http://freshmeat.net/redir/curl/1612/url_homepage/</url_homepage> +    <url_tgz>http://freshmeat.net/redir/curl/1612/url_tgz/</url_tgz> +    <url_bz2>http://freshmeat.net/redir/curl/1612/url_bz2/</url_bz2> +    <url_zip>http://freshmeat.net/redir/curl/1612/url_zip/</url_zip> +    <url_changelog>http://freshmeat.net/redir/curl/1612/url_changelog/</url_changelog> +    <url_rpm>http://freshmeat.net/redir/curl/1612/url_rpm/</url_rpm> +    <url_deb>http://freshmeat.net/redir/curl/1612/url_deb/</url_deb> +    <url_osx>http://freshmeat.net/redir/curl/1612/url_osx/</url_osx> +    <url_bsdport>http://freshmeat.net/redir/curl/1612/url_bsdport/</url_bsdport> +    <url_purchase></url_purchase> +    <url_cvs>http://freshmeat.net/redir/curl/1612/url_cvs/</url_cvs> +    <url_list>http://freshmeat.net/redir/curl/1612/url_list/</url_list> +    <url_mirror>http://freshmeat.net/redir/curl/1612/url_mirror/</url_mirror> +    <url_demo></url_demo> +    <license>MIT/X Consortium License</license> +    <latest_release> +      <latest_release_version>7.12.2</latest_release_version> +      <latest_release_id>176085</latest_release_id> +      <latest_release_date>2004-10-18 02:22:23</latest_release_date> +    </latest_release> +    <screenshot_thumb></screenshot_thumb> +    <authors> +      <author> +        <author_name>Daniel Stenberg</author_name> +        <author_url>http://freshmeat.net/~bagder/</author_url> +        <author_role>Owner</author_role> +      </author> +    </authors> +    <descriminators> +      <trove_id>12</trove_id> +      <trove_id>226</trove_id> +      <trove_id>3</trove_id> +      <trove_id>2</trove_id> +      <trove_id>188</trove_id> +      <trove_id>216</trove_id> +      <trove_id>200</trove_id> +      <trove_id>220</trove_id> +      <trove_id>164</trove_id> +      <trove_id>90</trove_id> +      <trove_id>89</trove_id> +      <trove_id>809</trove_id> +      <trove_id>150</trove_id> +      <trove_id>224</trove_id> +      <trove_id>900</trove_id> +      <trove_id>839</trove_id> +    </descriminators> +    <dependencies> +      <dependency type="recommended"> +        <dependency_release_id>0</dependency_release_id> +        <dependency_branch_id>7464</dependency_branch_id> +        <dependency_project_id>7464</dependency_project_id> +        <dependency_project_title>OpenSSL (Default)</dependency_project_title> +      </dependency> +      <dependency type="optional"> +        <dependency_release_id>0</dependency_release_id> +        <dependency_branch_id>0</dependency_branch_id> +        <dependency_project_id>7443</dependency_project_id> +        <dependency_project_title>OpenLDAP</dependency_project_title> +      </dependency> +      <dependency type="optional"> +        <dependency_release_id>0</dependency_release_id> +        <dependency_branch_id>0</dependency_branch_id> +        <dependency_project_id>12351</dependency_project_id> +        <dependency_project_title>zlib</dependency_project_title> +      </dependency> +      <dependency type="optional"> +        <dependency_release_id>0</dependency_release_id> +        <dependency_branch_id>0</dependency_branch_id> +        <dependency_project_id>32047</dependency_project_id> +        <dependency_project_title>Heimdal</dependency_project_title> +      </dependency> +      <dependency type="optional"> +        <dependency_release_id>0</dependency_release_id> +        <dependency_branch_id>0</dependency_branch_id> +        <dependency_project_id>44532</dependency_project_id> +        <dependency_project_title>c-ares</dependency_project_title> +      </dependency> +    </dependencies> +  </project> +</project-listing> +</datacheck> + +</reply> + +# +# Client-side +<client> +<features> +libz +</features> +<server> +http +</server> + <name> +HTTP GET multiply compressed content + </name> + <command> +http://%HOSTIP:%HTTPPORT/230 --compressed +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<strip> +^User-Agent:.* +</strip> +<protocol> +GET /230 HTTP/1.1
 +Host: %HOSTIP:%HTTPPORT
 +Accept: */*
 +Accept-Encoding: deflate, gzip
 +
 +</protocol> +</verify> +</testcase> | 
