Fixed a problem with request.accept and provides.

This commit is contained in:
Davide D'Agostino 2010-04-27 20:50:29 +02:00 committed by Ryan Tomayko
parent b5bc740c12
commit 77092a88c8
2 changed files with 11 additions and 1 deletions

View File

@ -26,7 +26,7 @@ module Sinatra
class Request < Rack::Request
# Returns an array of acceptable media types for the response
def accept
@env['HTTP_ACCEPT'].to_s.split(',').map { |a| a.strip }
@env['HTTP_ACCEPT'].to_s.split(',').map { |a| a.split(';')[0].strip }
end
def secure?

View File

@ -595,6 +595,9 @@ class RoutingTest < Test::Unit::TestCase
get '/', :provides => :xml do
request.env['HTTP_ACCEPT']
end
get '/foo', :provides => :html do
request.env['HTTP_ACCEPT']
end
}
get '/', {}, { 'HTTP_ACCEPT' => 'application/xml' }
@ -604,6 +607,13 @@ class RoutingTest < Test::Unit::TestCase
get '/', {}, { :accept => 'text/html' }
assert !ok?
get '/foo', {}, { 'HTTP_ACCEPT' => 'text/html;q=0.9' }
assert ok?
assert_equal 'text/html;q=0.9', body
get '/foo', {}, { 'HTTP_ACCEPT' => '' }
assert !ok?
end
it "allows multiple mime types for accept header" do