提交 236fe10f 编写于 作者: J Jeremy Kemper

Integration tests: introduce methods for other HTTP methods. Closes #6353.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6203 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 f425bba9
*SVN* *SVN*
* Integration tests: introduce methods for other HTTP methods. #6353 [caboose]
* Routing: better support for escaped values in route segments. #7544 [Chris * Routing: better support for escaped values in route segments. #7544 [Chris
Roos] Roos]
......
...@@ -490,7 +490,7 @@ def reset! ...@@ -490,7 +490,7 @@ def reset!
@integration_session = open_session @integration_session = open_session
end end
%w(get post cookies assigns xml_http_request).each do |method| %w(get post put head delete cookies assigns xml_http_request).each do |method|
define_method(method) do |*args| define_method(method) do |*args|
reset! unless @integration_session reset! unless @integration_session
# reset the html_document variable, but only for new get/post calls # reset the html_document variable, but only for new get/post calls
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
module ActionController module ActionController
module Integration module Integration
class Session class Session
def process def process(*args)
end end
def generic_url_rewriter def generic_url_rewriter
...@@ -143,6 +143,43 @@ def test_xml_http_request ...@@ -143,6 +143,43 @@ def test_xml_http_request
end end
end end
class IntegrationTestTest < Test::Unit::TestCase
def setup
@test = ::ActionController::IntegrationTest.new(:default_test)
@test.class.stubs(:fixture_table_names).returns([])
@session = @test.open_session
end
def test_opens_new_session
@test.class.expects(:fixture_table_names).times(2).returns(['foo'])
session1 = @test.open_session { |sess| }
session2 = @test.open_session # implicit session
assert_equal ::ActionController::Integration::Session, session1.class
assert_equal ::ActionController::Integration::Session, session2.class
assert_not_equal session1, session2
end
end
# Tests that integration tests don't call Controller test methods for processing.
# Integration tests have their own setup and teardown.
class IntegrationTestUsesCorrectClass < ActionController::IntegrationTest
def self.fixture_table_names
[]
end
def test_integration_methods_called
%w( get post head put delete ).each do |verb|
assert_nothing_raised("'#{verb}' should use integration test methods") { send(verb, '/') }
end
end
end
# TODO # TODO
# class MockCGITest < Test::Unit::TestCase # class MockCGITest < Test::Unit::TestCase
# end # end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册