diff options
author | Sam Stephenson <sam@37signals.com> | 2005-11-08 04:26:34 +0000 |
---|---|---|
committer | Sam Stephenson <sam@37signals.com> | 2005-11-08 04:26:34 +0000 |
commit | b661c9603a3d053f940e50fc1b63ff568f9b98f8 (patch) | |
tree | 4bd99f03f1642c5be34b8c553bb2f56df68bac22 /railties/test/rails_info_controller_test.rb | |
parent | c9ae41fe5154224a047efb4c8fccac4549755a0c (diff) | |
download | rails-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.rb | 54 |
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 |