From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/test/webrick/test_httpresponse.rb | 149 +++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 jni/ruby/test/webrick/test_httpresponse.rb (limited to 'jni/ruby/test/webrick/test_httpresponse.rb') diff --git a/jni/ruby/test/webrick/test_httpresponse.rb b/jni/ruby/test/webrick/test_httpresponse.rb new file mode 100644 index 0000000..c916ed5 --- /dev/null +++ b/jni/ruby/test/webrick/test_httpresponse.rb @@ -0,0 +1,149 @@ +require "webrick" +require "minitest/autorun" +require "stringio" + +module WEBrick + class TestHTTPResponse < MiniTest::Unit::TestCase + class FakeLogger + attr_reader :messages + + def initialize + @messages = [] + end + + def warn msg + @messages << msg + end + end + + attr_reader :config, :logger, :res + + def setup + super + @logger = FakeLogger.new + @config = Config::HTTP + @config[:Logger] = logger + @res = HTTPResponse.new config + @res.keep_alive = true + end + + def test_304_does_not_log_warning + res.status = 304 + res.setup_header + assert_equal 0, logger.messages.length + end + + def test_204_does_not_log_warning + res.status = 204 + res.setup_header + + assert_equal 0, logger.messages.length + end + + def test_1xx_does_not_log_warnings + res.status = 105 + res.setup_header + + assert_equal 0, logger.messages.length + end + + def test_send_body_io + IO.pipe {|body_r, body_w| + body_w.write 'hello' + body_w.close + + @res.body = body_r + + IO.pipe {|r, w| + + @res.send_body w + + w.close + + assert_equal 'hello', r.read + } + } + assert_equal 0, logger.messages.length + end + + def test_send_body_string + @res.body = 'hello' + + IO.pipe {|r, w| + @res.send_body w + + w.close + + assert_equal 'hello', r.read + } + assert_equal 0, logger.messages.length + end + + def test_send_body_string_io + @res.body = StringIO.new 'hello' + + IO.pipe {|r, w| + @res.send_body w + + w.close + + assert_equal 'hello', r.read + } + assert_equal 0, logger.messages.length + end + + def test_send_body_io_chunked + @res.chunked = true + + IO.pipe {|body_r, body_w| + + body_w.write 'hello' + body_w.close + + @res.body = body_r + + IO.pipe {|r, w| + @res.send_body w + + w.close + + r.binmode + assert_equal "5\r\nhello\r\n0\r\n\r\n", r.read + } + } + assert_equal 0, logger.messages.length + end + + def test_send_body_string_chunked + @res.chunked = true + + @res.body = 'hello' + + IO.pipe {|r, w| + @res.send_body w + + w.close + + r.binmode + assert_equal "5\r\nhello\r\n0\r\n\r\n", r.read + } + assert_equal 0, logger.messages.length + end + + def test_send_body_string_io_chunked + @res.chunked = true + + @res.body = StringIO.new 'hello' + + IO.pipe {|r, w| + @res.send_body w + + w.close + + r.binmode + assert_equal "5\r\nhello\r\n0\r\n\r\n", r.read + } + assert_equal 0, logger.messages.length + end + end +end -- cgit v1.2.3