diff options
author | Yusuke Endoh <mame@ruby-lang.org> | 2019-12-16 23:20:42 +0900 |
---|---|---|
committer | Yusuke Endoh <mame@ruby-lang.org> | 2019-12-16 23:20:42 +0900 |
commit | 5105240b1e851410020b3b3f1a2bead7ffdd4291 (patch) | |
tree | 2a51dd29300cc4041503b3260f117e0e81c9a099 /test/net | |
parent | d6fd39030d8b14eef117c1e5e265e0b769a9f4fd (diff) |
lib/net/http/response.rb: support raw deflate correctly
Net::HTTP had used `Zlib::Inflate.new(32 + Zlib::MAX_WBITS)` for all
content encoding (deflate, zlib, and gzip).
But the argument `32 + Zlib::MAX_WBITS` means zlib and gzip decoding
with automatic header detection, so (raw) deflate compression had not
been supported.
This change makes it support raw deflate correctly by passing an
argument `-Zlib::MAX_WBITS` (which means raw deflate) to
`Zlib::Inflate.new`. All deflate-mode tests are fixed too.
[Bug #11268]
Diffstat (limited to 'test/net')
-rw-r--r-- | test/net/http/test_httpresponse.rb | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/test/net/http/test_httpresponse.rb b/test/net/http/test_httpresponse.rb index a03bb2e152..14a804df1c 100644 --- a/test/net/http/test_httpresponse.rb +++ b/test/net/http/test_httpresponse.rb @@ -107,9 +107,9 @@ EOS HTTP/1.1 200 OK Connection: close Content-Encoding: deflate -Content-Length: 13 +Content-Length: 7 -x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15 +\xCBH\xCD\xC9\xC9\a\x00 EOS res = Net::HTTPResponse.read_new(io) @@ -126,7 +126,7 @@ EOS assert_equal 'hello', body else assert_equal 'deflate', res['content-encoding'] - assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body + assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body end end @@ -135,9 +135,9 @@ EOS HTTP/1.1 200 OK Connection: close Content-Encoding: DEFLATE -Content-Length: 13 +Content-Length: 7 -x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15 +\xCBH\xCD\xC9\xC9\a\x00 EOS res = Net::HTTPResponse.read_new(io) @@ -154,7 +154,7 @@ EOS assert_equal 'hello', body else assert_equal 'DEFLATE', res['content-encoding'] - assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body + assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body end end @@ -165,10 +165,10 @@ Connection: close Content-Encoding: deflate Transfer-Encoding: chunked -6 -x\x9C\xCBH\xCD\xC9 -7 -\xC9\a\x00\x06,\x02\x15 +4 +\xCBH\xCD\xC9 +3 +\xC9\a\x00 0 EOS @@ -187,7 +187,7 @@ EOS assert_equal 'hello', body else assert_equal 'deflate', res['content-encoding'] - assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body + assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body end end @@ -196,9 +196,9 @@ EOS HTTP/1.1 200 OK Connection: close Content-Encoding: deflate -Content-Length: 13 +Content-Length: 7 -x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15 +\xCBH\xCD\xC9\xC9\a\x00 EOS res = Net::HTTPResponse.read_new(io) @@ -211,7 +211,7 @@ EOS end assert_equal 'deflate', res['content-encoding'], 'Bug #7831' - assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body, 'Bug #7381' + assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body, 'Bug #7381' end def test_read_body_content_encoding_deflate_no_length @@ -220,7 +220,7 @@ HTTP/1.1 200 OK Connection: close Content-Encoding: deflate -x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15 +\xCBH\xCD\xC9\xC9\a\x00 EOS res = Net::HTTPResponse.read_new(io) @@ -237,7 +237,7 @@ EOS assert_equal 'hello', body else assert_equal 'deflate', res['content-encoding'] - assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15\r\n", body + assert_equal "\xCBH\xCD\xC9\xC9\a\x00\r\n", body end end |