Make RackRequest#request_method respect _method

This commit is contained in:
Pratik Naik
2008-07-16 05:01:29 +01:00
parent fea5b6fd41
commit 1d002f6bcb
3 changed files with 66 additions and 4 deletions

View File

@@ -53,6 +53,14 @@ class BaseCgiTest < Test::Unit::TestCase
end
def default_test; end
private
def set_content_data(data)
@request.env['CONTENT_LENGTH'] = data.length
@request.env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=utf-8'
@request.env['RAW_POST_DATA'] = data
end
end
class CgiRequestTest < BaseCgiTest
@@ -180,6 +188,31 @@ class CgiRequestContentTypeTest < BaseCgiTest
end
end
class CgiRequestMethodTest < BaseCgiTest
def test_get
assert_equal :get, @request.request_method
end
def test_post
@request.env['REQUEST_METHOD'] = 'POST'
assert_equal :post, @request.request_method
end
def test_put
@request.env['REQUEST_METHOD'] = 'POST'
set_content_data '_method=put'
assert_equal :put, @request.request_method
end
def test_delete
@request.env['REQUEST_METHOD'] = 'POST'
set_content_data '_method=delete'
assert_equal :delete, @request.request_method
end
end
class CgiRequestNeedsRewoundTest < BaseCgiTest
def test_body_should_be_rewound
data = 'foo'