From 935f2912b6f32911c15ab744a842b651c9b52003 Mon Sep 17 00:00:00 2001 From: Lance Date: Thu, 16 Dec 2010 16:50:36 -0500 Subject: [PATCH] Make Mime::Type.parse smart about accept-params even if only one media-range is specified [#6183 state:resolved] --- actionpack/lib/action_controller/mime_type.rb | 2 +- actionpack/test/controller/mime_type_test.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/actionpack/lib/action_controller/mime_type.rb b/actionpack/lib/action_controller/mime_type.rb index 017626b..2f499bd 100644 --- a/actionpack/lib/action_controller/mime_type.rb +++ b/actionpack/lib/action_controller/mime_type.rb @@ -87,7 +87,7 @@ module Mime def parse(accept_header) if accept_header !~ /,/ - [Mime::Type.lookup(accept_header)] + [Mime::Type.lookup(accept_header.split(/;/)[0])] else # keep track of creation order to keep the subsequent sort stable list = [] diff --git a/actionpack/test/controller/mime_type_test.rb b/actionpack/test/controller/mime_type_test.rb index c7faa62..5a2fe7d 100644 --- a/actionpack/test/controller/mime_type_test.rb +++ b/actionpack/test/controller/mime_type_test.rb @@ -10,6 +10,12 @@ class MimeTypeTest < Test::Unit::TestCase end end + def test_parse_single_with_q + Mime::LOOKUP.keys.each do |mime_type| + assert_equal [Mime::Type.lookup(mime_type)], Mime::Type.parse(mime_type + "; q=1") + end + end + def test_parse_without_q accept = "text/xml,application/xhtml+xml,text/yaml,application/xml,text/html,image/png,text/plain,application/pdf,*/*" expect = [Mime::HTML, Mime::XML, Mime::YAML, Mime::PNG, Mime::TEXT, Mime::PDF, Mime::ALL] -- 1.7.1