提交 149e3cd3 编写于 作者: G grosser 提交者: Steve Klabnik

fix respond_to without blocks not working if one of the blocks is all

上级 c3d001b0
## Rails 4.0.0 (unreleased) ##
* Fix `respond_to` not using formats that have no block if all is present. *Michael Grosser*
* New applications use an encrypted session store by default.
*Santiago Pastorino*
......
......@@ -420,7 +420,7 @@ def custom(mime_type, &block)
end
def response
@responses[format] || @responses[Mime::ALL]
@responses.fetch(format, @responses[Mime::ALL])
end
def negotiate_format(request)
......
......@@ -80,6 +80,13 @@ def using_defaults_with_type_list
respond_to(:html, :xml)
end
def using_defaults_with_all
respond_to do |type|
type.html
type.all{ render text: "ALL" }
end
end
def made_for_content_type
respond_to do |type|
type.rss { render :text => "RSS" }
......@@ -301,6 +308,20 @@ def test_using_defaults
assert_equal "<p>Hello world!</p>\n", @response.body
end
def test_using_defaults_with_all
@request.accept = "*/*"
get :using_defaults_with_all
assert_equal "HTML!", @response.body.strip
@request.accept = "text/html"
get :using_defaults_with_all
assert_equal "HTML!", @response.body.strip
@request.accept = "application/json"
get :using_defaults_with_all
assert_equal "ALL", @response.body
end
def test_using_defaults_with_type_list
@request.accept = "*/*"
get :using_defaults_with_type_list
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册