Bug #4110 » fix_webrick_test.diff
test/webrick/test_httprequest.rb (working copy) | ||
---|---|---|
require "test/unit"
|
||
class TestWEBrickHTTPRequest < Test::Unit::TestCase
|
||
HTTP_CONFIG = WEBrick::Config::HTTP.merge(:ServerName => 'localhost')
|
||
def test_parse_09
|
||
msg = <<-_end_of_message_
|
||
GET /
|
||
foobar # HTTP/0.9 request don't have header nor entity body.
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal("GET", req.request_method)
|
||
assert_equal("/", req.unparsed_uri)
|
||
assert_equal(WEBrick::HTTPVersion.new("0.9"), req.http_version)
|
||
assert_equal(WEBrick::Config::HTTP[:ServerName], req.host)
|
||
assert_equal(HTTP_CONFIG[:ServerName], req.host)
|
||
assert_equal(80, req.port)
|
||
assert_equal(false, req.keep_alive?)
|
||
assert_equal(nil, req.body)
|
||
... | ... | |
GET / HTTP/1.0
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal("GET", req.request_method)
|
||
assert_equal("/", req.unparsed_uri)
|
||
assert_equal(WEBrick::HTTPVersion.new("1.0"), req.http_version)
|
||
assert_equal(WEBrick::Config::HTTP[:ServerName], req.host)
|
||
assert_equal(HTTP_CONFIG[:ServerName], req.host)
|
||
assert_equal(80, req.port)
|
||
assert_equal(false, req.keep_alive?)
|
||
assert_equal(nil, req.body)
|
||
... | ... | |
GET /path HTTP/1.1
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal("GET", req.request_method)
|
||
assert_equal("/path", req.unparsed_uri)
|
||
assert_equal("", req.script_name)
|
||
assert_equal("/path", req.path_info)
|
||
assert_equal(WEBrick::HTTPVersion.new("1.1"), req.http_version)
|
||
assert_equal(WEBrick::Config::HTTP[:ServerName], req.host)
|
||
assert_equal(HTTP_CONFIG[:ServerName], req.host)
|
||
assert_equal(80, req.port)
|
||
assert_equal(true, req.keep_alive?)
|
||
assert_equal(nil, req.body)
|
||
... | ... | |
msg = <<-_end_of_message_
|
||
GET /#{"a"*2084} HTTP/1.1
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
assert_raise(WEBrick::HTTPStatus::RequestURITooLarge){
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
}
|
||
... | ... | |
foobar
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal(
|
||
URI.parse("http://test.ruby-lang.org:8080/path"), req.request_uri)
|
||
... | ... | |
hogehoge
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal("POST", req.request_method)
|
||
assert_equal("/foo/baz", req.path)
|
||
... | ... | |
Host: test.ruby-lang.org
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal(URI.parse("http://test.ruby-lang.org/path"), req.request_uri)
|
||
assert_equal("test.ruby-lang.org", req.host)
|
||
... | ... | |
Host: 192.168.1.1
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal(URI.parse("http://192.168.1.1/path"), req.request_uri)
|
||
assert_equal("192.168.1.1", req.host)
|
||
... | ... | |
Host: [fe80::208:dff:feef:98c7]
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal(URI.parse("http://[fe80::208:dff:feef:98c7]/path"),
|
||
req.request_uri)
|
||
... | ... | |
Host: 192.168.1.1:8080
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal(URI.parse("http://192.168.1.1:8080/path"), req.request_uri)
|
||
assert_equal("192.168.1.1", req.host)
|
||
... | ... | |
Host: [fe80::208:dff:feef:98c7]:8080
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
assert_equal(URI.parse("http://[fe80::208:dff:feef:98c7]:8080/path"),
|
||
req.request_uri)
|
||
... | ... | |
Host: test.ruby-lang.org:8080
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
query = req.query
|
||
assert_equal("1", query["foo"])
|
||
... | ... | |
#{param}
|
||
_end_of_message_
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
query = req.query
|
||
assert_equal("1", query["foo"])
|
||
... | ... | |
end
|
||
}
|
||
msg << "0" << crlf
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg))
|
||
assert_equal(File.read(__FILE__), req.body)
|
||
end
|
||
... | ... | |
_end_of_message_
|
||
msg.gsub!(/^ {6}/, "")
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg))
|
||
assert_equal("server.example.com", req.server_name)
|
||
assert_equal("http://forward.example.com/foo", req.request_uri.to_s)
|
||
... | ... | |
_end_of_message_
|
||
msg.gsub!(/^ {6}/, "")
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg))
|
||
assert_equal("server.example.com", req.server_name)
|
||
assert_equal("http://forward.example.com:8080/foo", req.request_uri.to_s)
|
||
... | ... | |
_end_of_message_
|
||
msg.gsub!(/^ {6}/, "")
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg))
|
||
assert_equal("server.example.com", req.server_name)
|
||
assert_equal("https://forward.example.com/foo", req.request_uri.to_s)
|
||
... | ... | |
|
||
_end_of_message_
|
||
msg.gsub!(/^ {6}/, "")
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg))
|
||
assert req['expect']
|
||
l = msg.size
|
||
... | ... | |
|
||
_end_of_message_
|
||
msg.gsub!(/^ {6}/, "")
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg))
|
||
assert !req['expect']
|
||
l = msg.size
|
||
... | ... | |
#{param}
|
||
_end_of_message_
|
||
assert_raise(WEBrick::HTTPStatus::LengthRequired){
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
req.body
|
||
}
|
||
... | ... | |
body is too short.
|
||
_end_of_message_
|
||
assert_raise(WEBrick::HTTPStatus::BadRequest){
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
req.body
|
||
}
|
||
... | ... | |
body is too short.
|
||
_end_of_message_
|
||
assert_raise(WEBrick::HTTPStatus::NotImplemented){
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(StringIO.new(msg.gsub(/^ {6}/, "")))
|
||
req.body
|
||
}
|
test/webrick/test_filehandler.rb (working copy) | ||
---|---|---|
require "stringio"
|
||
class WEBrick::TestFileHandler < Test::Unit::TestCase
|
||
HTTP_CONFIG = WEBrick::Config::HTTP.merge(:ServerName => 'localhost')
|
||
def default_file_handler(filename)
|
||
klass = WEBrick::HTTPServlet::DefaultFileHandler
|
||
klass.new(WEBrick::Config::HTTP, filename)
|
||
klass.new(HTTP_CONFIG, filename)
|
||
end
|
||
def windows?
|
||
... | ... | |
end
|
||
def make_range_response(file, range_spec)
|
||
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
req = WEBrick::HTTPRequest.new(HTTP_CONFIG)
|
||
req.parse(make_range_request(range_spec))
|
||
res = WEBrick::HTTPResponse.new(WEBrick::Config::HTTP)
|
||
res = WEBrick::HTTPResponse.new(HTTP_CONFIG)
|
||
size = File.size(file)
|
||
handler = default_file_handler(file)
|
||
handler.make_partial_content(req, res, file, size)
|