Make the request accept */* when HTTP_ACCEPT is not present or blank
This commit is contained in:
parent
e8899802e2
commit
4762e4a92b
|
@ -22,8 +22,12 @@ module Sinatra
|
|||
# Returns an array of acceptable media types for the response
|
||||
def accept
|
||||
@env['sinatra.accept'] ||= begin
|
||||
@env['HTTP_ACCEPT'].to_s.scan(HEADER_VALUE_WITH_PARAMS).
|
||||
map! { |e| AcceptEntry.new(e) }.sort
|
||||
if @env.include? 'HTTP_ACCEPT' and @env['HTTP_ACCEPT'].to_s != ''
|
||||
@env['HTTP_ACCEPT'].to_s.scan(HEADER_VALUE_WITH_PARAMS).
|
||||
map! { |e| AcceptEntry.new(e) }.sort
|
||||
else
|
||||
[AcceptEntry.new('*/*')]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -75,4 +75,18 @@ class RequestTest < Test::Unit::TestCase
|
|||
expected = { 'unquoted' => '0.25', 'quoted' => '0.25', 'chartest' => '";,x' }
|
||||
assert_equal(expected, request.preferred_type.params)
|
||||
end
|
||||
|
||||
it 'accepts */* when HTTP_ACCEPT is not present in the request' do
|
||||
request = Sinatra::Request.new Hash.new
|
||||
assert_equal 1, request.accept.size
|
||||
assert request.accept?('text/html')
|
||||
assert_equal '*/*', request.preferred_type.to_s
|
||||
end
|
||||
|
||||
it 'accepts */* when HTTP_ACCEPT is blank in the request' do
|
||||
request = Sinatra::Request.new 'HTTP_ACCEPT' => ''
|
||||
assert_equal 1, request.accept.size
|
||||
assert request.accept?('text/html')
|
||||
assert_equal '*/*', request.preferred_type.to_s
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue