aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/abstract/abstract_controller_test.rb67
1 files changed, 33 insertions, 34 deletions
diff --git a/actionpack/test/abstract/abstract_controller_test.rb b/actionpack/test/abstract/abstract_controller_test.rb
index 5a0a2aef10..3b5013a47a 100644
--- a/actionpack/test/abstract/abstract_controller_test.rb
+++ b/actionpack/test/abstract/abstract_controller_test.rb
@@ -2,21 +2,21 @@ require 'abstract_unit'
module AbstractController
module Testing
-
+
# Test basic dispatching.
# ====
# * Call process
# * Test that the response_body is set correctly
class SimpleController < AbstractController::Base
end
-
+
class Me < SimpleController
def index
self.response_body = "Hello world"
"Something else"
- end
+ end
end
-
+
class TestBasic < ActiveSupport::TestCase
test "dispatching works" do
controller = Me.new
@@ -24,7 +24,7 @@ module AbstractController
assert_equal "Hello world", controller.response_body
end
end
-
+
# Test Render mixin
# ====
class RenderingController < AbstractController::Base
@@ -36,19 +36,18 @@ module AbstractController
if options.is_a?(String)
options = {:_template_name => options}
end
-
+
options[:_prefix] = _prefix
super
end
append_view_path File.expand_path(File.join(File.dirname(__FILE__), "views"))
end
-
+
class Me2 < RenderingController
def index
render "index.erb"
end
-
def index_to_string
self.response_body = render_to_string "index.erb"
@@ -58,7 +57,7 @@ module AbstractController
@my_ivar = "Hello"
render "action_with_ivars.erb"
end
-
+
def naked_render
render
end
@@ -81,7 +80,7 @@ module AbstractController
@controller.process(:index)
assert_equal "Hello from index.erb", @controller.response_body
end
-
+
test "render_to_string works with a String as an argument" do
@controller.process(:index_to_string)
assert_equal "Hello from index.erb", @controller.response_body
@@ -91,7 +90,7 @@ module AbstractController
@controller.process(:action_with_ivars)
assert_equal "Hello from index_with_ivars.erb", @controller.response_body
end
-
+
test "rendering with no template name" do
@controller.process(:naked_render)
assert_equal "Hello from naked_render.erb", @controller.response_body
@@ -107,7 +106,7 @@ module AbstractController
assert_equal "Hello from naked_render.erb", @controller.response_body
end
end
-
+
# Test rendering with prefixes
# ====
# * self._prefix is used when defined
@@ -116,23 +115,23 @@ module AbstractController
def self.prefix
name.underscore
end
-
+
def _prefix
self.class.prefix
end
end
-
+
class Me3 < PrefixedViews
def index
render
end
-
+
def formatted
self.formats = [:html]
render
end
end
-
+
class TestPrefixedViews < ActiveSupport::TestCase
def setup
@controller = Me3.new
@@ -148,13 +147,13 @@ module AbstractController
assert_equal "Hello from me3/formatted.html.erb", @controller.response_body
end
end
-
+
# Test rendering with layouts
# ====
# self._layout is used when defined
class WithLayouts < PrefixedViews
include Layouts
-
+
private
def self.layout(formats)
begin
@@ -170,21 +169,21 @@ module AbstractController
def render_to_body(options = {})
options[:_layout] = options[:layout] || _default_layout({})
super
- end
+ end
end
-
+
class Me4 < WithLayouts
def index
render
end
end
-
+
class Me5 < WithLayouts
def index
render
end
end
-
+
class TestLayouts < ActiveSupport::TestCase
test "layouts are included" do
controller = Me4.new
@@ -192,7 +191,7 @@ module AbstractController
assert_equal "Me4 Enter : Hello from me4/index.erb : Exit", controller.response_body
end
end
-
+
# respond_to_action?(action_name)
# ====
# * A method can be used as an action only if this method
@@ -201,7 +200,7 @@ module AbstractController
class DefaultRespondToActionController < AbstractController::Base
def index() self.response_body = "success" end
end
-
+
class ActionMissingRespondToActionController < AbstractController::Base
# No actions
private
@@ -209,19 +208,19 @@ module AbstractController
self.response_body = "success"
end
end
-
+
class RespondToActionController < AbstractController::Base;
def index() self.response_body = "success" end
-
+
def fail() self.response_body = "fail" end
-
+
private
def method_for_action(action_name)
action_name.to_s != "fail" && action_name
end
end
-
+
class TestRespondToAction < ActiveSupport::TestCase
def assert_dispatch(klass, body = "success", action = :index)
@@ -229,27 +228,27 @@ module AbstractController
controller.process(action)
assert_equal body, controller.response_body
end
-
+
test "an arbitrary method is available as an action by default" do
assert_dispatch DefaultRespondToActionController, "success", :index
end
-
+
test "raises ActionNotFound when method does not exist and action_missing is not defined" do
assert_raise(ActionNotFound) { DefaultRespondToActionController.new.process(:fail) }
end
-
+
test "dispatches to action_missing when method does not exist and action_missing is defined" do
assert_dispatch ActionMissingRespondToActionController, "success", :ohai
end
-
+
test "a method is available as an action if respond_to_action? returns true" do
assert_dispatch RespondToActionController, "success", :index
end
-
+
test "raises ActionNotFound if method is defined but respond_to_action? returns false" do
assert_raise(ActionNotFound) { RespondToActionController.new.process(:fail) }
end
end
-
+
end
end