aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/test/application/console_test.rb52
-rw-r--r--railties/test/console_app_test.rb43
-rw-r--r--railties/test/isolation/abstract_unit.rb4
3 files changed, 56 insertions, 43 deletions
diff --git a/railties/test/application/console_test.rb b/railties/test/application/console_test.rb
new file mode 100644
index 0000000000..e8a4a4e158
--- /dev/null
+++ b/railties/test/application/console_test.rb
@@ -0,0 +1,52 @@
+require 'isolation/abstract_unit'
+
+class ConsoleTest < Test::Unit::TestCase
+ include ActiveSupport::Testing::Isolation
+
+ def setup
+ build_app
+ boot_rails
+
+ # Load steps taken from rails/commands/console.rb
+ require "#{rails_root}/config/environment"
+ require 'rails/console_app'
+ require 'rails/console_with_helpers'
+ end
+
+ def test_app_method_should_return_integration_session
+ console_session = app
+ assert_not_nil console_session
+ assert_instance_of ActionController::Integration::Session, console_session
+ end
+
+ def test_new_session_should_return_integration_session
+ session = new_session
+ assert_not_nil session
+ assert_instance_of ActionController::Integration::Session, session
+ end
+
+ def test_reload_should_fire_preparation_callbacks
+ a = b = c = nil
+
+ # TODO: These should be defined on the initializer
+ ActionDispatch::Callbacks.to_prepare { a = b = c = 1 }
+ ActionDispatch::Callbacks.to_prepare { b = c = 2 }
+ ActionDispatch::Callbacks.to_prepare { c = 3 }
+
+ # Hide Reloading... output
+ silence_stream(STDOUT) do
+ reload!
+ end
+
+ assert_equal 1, a
+ assert_equal 2, b
+ assert_equal 3, c
+ end
+
+ def test_access_to_helpers
+ assert_not_nil helper
+ assert_instance_of ActionView::Base, helper
+ assert_equal 'Once upon a time in a world...',
+ helper.truncate('Once upon a time in a world far far away')
+ end
+end
diff --git a/railties/test/console_app_test.rb b/railties/test/console_app_test.rb
deleted file mode 100644
index 1437e6d885..0000000000
--- a/railties/test/console_app_test.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-require 'abstract_unit'
-
-require 'action_controller' # console_app uses 'action_controller/integration'
-
-require 'rails/dispatcher'
-require 'rails/console_app'
-
-module Rails
- def self.application
- ActionController::Routing::Routes
- end
-end
-
-# console_app sets Test::Unit.run to work around the at_exit hook in test/unit, which kills IRB
-if Test::Unit.respond_to?(:run=)
- Test::Unit.run = false
-
- class ConsoleAppTest < Test::Unit::TestCase
- def test_app_method_should_return_integration_session
- assert_nothing_thrown do
- console_session = app
- assert_not_nil console_session
- assert_instance_of ActionController::Integration::Session,
- console_session
- end
- end
-
- def test_reload_should_fire_preparation_callbacks
- a = b = c = nil
-
- ActionDispatch::Callbacks.to_prepare { a = b = c = 1 }
- ActionDispatch::Callbacks.to_prepare { b = c = 2 }
- ActionDispatch::Callbacks.to_prepare { c = 3 }
- ActionController::Routing::Routes.expects(:reload)
-
- reload!
-
- assert_equal 1, a
- assert_equal 2, b
- assert_equal 3, c
- end
- end
-end
diff --git a/railties/test/isolation/abstract_unit.rb b/railties/test/isolation/abstract_unit.rb
index 869e8429cf..a55ee6c01d 100644
--- a/railties/test/isolation/abstract_unit.rb
+++ b/railties/test/isolation/abstract_unit.rb
@@ -30,6 +30,10 @@ module TestHelpers
def app_path(*args)
tmp_path(*%w[app] + args)
end
+
+ def rails_root
+ app_path
+ end
end
module Rack