mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #11000 from sbeckeriv/accept_header
Fix undefined method `ref' for nil:NilClass for bad accept headers
This commit is contained in:
commit
dd9d869746
3 changed files with 15 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
|||
* Fix `Mime::Type.parse` when bad accepts header is looked up. Previously it
|
||||
was setting `request.formats` with an array containing a `nil` value, which
|
||||
raised an error when setting the controller formats.
|
||||
|
||||
Fixes #10965
|
||||
|
||||
*Becker*
|
||||
|
||||
* Merge `:action` from routing scope and assign endpoint if both `:controller`
|
||||
and `:action` are present. The endpoint assignment only occurs if there is
|
||||
no `:to` present in the options hash so should only affect routes using the
|
||||
|
|
|
@ -175,7 +175,7 @@ module Mime
|
|||
def parse(accept_header)
|
||||
if accept_header !~ /,/
|
||||
accept_header = accept_header.split(PARAMETER_SEPARATOR_REGEXP).first
|
||||
parse_trailing_star(accept_header) || [Mime::Type.lookup(accept_header)]
|
||||
parse_trailing_star(accept_header) || [Mime::Type.lookup(accept_header)].compact
|
||||
else
|
||||
list, index = AcceptList.new, 0
|
||||
accept_header.split(',').each do |header|
|
||||
|
|
|
@ -1089,6 +1089,12 @@ class RenderTest < ActionController::TestCase
|
|||
assert_equal '<test>passed formatted html erb</test>', @response.body
|
||||
end
|
||||
|
||||
def test_should_render_formatted_html_erb_template_with_bad_accepts_header
|
||||
@request.env["HTTP_ACCEPT"] = "; a=dsf"
|
||||
get :formatted_xml_erb
|
||||
assert_equal '<test>passed formatted html erb</test>', @response.body
|
||||
end
|
||||
|
||||
def test_should_render_formatted_html_erb_template_with_faulty_accepts_header
|
||||
@request.accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appliction/x-shockwave-flash, */*"
|
||||
get :formatted_xml_erb
|
||||
|
|
Loading…
Reference in a new issue