aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/rails_info_controller_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/test/rails_info_controller_test.rb')
-rw-r--r--railties/test/rails_info_controller_test.rb57
1 files changed, 57 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..8d61af4972
--- /dev/null
+++ b/railties/test/rails_info_controller_test.rb
@@ -0,0 +1,57 @@
+require 'abstract_unit'
+require 'mocha/setup' # FIXME: stop using mocha
+
+module ActionController
+ class Base
+ include ActionController::Testing
+ end
+end
+
+class InfoControllerTest < ActionController::TestCase
+ tests Rails::InfoController
+
+ def setup
+ Rails.application.routes.draw do
+ get '/rails/info/properties' => "rails/info#properties"
+ get '/rails/info/routes' => "rails/info#routes"
+ end
+ @controller.stubs(:local_request? => true)
+ @routes = Rails.application.routes
+
+ Rails::InfoController.send(:include, @routes.url_helpers)
+ end
+
+ test "info controller does not allow remote requests" do
+ @controller.stubs(local_request?: false)
+ get :properties
+ assert_response :forbidden
+ end
+
+ test "info controller renders an error message when request was forbidden" do
+ @controller.stubs(local_request?: false)
+ get :properties
+ assert_select 'p'
+ end
+
+ test "info controller allows requests when all requests are considered local" do
+ @controller.stubs(local_request?: true)
+ get :properties
+ assert_response :success
+ end
+
+ test "info controller allows local requests" do
+ get :properties
+ assert_response :success
+ end
+
+ test "info controller renders a table with properties" do
+ get :properties
+ assert_select 'table'
+ end
+
+ test "info controller renders with routes" do
+ get :routes
+ assert_response :success
+ end
+
+end