aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/rails_info_controller_test.rb
diff options
context:
space:
mode:
authorSam Stephenson <sam@37signals.com>2005-11-08 04:26:34 +0000
committerSam Stephenson <sam@37signals.com>2005-11-08 04:26:34 +0000
commitb661c9603a3d053f940e50fc1b63ff568f9b98f8 (patch)
tree4bd99f03f1642c5be34b8c553bb2f56df68bac22 /railties/test/rails_info_controller_test.rb
parentc9ae41fe5154224a047efb4c8fccac4549755a0c (diff)
downloadrails-b661c9603a3d053f940e50fc1b63ff568f9b98f8.tar.gz
rails-b661c9603a3d053f940e50fc1b63ff568f9b98f8.tar.bz2
rails-b661c9603a3d053f940e50fc1b63ff568f9b98f8.zip
Added an omnipresent RailsInfoController with a properties action that delivers an HTML rendering of Rails::Info (but only when local_request? is true). Added a new default index.html which fetches this with Ajax.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2933 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/test/rails_info_controller_test.rb')
-rw-r--r--railties/test/rails_info_controller_test.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/railties/test/rails_info_controller_test.rb b/railties/test/rails_info_controller_test.rb
new file mode 100644
index 0000000000..1488387f3c
--- /dev/null
+++ b/railties/test/rails_info_controller_test.rb
@@ -0,0 +1,54 @@
+$:.unshift File.dirname(__FILE__) + "/../lib"
+$:.unshift File.dirname(__FILE__) + "/../builtin/controllers"
+$:.unshift File.dirname(__FILE__) + "/../../actionpack/lib"
+$:.unshift File.dirname(__FILE__) + "/../../activesupport/lib"
+
+require 'test/unit'
+require 'action_controller'
+require 'action_controller/test_process'
+require 'rails_info'
+
+module Controllers; def self.const_available?(constant); false end end
+
+class ApplicationController < ActionController::Base
+ @local_request = false
+ class << self
+ cattr_accessor :local_request
+ end
+
+protected
+ def local_request?
+ self.class.local_request
+ end
+end
+
+ActionController::Routing::Routes.draw do |map|
+ map.connect ':controller/:action/:id'
+end
+
+require 'rails_info_controller'
+
+# Re-raise errors caught by the controller.
+class Controllers::RailsInfoController; def rescue_action(e) raise e end; end
+
+class RailsInfoControllerTest < Test::Unit::TestCase
+ def setup
+ @controller = Controllers::RailsInfoController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+ end
+
+ def test_rails_info_properties_table_rendered_for_local_request
+ Controllers::RailsInfoController.local_request = true
+ get :properties
+ assert_tag :tag => 'table'
+ assert_response :success
+ end
+
+ def test_rails_info_properties_error_rendered_for_non_local_request
+ Controllers::RailsInfoController.local_request = false
+ get :properties
+ assert_tag :tag => 'p'
+ assert_response 500
+ end
+end