Killed the out of place alias and made sure you can use the different HTTP methods within the same testaction

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@80 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2004-12-08 10:43:24 +00:00
parent 4e1eaa289b
commit c8d68dfed3
2 changed files with 17 additions and 6 deletions

View File

@ -190,7 +190,7 @@ end
class Test::Unit::TestCase #:nodoc:
private
# execute the request and set/volley the response
def get(action, parameters = nil, session = nil)
def process(action, parameters = nil, session = nil)
@request.env['REQUEST_METHOD'] ||= "GET"
@request.action = action.to_s
@request.parameters.update(parameters) unless parameters.nil?
@ -199,14 +199,13 @@ class Test::Unit::TestCase #:nodoc:
end
# execute the request simulating a specific http method and set/volley the response
%w( post put delete head ).each do |method|
%w( get post put delete head ).each do |method|
class_eval <<-EOV
def #{method}(action, parameters = nil, session = nil)
@request.env['REQUEST_METHOD'] ||= "#{method.upcase}"
get(action, parameters, session)
@request.env['REQUEST_METHOD'] = "#{method.upcase}"
process(action, parameters, session)
end
EOV
EOV
end
alias :process :get
end

View File

@ -111,6 +111,18 @@ class ActionPackAssertionsControllerTest < Test::Unit::TestCase
post :raise_on_get
assert_equal @response.body, 'request method: POST'
end
# test the get/post switch within one test action
def test_get_post_switch
post :raise_on_get
assert_equal @response.body, 'request method: POST'
get :raise_on_post
assert_equal @response.body, 'request method: GET'
post :raise_on_get
assert_equal @response.body, 'request method: POST'
get :raise_on_post
assert_equal @response.body, 'request method: GET'
end
# test the assertion of goodies in the template
def test_assert_template_has