From 1a2f1c48bdeda5df88e8031fe51943527ebc381e Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Tue, 26 Jul 2016 22:02:38 -0300 Subject: [PATCH] There are some cases where @@app is not defined --- .../action_dispatch/testing/integration.rb | 6 +++- .../test/controller/integration_test.rb | 19 ------------- .../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 Behavior 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 @@ def test_integration_methods_called 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 @@ class MailerIntegrationTest < ActionDispatch::IntegrationTest 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 -- GitLab