提交 ae36fced 编写于 作者: E Eugene Pimenov 提交者: Jeremy Kemper

Ruby 1.9 compat: call bytesize for content_length

[#1881 state:committed]
Signed-off-by: NJeremy Kemper <jeremy@bitsweat.net>
上级 55812291
......@@ -236,7 +236,7 @@ def set_content_length!
elsif length = headers['Content-Length']
headers['Content-Length'] = length.to_s
elsif !body.respond_to?(:call) && (!status || status.to_s[0..2] != '304')
headers["Content-Length"] = body.size.to_s
headers["Content-Length"] = (body.respond_to?(:bytesize) ? body.bytesize : body.size).to_s
end
end
......
......@@ -228,6 +228,21 @@ def test_simple_output
assert_equal ["Hello, World!"], parts
end
def test_utf8_output
@response.body = [1090, 1077, 1089, 1090].pack("U*")
@response.prepare!
status, headers, body = @response.to_a
assert_equal 200, status
assert_equal({
"Content-Type" => "text/html; charset=utf-8",
"Cache-Control" => "private, max-age=0, must-revalidate",
"ETag" => '"ebb5e89e8a94e9dd22abf5d915d112b2"',
"Set-Cookie" => [],
"Content-Length" => "8"
}, headers)
end
def test_streaming_block
@response.body = Proc.new do |response, output|
5.times { |n| output.write(n) }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册