mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Replace the class level Rack::Test DSL with the regular integration tests DSL
This commit is contained in:
@@ -10,78 +10,60 @@ module Dispatching
|
||||
def modify_response_body
|
||||
self.response_body = "success"
|
||||
end
|
||||
|
||||
|
||||
def modify_response_body_twice
|
||||
ret = (self.response_body = "success")
|
||||
self.response_body = "#{ret}!"
|
||||
end
|
||||
|
||||
|
||||
def modify_response_headers
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
class TestSimpleDispatch < SimpleRouteCase
|
||||
|
||||
get "/dispatching/simple/index"
|
||||
|
||||
test "sets the body" do
|
||||
assert_body "success"
|
||||
end
|
||||
|
||||
test "sets the status code" do
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "sets the content type" do
|
||||
assert_content_type "text/html; charset=utf-8"
|
||||
end
|
||||
|
||||
test "sets the content length" do
|
||||
assert_header "Content-Length", "7"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# :api: plugin
|
||||
class TestDirectResponseMod < SimpleRouteCase
|
||||
get "/dispatching/simple/modify_response_body"
|
||||
|
||||
test "sets the body" do
|
||||
assert_body "success"
|
||||
end
|
||||
|
||||
test "setting the body manually sets the content length" do
|
||||
assert_header "Content-Length", "7"
|
||||
end
|
||||
end
|
||||
|
||||
# :api: plugin
|
||||
class TestDirectResponseModTwice < SimpleRouteCase
|
||||
get "/dispatching/simple/modify_response_body_twice"
|
||||
|
||||
test "self.response_body= returns the body being set" do
|
||||
assert_body "success!"
|
||||
end
|
||||
|
||||
test "updating the response body updates the content length" do
|
||||
assert_header "Content-Length", "8"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class EmptyController < ActionController::Base ; end
|
||||
|
||||
module Submodule
|
||||
class ContainedEmptyController < ActionController::Base ; end
|
||||
end
|
||||
|
||||
class ControllerClassTests < Test::Unit::TestCase
|
||||
def test_controller_path
|
||||
class BaseTest < SimpleRouteCase
|
||||
# :api: plugin
|
||||
test "simple dispatching" do
|
||||
get "/dispatching/simple/index"
|
||||
|
||||
assert_body "success"
|
||||
assert_status 200
|
||||
assert_content_type "text/html; charset=utf-8"
|
||||
assert_header "Content-Length", "7"
|
||||
end
|
||||
|
||||
# :api: plugin
|
||||
test "directly modifying response body" do
|
||||
get "/dispatching/simple/modify_response_body"
|
||||
|
||||
assert_body "success"
|
||||
assert_header "Content-Length", "7" # setting the body manually sets the content length
|
||||
end
|
||||
|
||||
# :api: plugin
|
||||
test "directly modifying response body twice" do
|
||||
get "/dispatching/simple/modify_response_body_twice"
|
||||
|
||||
assert_body "success!"
|
||||
assert_header "Content-Length", "8"
|
||||
end
|
||||
|
||||
test "controller path" do
|
||||
assert_equal 'dispatching/empty', EmptyController.controller_path
|
||||
assert_equal EmptyController.controller_path, EmptyController.new.controller_path
|
||||
end
|
||||
|
||||
test "namespaced controller path" do
|
||||
assert_equal 'dispatching/submodule/contained_empty', Submodule::ContainedEmptyController.controller_path
|
||||
assert_equal Submodule::ContainedEmptyController.controller_path, Submodule::ContainedEmptyController.new.controller_path
|
||||
end
|
||||
def test_controller_name
|
||||
|
||||
test "controller name" do
|
||||
assert_equal 'empty', EmptyController.controller_name
|
||||
assert_equal 'contained_empty', Submodule::ContainedEmptyController.controller_name
|
||||
end
|
||||
|
||||
@@ -5,107 +5,107 @@ module ContentType
|
||||
def index
|
||||
render :text => "Hello world!"
|
||||
end
|
||||
|
||||
|
||||
def set_on_response_obj
|
||||
response.content_type = Mime::RSS
|
||||
render :text => "Hello world!"
|
||||
end
|
||||
|
||||
|
||||
def set_on_render
|
||||
render :text => "Hello world!", :content_type => Mime::RSS
|
||||
end
|
||||
end
|
||||
|
||||
class TestDefault < SimpleRouteCase
|
||||
describe "a default response is HTML and UTF8"
|
||||
|
||||
get "/content_type/base"
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
end
|
||||
|
||||
class TestSetOnResponseObj < SimpleRouteCase
|
||||
describe "setting the content type of the response directly on the response object"
|
||||
|
||||
get "/content_type/base/set_on_response_obj"
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "application/rss+xml; charset=utf-8"
|
||||
end
|
||||
|
||||
class TestSetOnRender < SimpleRouteCase
|
||||
describe "setting the content type of the response as an option to render"
|
||||
|
||||
get "/content_type/base/set_on_render"
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "application/rss+xml; charset=utf-8"
|
||||
end
|
||||
|
||||
|
||||
class ImpliedController < ActionController::Base
|
||||
# Template's mime type is used if no content_type is specified
|
||||
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"content_type/implied/i_am_html_erb.html.erb" => "Hello world!",
|
||||
"content_type/implied/i_am_xml_erb.xml.erb" => "<xml>Hello world!</xml>",
|
||||
"content_type/implied/i_am_html_builder.html.builder" => "xml.p 'Hello'",
|
||||
"content_type/implied/i_am_xml_builder.xml.builder" => "xml.awesome 'Hello'"
|
||||
)]
|
||||
|
||||
|
||||
def i_am_html_erb() end
|
||||
def i_am_xml_erb() end
|
||||
def i_am_html_builder() end
|
||||
def i_am_xml_builder() end
|
||||
end
|
||||
|
||||
class TestImpliedController < SimpleRouteCase
|
||||
describe "the template's mime type is used if no content_type is specified"
|
||||
|
||||
test "sets Content-Type as text/html when rendering *.html.erb" do
|
||||
get "/content_type/implied/i_am_html_erb"
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
end
|
||||
|
||||
test "sets Content-Type as application/xml when rendering *.xml.erb" do
|
||||
get "/content_type/implied/i_am_xml_erb"
|
||||
assert_header "Content-Type", "application/xml; charset=utf-8"
|
||||
end
|
||||
|
||||
test "sets Content-Type as text/html when rendering *.html.builder" do
|
||||
get "/content_type/implied/i_am_html_builder"
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
end
|
||||
|
||||
test "sets Content-Type as application/xml when rendering *.xml.builder" do
|
||||
get "/content_type/implied/i_am_xml_builder"
|
||||
assert_header "Content-Type", "application/xml; charset=utf-8"
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
module Charset
|
||||
class BaseController < ActionController::Base
|
||||
class CharsetController < ActionController::Base
|
||||
def set_on_response_obj
|
||||
response.charset = "utf-16"
|
||||
render :text => "Hello world!"
|
||||
end
|
||||
|
||||
|
||||
def set_as_nil_on_response_obj
|
||||
response.charset = nil
|
||||
render :text => "Hello world!"
|
||||
end
|
||||
end
|
||||
|
||||
class TestSetOnResponseObj < SimpleRouteCase
|
||||
describe "setting the charset of the response directly on the response object"
|
||||
|
||||
get "/charset/base/set_on_response_obj"
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "text/html; charset=utf-16"
|
||||
|
||||
class ExplicitContentTypeTest < SimpleRouteCase
|
||||
test "default response is HTML and UTF8" do
|
||||
get "/content_type/base"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
end
|
||||
|
||||
test "setting the content type of the response directly on the response object" do
|
||||
get "/content_type/base/set_on_response_obj"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "application/rss+xml; charset=utf-8"
|
||||
end
|
||||
|
||||
test "setting the content type of the response as an option to render" do
|
||||
get "/content_type/base/set_on_render"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "application/rss+xml; charset=utf-8"
|
||||
end
|
||||
end
|
||||
|
||||
class TestSetAsNilOnResponseObj < SimpleRouteCase
|
||||
describe "setting the charset of the response as nil directly on the response object"
|
||||
|
||||
get "/charset/base/set_as_nil_on_response_obj"
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
|
||||
class ImpliedContentTypeTest < SimpleRouteCase
|
||||
test "sets Content-Type as text/html when rendering *.html.erb" do
|
||||
get "/content_type/implied/i_am_html_erb"
|
||||
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
end
|
||||
|
||||
test "sets Content-Type as application/xml when rendering *.xml.erb" do
|
||||
get "/content_type/implied/i_am_xml_erb"
|
||||
|
||||
assert_header "Content-Type", "application/xml; charset=utf-8"
|
||||
end
|
||||
|
||||
test "sets Content-Type as text/html when rendering *.html.builder" do
|
||||
get "/content_type/implied/i_am_html_builder"
|
||||
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
end
|
||||
|
||||
test "sets Content-Type as application/xml when rendering *.xml.builder" do
|
||||
get "/content_type/implied/i_am_xml_builder"
|
||||
|
||||
assert_header "Content-Type", "application/xml; charset=utf-8"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class ExplicitCharsetTest < SimpleRouteCase
|
||||
test "setting the charset of the response directly on the response object" do
|
||||
get "/content_type/charset/set_on_response_obj"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "text/html; charset=utf-16"
|
||||
end
|
||||
|
||||
test "setting the charset of the response as nil directly on the response object" do
|
||||
get "/content_type/charset/set_as_nil_on_response_obj"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_header "Content-Type", "text/html; charset=utf-8"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,47 +1,46 @@
|
||||
require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper")
|
||||
|
||||
module Etags
|
||||
|
||||
class BasicController < ActionController::Base
|
||||
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"etags/basic/base.html.erb" => "Hello from without_layout.html.erb",
|
||||
"layouts/etags.html.erb" => "teh <%= yield %> tagz"
|
||||
)]
|
||||
|
||||
|
||||
def without_layout
|
||||
render :action => "base"
|
||||
end
|
||||
|
||||
|
||||
def with_layout
|
||||
render :action => "base", :layout => "etag"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class TestBasic < SimpleRouteCase
|
||||
|
||||
class EtagTest < SimpleRouteCase
|
||||
describe "Rendering without any special etag options returns an etag that is an MD5 hash of its text"
|
||||
|
||||
|
||||
test "an action without a layout" do
|
||||
get "/etags/basic/without_layout"
|
||||
|
||||
body = "Hello from without_layout.html.erb"
|
||||
assert_body body
|
||||
assert_header "Etag", etag_for(body)
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
|
||||
test "an action with a layout" do
|
||||
get "/etags/basic/with_layout"
|
||||
|
||||
body = "teh Hello from without_layout.html.erb tagz"
|
||||
assert_body body
|
||||
assert_header "Etag", etag_for(body)
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def etag_for(text)
|
||||
%("#{Digest::MD5.hexdigest(text)}")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
@@ -1,26 +1,24 @@
|
||||
require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper")
|
||||
|
||||
module RenderAction
|
||||
|
||||
# This has no layout and it works
|
||||
class BasicController < ActionController::Base
|
||||
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"render_action/basic/hello_world.html.erb" => "Hello world!"
|
||||
)]
|
||||
|
||||
|
||||
def hello_world
|
||||
render :action => "hello_world"
|
||||
end
|
||||
|
||||
|
||||
def hello_world_as_string
|
||||
render "hello_world"
|
||||
end
|
||||
|
||||
|
||||
def hello_world_as_string_with_options
|
||||
render "hello_world", :status => 404
|
||||
end
|
||||
|
||||
|
||||
def hello_world_as_symbol
|
||||
render :hello_world
|
||||
end
|
||||
@@ -28,107 +26,95 @@ module RenderAction
|
||||
def hello_world_with_symbol
|
||||
render :action => :hello_world
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout
|
||||
render :action => "hello_world", :layout => true
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_false
|
||||
render :action => "hello_world", :layout => false
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_nil
|
||||
render :action => "hello_world", :layout => nil
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_custom_layout
|
||||
render :action => "hello_world", :layout => "greetings"
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
class TestBasic < SimpleRouteCase
|
||||
describe "Rendering an action using :action => <String>"
|
||||
|
||||
get "/render_action/basic/hello_world"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
|
||||
class RenderActionTest < SimpleRouteCase
|
||||
test "rendering an action using :action => <String>" do
|
||||
get "/render_action/basic/hello_world"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering an action using '<action>'" do
|
||||
get "/render_action/basic/hello_world_as_string"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering an action using '<action>' and options" do
|
||||
get "/render_action/basic/hello_world_as_string_with_options"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 404
|
||||
end
|
||||
|
||||
test "rendering an action using :action" do
|
||||
get "/render_action/basic/hello_world_as_symbol"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering an action using :action => :hello_world" do
|
||||
get "/render_action/basic/hello_world_with_symbol"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
|
||||
class TestWithString < SimpleRouteCase
|
||||
describe "Render an action using 'hello_world'"
|
||||
|
||||
get "/render_action/basic/hello_world_as_string"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestWithStringAndOptions < SimpleRouteCase
|
||||
describe "Render an action using 'hello_world'"
|
||||
|
||||
get "/render_action/basic/hello_world_as_string_with_options"
|
||||
assert_body "Hello world!"
|
||||
assert_status 404
|
||||
end
|
||||
|
||||
class TestAsSymbol < SimpleRouteCase
|
||||
describe "Render an action using :hello_world"
|
||||
|
||||
get "/render_action/basic/hello_world_as_symbol"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestWithSymbol < SimpleRouteCase
|
||||
describe "Render an action using :action => :hello_world"
|
||||
|
||||
get "/render_action/basic/hello_world_with_symbol"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutTrue < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => true"
|
||||
|
||||
test "raises an exception when requesting a layout and none exist" do
|
||||
assert_raise(ArgumentError, /no default layout for RenderAction::BasicController in/) do
|
||||
|
||||
class RenderLayoutTest < SimpleRouteCase
|
||||
describe "Both <controller_path>.html.erb and application.html.erb are missing"
|
||||
|
||||
test "rendering with layout => true" do
|
||||
assert_raise(ArgumentError, /no default layout for RenderAction::BasicController in/) do
|
||||
get "/render_action/basic/hello_world_with_layout", {}, "action_dispatch.show_exceptions" => false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class TestLayoutFalse < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => false"
|
||||
|
||||
get "/render_action/basic/hello_world_with_layout_false"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutNil < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => :nil"
|
||||
|
||||
get "/render_action/basic/hello_world_with_layout_nil"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestCustomLayout < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => 'greetings'"
|
||||
|
||||
test "raises an exception when requesting a layout that does not exist" do
|
||||
|
||||
test "rendering with layout => false" do
|
||||
get "/render_action/basic/hello_world_with_layout_false"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => :nil" do
|
||||
get "/render_action/basic/hello_world_with_layout_nil"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => 'greetings'" do
|
||||
assert_raise(ActionView::MissingTemplate) do
|
||||
get "/render_action/basic/hello_world_with_custom_layout", {}, "action_dispatch.show_exceptions" => false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
module RenderActionWithApplicationLayout
|
||||
|
||||
# # ==== Render actions with layouts ====
|
||||
|
||||
class BasicController < ::ApplicationController
|
||||
# Set the view path to an application view structure with layouts
|
||||
self.view_paths = self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
@@ -138,205 +124,197 @@ module RenderActionWithApplicationLayout
|
||||
"layouts/greetings.html.erb" => "Greetings <%= yield %> Bai",
|
||||
"layouts/builder.html.builder" => "xml.html do\n xml << yield\nend"
|
||||
)]
|
||||
|
||||
|
||||
def hello_world
|
||||
render :action => "hello_world"
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout
|
||||
render :action => "hello_world", :layout => true
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_false
|
||||
render :action => "hello_world", :layout => false
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_nil
|
||||
render :action => "hello_world", :layout => nil
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_custom_layout
|
||||
render :action => "hello_world", :layout => "greetings"
|
||||
end
|
||||
|
||||
|
||||
def with_builder_and_layout
|
||||
render :action => "hello", :layout => "builder"
|
||||
end
|
||||
end
|
||||
|
||||
class TestDefaultLayout < SimpleRouteCase
|
||||
describe %(
|
||||
Render hello_world and implicitly use application.html.erb as a layout if
|
||||
no layout is specified and no controller layout is present
|
||||
)
|
||||
|
||||
get "/render_action_with_application_layout/basic/hello_world"
|
||||
assert_body "OHAI Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
|
||||
class LayoutTest < SimpleRouteCase
|
||||
describe "Only application.html.erb is present and <controller_path>.html.erb is missing"
|
||||
|
||||
test "rendering implicit application.html.erb as layout" do
|
||||
get "/render_action_with_application_layout/basic/hello_world"
|
||||
|
||||
assert_body "OHAI Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => true" do
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_layout"
|
||||
|
||||
assert_body "OHAI Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => false" do
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_layout_false"
|
||||
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => :nil" do
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_layout_nil"
|
||||
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => 'greetings'" do
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_custom_layout"
|
||||
|
||||
assert_body "Greetings Hello World! Bai"
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
|
||||
class TestLayoutTrue < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => true"
|
||||
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_layout"
|
||||
assert_body "OHAI Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutFalse < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => false"
|
||||
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_layout_false"
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutNil < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => :nil"
|
||||
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_layout_nil"
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestCustomLayout < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => 'greetings'"
|
||||
|
||||
get "/render_action_with_application_layout/basic/hello_world_with_custom_layout"
|
||||
assert_body "Greetings Hello World! Bai"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
|
||||
class TestLayout < SimpleRouteCase
|
||||
testing BasicController
|
||||
|
||||
|
||||
test "builder works with layouts" do
|
||||
get :with_builder_and_layout
|
||||
assert_response "<html>\n<p>Omg</p>\n</html>\n"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
module RenderActionWithControllerLayout
|
||||
|
||||
class BasicController < ActionController::Base
|
||||
self.view_paths = self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"render_action_with_controller_layout/basic/hello_world.html.erb" => "Hello World!",
|
||||
"layouts/render_action_with_controller_layout/basic.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
|
||||
)]
|
||||
|
||||
|
||||
def hello_world
|
||||
render :action => "hello_world"
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout
|
||||
render :action => "hello_world", :layout => true
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_false
|
||||
render :action => "hello_world", :layout => false
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_nil
|
||||
render :action => "hello_world", :layout => nil
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_custom_layout
|
||||
render :action => "hello_world", :layout => "greetings"
|
||||
end
|
||||
end
|
||||
|
||||
class TestControllerLayout < SimpleRouteCase
|
||||
describe "Render hello_world and implicitly use <controller_path>.html.erb as a layout."
|
||||
|
||||
get "/render_action_with_controller_layout/basic/hello_world"
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
class ControllerLayoutTest < SimpleRouteCase
|
||||
describe "Only <controller_path>.html.erb is present and application.html.erb is missing"
|
||||
|
||||
test "render hello_world and implicitly use <controller_path>.html.erb as a layout." do
|
||||
get "/render_action_with_controller_layout/basic/hello_world"
|
||||
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => true" do
|
||||
get "/render_action_with_controller_layout/basic/hello_world_with_layout"
|
||||
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => false" do
|
||||
get "/render_action_with_controller_layout/basic/hello_world_with_layout_false"
|
||||
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => :nil" do
|
||||
get "/render_action_with_controller_layout/basic/hello_world_with_layout_nil"
|
||||
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
|
||||
class TestLayoutTrue < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => true"
|
||||
|
||||
get "/render_action_with_controller_layout/basic/hello_world_with_layout"
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutFalse < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => false"
|
||||
|
||||
get "/render_action_with_controller_layout/basic/hello_world_with_layout_false"
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutNil < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => :nil"
|
||||
|
||||
get "/render_action_with_controller_layout/basic/hello_world_with_layout_nil"
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
module RenderActionWithBothLayouts
|
||||
|
||||
class BasicController < ActionController::Base
|
||||
self.view_paths = [ActionView::Template::FixturePath.new({
|
||||
"render_action_with_both_layouts/basic/hello_world.html.erb" => "Hello World!",
|
||||
"layouts/application.html.erb" => "OHAI <%= yield %> KTHXBAI",
|
||||
"layouts/render_action_with_both_layouts/basic.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
|
||||
})]
|
||||
|
||||
|
||||
def hello_world
|
||||
render :action => "hello_world"
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout
|
||||
render :action => "hello_world", :layout => true
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_false
|
||||
render :action => "hello_world", :layout => false
|
||||
end
|
||||
|
||||
|
||||
def hello_world_with_layout_nil
|
||||
render :action => "hello_world", :layout => nil
|
||||
end
|
||||
end
|
||||
|
||||
class TestControllerLayoutFirst < SimpleRouteCase
|
||||
describe "Render hello_world and implicitly use <controller_path>.html.erb over application.html.erb as a layout"
|
||||
|
||||
get "/render_action_with_both_layouts/basic/hello_world"
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
class ControllerLayoutTest < SimpleRouteCase
|
||||
describe "Both <controller_path>.html.erb and application.html.erb are present"
|
||||
|
||||
test "rendering implicitly use <controller_path>.html.erb over application.html.erb as a layout" do
|
||||
get "/render_action_with_both_layouts/basic/hello_world"
|
||||
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => true" do
|
||||
get "/render_action_with_both_layouts/basic/hello_world_with_layout"
|
||||
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => false" do
|
||||
get "/render_action_with_both_layouts/basic/hello_world_with_layout_false"
|
||||
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => :nil" do
|
||||
get "/render_action_with_both_layouts/basic/hello_world_with_layout_nil"
|
||||
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
|
||||
class TestLayoutTrue < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => true"
|
||||
|
||||
get "/render_action_with_both_layouts/basic/hello_world_with_layout"
|
||||
assert_body "With Controller Layout! Hello World! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutFalse < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => false"
|
||||
|
||||
get "/render_action_with_both_layouts/basic/hello_world_with_layout_false"
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestLayoutNil < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => :nil"
|
||||
|
||||
get "/render_action_with_both_layouts/basic/hello_world_with_layout_nil"
|
||||
assert_body "Hello World!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
end
|
||||
@@ -10,19 +10,19 @@ module RenderImplicitAction
|
||||
def hello_world() end
|
||||
end
|
||||
|
||||
class TestImplicitRender < SimpleRouteCase
|
||||
describe "render a simple action with new explicit call to render"
|
||||
|
||||
get "/render_implicit_action/simple/hello_world"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestImplicitWithSpecialCharactersRender < SimpleRouteCase
|
||||
describe "render an action with a missing method and has special characters"
|
||||
|
||||
get "/render_implicit_action/simple/hyphen-ated"
|
||||
assert_body "Hello hyphen-ated!"
|
||||
assert_status 200
|
||||
class RenderImplicitActionTest < SimpleRouteCase
|
||||
test "render a simple action with new explicit call to render" do
|
||||
get "/render_implicit_action/simple/hello_world"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "render an action with a missing method and has special characters" do
|
||||
get "/render_implicit_action/simple/hyphen-ated"
|
||||
|
||||
assert_body "Hello hyphen-ated!"
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2,69 +2,65 @@ require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper")
|
||||
|
||||
module ControllerLayouts
|
||||
class ImplicitController < ::ApplicationController
|
||||
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"layouts/application.html.erb" => "OMG <%= yield %> KTHXBAI",
|
||||
"layouts/override.html.erb" => "Override! <%= yield %>",
|
||||
"basic.html.erb" => "Hello world!",
|
||||
"controller_layouts/implicit/layout_false.html.erb" => "hai(layout_false.html.erb)"
|
||||
)]
|
||||
|
||||
|
||||
def index
|
||||
render :template => "basic"
|
||||
end
|
||||
|
||||
|
||||
def override
|
||||
render :template => "basic", :layout => "override"
|
||||
end
|
||||
|
||||
|
||||
def layout_false
|
||||
render :layout => false
|
||||
end
|
||||
|
||||
|
||||
def builder_override
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
class TestImplicitLayout < SimpleRouteCase
|
||||
describe "rendering a normal template, but using the implicit layout"
|
||||
|
||||
get "/controller_layouts/implicit/index"
|
||||
assert_body "OMG Hello world! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
|
||||
class ImplicitNameController < ::ApplicationController
|
||||
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"layouts/controller_layouts/implicit_name.html.erb" => "OMGIMPLICIT <%= yield %> KTHXBAI",
|
||||
"basic.html.erb" => "Hello world!"
|
||||
)]
|
||||
|
||||
|
||||
def index
|
||||
render :template => "basic"
|
||||
end
|
||||
end
|
||||
|
||||
class TestImplicitNamedLayout < SimpleRouteCase
|
||||
describe "rendering a normal template, but using an implicit NAMED layout"
|
||||
|
||||
get "/controller_layouts/implicit_name/index"
|
||||
assert_body "OMGIMPLICIT Hello world! KTHXBAI"
|
||||
assert_status 200
|
||||
|
||||
class RenderLayoutTest < SimpleRouteCase
|
||||
test "rendering a normal template, but using the implicit layout" do
|
||||
get "/controller_layouts/implicit/index"
|
||||
|
||||
assert_body "OMG Hello world! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering a normal template, but using an implicit NAMED layout" do
|
||||
get "/controller_layouts/implicit_name/index"
|
||||
|
||||
assert_body "OMGIMPLICIT Hello world! KTHXBAI"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "overriding an implicit layout with render :layout option" do
|
||||
get "/controller_layouts/implicit/override"
|
||||
assert_body "Override! Hello world!"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class TestOverridingImplicitLayout < SimpleRouteCase
|
||||
describe "overriding an implicit layout with render :layout option"
|
||||
|
||||
get "/controller_layouts/implicit/override"
|
||||
assert_body "Override! Hello world!"
|
||||
end
|
||||
|
||||
class TestLayoutOptions < SimpleRouteCase
|
||||
|
||||
class LayoutOptionsTest < SimpleRouteCase
|
||||
testing ControllerLayouts::ImplicitController
|
||||
|
||||
|
||||
test "rendering with :layout => false leaves out the implicit layout" do
|
||||
get :layout_false
|
||||
assert_response "hai(layout_false.html.erb)"
|
||||
|
||||
@@ -79,7 +79,6 @@ module RenderTemplate
|
||||
end
|
||||
|
||||
class WithLayoutController < ::ApplicationController
|
||||
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"test/basic.html.erb" => "Hello from basic.html.erb",
|
||||
"shared.html.erb" => "Elastica",
|
||||
@@ -108,46 +107,45 @@ module RenderTemplate
|
||||
end
|
||||
end
|
||||
|
||||
class TestTemplateRenderWithLayout < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout"
|
||||
|
||||
get "/render_template/with_layout"
|
||||
assert_body "Hello from basic.html.erb, I'm here!"
|
||||
assert_status 200
|
||||
class TestWithLayout < SimpleRouteCase
|
||||
describe "Rendering with :template using implicit or explicit layout"
|
||||
|
||||
test "rendering with implicit layout" do
|
||||
get "/render_template/with_layout"
|
||||
|
||||
assert_body "Hello from basic.html.erb, I'm here!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => :true" do
|
||||
get "/render_template/with_layout/with_layout"
|
||||
|
||||
assert_body "Hello from basic.html.erb, I'm here!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => :false" do
|
||||
get "/render_template/with_layout/with_layout_false"
|
||||
|
||||
assert_body "Hello from basic.html.erb"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering with layout => :nil" do
|
||||
get "/render_template/with_layout/with_layout_nil"
|
||||
|
||||
assert_body "Hello from basic.html.erb"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering layout => 'greetings'" do
|
||||
get "/render_template/with_layout/with_custom_layout"
|
||||
|
||||
assert_body "Hello from basic.html.erb, I wish thee well."
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
|
||||
class TestTemplateRenderWithLayoutTrue < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => :true"
|
||||
|
||||
get "/render_template/with_layout/with_layout"
|
||||
assert_body "Hello from basic.html.erb, I'm here!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTemplateRenderWithLayoutFalse < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => :false"
|
||||
|
||||
get "/render_template/with_layout/with_layout_false"
|
||||
assert_body "Hello from basic.html.erb"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTemplateRenderWithLayoutNil < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => :nil"
|
||||
|
||||
get "/render_template/with_layout/with_layout_nil"
|
||||
assert_body "Hello from basic.html.erb"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTemplateRenderWithCustomLayout < SimpleRouteCase
|
||||
describe "rendering a normal template with full path with layout => 'greetings'"
|
||||
|
||||
get "/render_template/with_layout/with_custom_layout"
|
||||
assert_body "Hello from basic.html.erb, I wish thee well."
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
|
||||
module Compatibility
|
||||
class WithoutLayoutController < ActionController::Base
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
@@ -161,11 +159,12 @@ module RenderTemplate
|
||||
end
|
||||
|
||||
class TestTemplateRenderWithForwardSlash < SimpleRouteCase
|
||||
describe "rendering a normal template with full path starting with a leading slash"
|
||||
test "rendering a normal template with full path starting with a leading slash" do
|
||||
get "/render_template/compatibility/without_layout/with_forward_slash"
|
||||
|
||||
get "/render_template/compatibility/without_layout/with_forward_slash"
|
||||
assert_body "Hello from basic.html.erb"
|
||||
assert_status 200
|
||||
assert_body "Hello from basic.html.erb"
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -8,60 +8,57 @@ module Render
|
||||
"render/blank_render/access_action_name.html.erb" => "Action Name: <%= action_name %>",
|
||||
"render/blank_render/access_controller_name.html.erb" => "Controller Name: <%= controller_name %>"
|
||||
)]
|
||||
|
||||
|
||||
def index
|
||||
render
|
||||
end
|
||||
|
||||
|
||||
def access_request
|
||||
render :action => "access_request"
|
||||
end
|
||||
|
||||
|
||||
def render_action_name
|
||||
render :action => "access_action_name"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
||||
private
|
||||
|
||||
def secretz
|
||||
render :text => "FAIL WHALE!"
|
||||
end
|
||||
end
|
||||
|
||||
class TestBlankRender < SimpleRouteCase
|
||||
describe "Render with blank"
|
||||
|
||||
get "/render/blank_render"
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class DoubleRenderController < ActionController::Base
|
||||
def index
|
||||
render :text => "hello"
|
||||
render :text => "world"
|
||||
end
|
||||
end
|
||||
|
||||
class TestBasic < SimpleRouteCase
|
||||
describe "Rendering more than once"
|
||||
|
||||
test "raises an exception" do
|
||||
|
||||
class RenderTest < SimpleRouteCase
|
||||
test "render with blank" do
|
||||
get "/render/blank_render"
|
||||
|
||||
assert_body "Hello world!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering more than once raises an exception" do
|
||||
assert_raises(AbstractController::DoubleRenderError) do
|
||||
get "/render/double_render", {}, "action_dispatch.show_exceptions" => false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class TestOnlyRenderPublicActions < SimpleRouteCase
|
||||
describe "Only public methods on actual controllers are callable actions"
|
||||
|
||||
|
||||
test "raises an exception when a method of Object is called" do
|
||||
assert_raises(AbstractController::ActionNotFound) do
|
||||
get "/render/blank_render/clone", {}, "action_dispatch.show_exceptions" => false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
test "raises an exception when a private method is called" do
|
||||
assert_raises(AbstractController::ActionNotFound) do
|
||||
get "/render/blank_render/secretz", {}, "action_dispatch.show_exceptions" => false
|
||||
@@ -74,12 +71,12 @@ module Render
|
||||
get "/render/blank_render/access_request"
|
||||
assert_body "The request: GET"
|
||||
end
|
||||
|
||||
|
||||
test "The action_name is accessible in the view" do
|
||||
get "/render/blank_render/render_action_name"
|
||||
assert_body "Action Name: render_action_name"
|
||||
end
|
||||
|
||||
|
||||
test "The controller_name is accessible in the view" do
|
||||
get "/render/blank_render/access_controller_name"
|
||||
assert_body "Controller Name: blank_render"
|
||||
|
||||
@@ -11,15 +11,7 @@ module RenderText
|
||||
render :text => "hello david"
|
||||
end
|
||||
end
|
||||
|
||||
class TestSimpleTextRenderWithNoLayout < SimpleRouteCase
|
||||
describe "Rendering text from a action with default options renders the text with the layout"
|
||||
|
||||
get "/render_text/simple"
|
||||
assert_body "hello david"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
|
||||
class WithLayoutController < ::ApplicationController
|
||||
self.view_paths = [ActionView::Template::FixturePath.new(
|
||||
"layouts/application.html.erb" => "<%= yield %>, I'm here!",
|
||||
@@ -73,76 +65,77 @@ module RenderText
|
||||
end
|
||||
end
|
||||
|
||||
class TestSimpleTextRenderWithLayout < SimpleRouteCase
|
||||
describe "Rendering text from a action with default options renders the text without the layout"
|
||||
|
||||
get "/render_text/with_layout"
|
||||
assert_body "hello david"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTextRenderWithStatus < SimpleRouteCase
|
||||
describe "Rendering text, while also providing a custom status code"
|
||||
|
||||
get "/render_text/with_layout/custom_code"
|
||||
assert_body "hello world"
|
||||
assert_status 404
|
||||
end
|
||||
|
||||
class TestTextRenderWithNil < SimpleRouteCase
|
||||
describe "Rendering text with nil returns a single space character"
|
||||
|
||||
get "/render_text/with_layout/with_nil"
|
||||
assert_body " "
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTextRenderWithNilAndStatus < SimpleRouteCase
|
||||
describe "Rendering text with nil and custom status code returns a single space character with the status"
|
||||
|
||||
get "/render_text/with_layout/with_nil_and_status"
|
||||
assert_body " "
|
||||
assert_status 403
|
||||
end
|
||||
|
||||
class TestTextRenderWithFalse < SimpleRouteCase
|
||||
describe "Rendering text with false returns the string 'false'"
|
||||
|
||||
get "/render_text/with_layout/with_false"
|
||||
assert_body "false"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTextRenderWithLayoutTrue < SimpleRouteCase
|
||||
describe "Rendering text with :layout => true"
|
||||
|
||||
get "/render_text/with_layout/with_layout_true"
|
||||
assert_body "hello world, I'm here!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTextRenderWithCustomLayout < SimpleRouteCase
|
||||
describe "Rendering text with :layout => 'greetings'"
|
||||
|
||||
get "/render_text/with_layout/with_custom_layout"
|
||||
assert_body "hello world, I wish thee well."
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTextRenderWithLayoutFalse < SimpleRouteCase
|
||||
describe "Rendering text with :layout => false"
|
||||
|
||||
get "/render_text/with_layout/with_layout_false"
|
||||
assert_body "hello world"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
class TestTextRenderWithLayoutNil < SimpleRouteCase
|
||||
describe "Rendering text with :layout => nil"
|
||||
|
||||
get "/render_text/with_layout/with_layout_nil"
|
||||
assert_body "hello world"
|
||||
assert_status 200
|
||||
class RenderTextTest < SimpleRouteCase
|
||||
describe "Rendering text using render :text"
|
||||
|
||||
test "rendering text from a action with default options renders the text with the layout" do
|
||||
get "/render_text/simple"
|
||||
assert_body "hello david"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering text from a action with default options renders the text without the layout" do
|
||||
get "/render_text/with_layout"
|
||||
|
||||
assert_body "hello david"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering text, while also providing a custom status code" do
|
||||
get "/render_text/with_layout/custom_code"
|
||||
|
||||
assert_body "hello world"
|
||||
assert_status 404
|
||||
end
|
||||
|
||||
test "rendering text with nil returns a single space character" do
|
||||
get "/render_text/with_layout/with_nil"
|
||||
|
||||
assert_body " "
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "Rendering text with nil and custom status code returns a single space character with the status" do
|
||||
get "/render_text/with_layout/with_nil_and_status"
|
||||
|
||||
assert_body " "
|
||||
assert_status 403
|
||||
end
|
||||
|
||||
test "rendering text with false returns the string 'false'" do
|
||||
get "/render_text/with_layout/with_false"
|
||||
|
||||
assert_body "false"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering text with :layout => true" do
|
||||
get "/render_text/with_layout/with_layout_true"
|
||||
|
||||
assert_body "hello world, I'm here!"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering text with :layout => 'greetings'" do
|
||||
get "/render_text/with_layout/with_custom_layout"
|
||||
|
||||
assert_body "hello world, I wish thee well."
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering text with :layout => false" do
|
||||
get "/render_text/with_layout/with_layout_false"
|
||||
|
||||
assert_body "hello world"
|
||||
assert_status 200
|
||||
end
|
||||
|
||||
test "rendering text with :layout => nil" do
|
||||
get "/render_text/with_layout/with_layout_nil"
|
||||
|
||||
assert_body "hello world"
|
||||
assert_status 200
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -36,13 +36,13 @@ class Rack::TestCase < ActionController::IntegrationTest
|
||||
setup do
|
||||
ActionController::Base.session_options[:key] = "abc"
|
||||
ActionController::Base.session_options[:secret] = ("*" * 30)
|
||||
|
||||
|
||||
controllers = ActionController::Base.subclasses.map do |k|
|
||||
k.underscore.sub(/_controller$/, '')
|
||||
end
|
||||
|
||||
|
||||
ActionController::Routing.use_controllers!(controllers)
|
||||
|
||||
|
||||
# Move into a bootloader
|
||||
ActionController::Base.subclasses.each do |klass|
|
||||
klass = klass.constantize
|
||||
@@ -50,13 +50,13 @@ class Rack::TestCase < ActionController::IntegrationTest
|
||||
klass.class_eval do
|
||||
_write_layout_method
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def app
|
||||
@app ||= ActionController::Dispatcher.new
|
||||
end
|
||||
|
||||
|
||||
def self.testing(klass = nil)
|
||||
if klass
|
||||
@testing = "/#{klass.name.underscore}".sub!(/_controller$/, '')
|
||||
@@ -64,13 +64,7 @@ class Rack::TestCase < ActionController::IntegrationTest
|
||||
@testing
|
||||
end
|
||||
end
|
||||
|
||||
def self.get(url)
|
||||
setup do |test|
|
||||
test.get url
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def get(thing, *args)
|
||||
if thing.is_a?(Symbol)
|
||||
super("#{self.class.testing}/#{thing}")
|
||||
@@ -78,27 +72,15 @@ class Rack::TestCase < ActionController::IntegrationTest
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def assert_body(body)
|
||||
assert_equal body, Array.wrap(response.body).join
|
||||
end
|
||||
|
||||
def self.assert_body(body)
|
||||
test "body is set to '#{body}'" do
|
||||
assert_body body
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def assert_status(code)
|
||||
assert_equal code, response.status
|
||||
end
|
||||
|
||||
def self.assert_status(code)
|
||||
test "status code is set to #{code}" do
|
||||
assert_status code
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def assert_response(body, status = 200, headers = {})
|
||||
assert_body body
|
||||
assert_status status
|
||||
@@ -106,27 +88,14 @@ class Rack::TestCase < ActionController::IntegrationTest
|
||||
assert_header header, value
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def assert_content_type(type)
|
||||
assert_equal type, response.headers["Content-Type"]
|
||||
end
|
||||
|
||||
def self.assert_content_type(type)
|
||||
test "content type is set to #{type}" do
|
||||
assert_content_type(type)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def assert_header(name, value)
|
||||
assert_equal value, response.headers[name]
|
||||
end
|
||||
|
||||
def self.assert_header(name, value)
|
||||
test "'#{name}' header is set to #{value.inspect}" do
|
||||
assert_header(name, value)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class ::ApplicationController < ActionController::Base
|
||||
|
||||
Reference in New Issue
Block a user