aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/rails_info_controller_test.rb
diff options
context:
space:
mode:
authorManfred Stienstra <manfred@fngtps.com>2009-04-07 09:16:48 -0500
committerJoshua Peek <josh@joshpeek.com>2009-04-07 09:16:48 -0500
commitf209d3898fbd866e1405861319b85c97674a0508 (patch)
treef3ed665dadbd37693f46ce1a5d0f98b8400280b6 /railties/test/rails_info_controller_test.rb
parent660fc93942697b74a8093d4d5338d1ced25cbe7f (diff)
downloadrails-f209d3898fbd866e1405861319b85c97674a0508.tar.gz
rails-f209d3898fbd866e1405861319b85c97674a0508.tar.bz2
rails-f209d3898fbd866e1405861319b85c97674a0508.zip
Improve tests and code for Rails::InfoController and Rails::Info [#2411 state:resolved]
- Refactor Rails::InfoController tests. - Return forbidden status from the InfoController for remote requests instead of a 500. - Add tests for displaying middleware in Rails::Info. Signed-off-by: Joshua Peek <josh@joshpeek.com>
Diffstat (limited to 'railties/test/rails_info_controller_test.rb')
-rw-r--r--railties/test/rails_info_controller_test.rb54
1 files changed, 24 insertions, 30 deletions
diff --git a/railties/test/rails_info_controller_test.rb b/railties/test/rails_info_controller_test.rb
index e274e1aa6e..607ece99a9 100644
--- a/railties/test/rails_info_controller_test.rb
+++ b/railties/test/rails_info_controller_test.rb
@@ -2,51 +2,45 @@ require 'abstract_unit'
require 'action_controller'
require 'action_controller/test_process'
-module Rails; end
require 'rails/info'
require 'rails/info_controller'
-class Rails::InfoController < ActionController::Base
- @local_request = false
- class << self
- cattr_accessor :local_request
- end
-
- # Re-raise errors caught by the controller.
- def rescue_action(e) raise e end;
-
-protected
- def local_request?
- self.class.local_request
- end
-end
-
ActionController::Routing::Routes.draw do |map|
map.connect ':controller/:action/:id'
end
-class Rails::InfoControllerTest < ActionController::TestCase
+class InfoControllerTest < ActionController::TestCase
+ tests Rails::InfoController
+
def setup
- @controller = Rails::InfoController.new
- @request = ActionController::TestRequest.new
- @response = ActionController::TestResponse.new
+ @controller.stubs(:consider_all_requests_local => false, :local_request? => true)
+ end
+
+ test "info controller does not allow remote requests" do
+ @controller.stubs(:consider_all_requests_local => false, :local_request? => false)
+ get :properties
+ assert_response :forbidden
+ end
- ActionController::Base.consider_all_requests_local = true
+ test "info controller renders an error message when request was forbidden" do
+ @controller.stubs(:consider_all_requests_local => false, :local_request? => false)
+ get :properties
+ assert_select 'p'
+ end
+
+ test "info controller allows requests when all requests are considered local" do
+ @controller.stubs(:consider_all_requests_local => true, :local_request? => false)
+ get :properties
+ assert_response :success
end
- def test_rails_info_properties_table_rendered_for_local_request
- Rails::InfoController.local_request = true
+ test "info controller allows local requests" do
get :properties
- assert_tag :tag => 'table'
assert_response :success
end
-
- def test_rails_info_properties_error_rendered_for_non_local_request
- Rails::InfoController.local_request = false
- ActionController::Base.consider_all_requests_local = false
+ test "info controller renders a table with properties" do
get :properties
- assert_tag :tag => 'p'
- assert_response 500
+ assert_select 'table'
end
end