diff options
-rw-r--r-- | actionpack/lib/action_dispatch/testing/integration.rb | 6 | ||||
-rw-r--r-- | actionpack/test/controller/integration_test.rb | 19 | ||||
-rw-r--r-- | railties/test/application/integration_test_case_test.rb | 28 |
3 files changed, 33 insertions, 20 deletions
diff --git a/actionpack/lib/action_dispatch/testing/integration.rb b/actionpack/lib/action_dispatch/testing/integration.rb index c6577d3d15..9a76b68ae1 100644 --- a/actionpack/lib/action_dispatch/testing/integration.rb +++ b/actionpack/lib/action_dispatch/testing/integration.rb @@ -717,7 +717,11 @@ module ActionDispatch module ClassMethods def app - @@app || ActionDispatch.test_app + if defined?(@@app) && @@app + @@app + else + ActionDispatch.test_app + end end def app=(app) diff --git a/actionpack/test/controller/integration_test.rb b/actionpack/test/controller/integration_test.rb index 5a711ae150..3b89531e90 100644 --- a/actionpack/test/controller/integration_test.rb +++ b/actionpack/test/controller/integration_test.rb @@ -397,25 +397,6 @@ class IntegrationTestUsesCorrectClass < ActionDispatch::IntegrationTest end end -class IntegrationTestDefaultApp < ActionDispatch::IntegrationTest - def setup - @app = self.class.app - self.class.app = nil - - @test_app = ActionDispatch.test_app - ActionDispatch.test_app = 'fake_app' - end - - def teardown - self.class.app = @app - ActionDispatch.test_app = @test_app - end - - def test_class_app_returns_ad_test_app_by_default - assert_equal 'fake_app', self.class.app - end -end - class IntegrationProcessTest < ActionDispatch::IntegrationTest class IntegrationController < ActionController::Base def get diff --git a/railties/test/application/integration_test_case_test.rb b/railties/test/application/integration_test_case_test.rb index 52df5a2e5a..68e2de80c4 100644 --- a/railties/test/application/integration_test_case_test.rb +++ b/railties/test/application/integration_test_case_test.rb @@ -42,4 +42,32 @@ module ApplicationTests assert_match(/0 failures, 0 errors/, output) end end + + class IntegrationTestDefaultApp < ActiveSupport::TestCase + include ActiveSupport::Testing::Isolation + + setup do + build_app + end + + teardown do + teardown_app + end + + test "app method of integration tests returns test_app by default" do + app_file 'test/integration/default_app_test.rb', <<-RUBY + require 'test_helper' + + class DefaultAppIntegrationTest < ActionDispatch::IntegrationTest + def test_app_returns_action_dispatch_test_app_by_default + assert_equal ActionDispatch.test_app, app + end + end + RUBY + + output = Dir.chdir(app_path) { `bin/rails test 2>&1` } + assert_equal 0, $?.to_i, output + assert_match(/0 failures, 0 errors/, output) + end + end end |