Ensure camelized values are downcased to create labels in collection helpers (check box/radio)

This commit is contained in:
Carlos Antonio da Silva 2010-10-12 15:57:38 -03:00
parent 3ea20a09ce
commit 1aa6f48d3f
2 changed files with 16 additions and 2 deletions

View File

@ -37,7 +37,7 @@ module SimpleForm
default_html_options = default_html_options_for_collection(item, value, options, html_options)
radio = radio_button(attribute, value, default_html_options)
label("#{attribute}_#{value}", radio << text.to_s, :class => "collection_radio")
label("#{attribute}_#{value.to_s.downcase}", radio << text.to_s, :class => "collection_radio")
end.join.html_safe
end
@ -77,7 +77,7 @@ module SimpleForm
default_html_options[:multiple] = true
check_box = check_box(attribute, default_html_options, value, '')
label("#{attribute}_#{value}", check_box << text.to_s, :class => "collection_check_boxes")
label("#{attribute}_#{value.to_s.downcase}", check_box << text.to_s, :class => "collection_check_boxes")
end.join.html_safe
end

View File

@ -33,6 +33,13 @@ class BuilderTest < ActionView::TestCase
assert_select 'form label.collection_radio[for=user_active_false]', 'false'
end
test 'collection radio handles camelized collection values for labels correctly' do
with_collection_radio @user, :active, ['Yes', 'No'], :to_s, :to_s
assert_select 'form label.collection_radio[for=user_active_yes]', 'Yes'
assert_select 'form label.collection_radio[for=user_active_no]', 'No'
end
test 'collection radio accepts checked item' do
with_collection_radio @user, :active, [[1, true], [0, false]], :last, :first, :checked => true
@ -82,6 +89,13 @@ class BuilderTest < ActionView::TestCase
assert_select 'form label.collection_check_boxes[for=user_tag_ids_2]', 'Tag 2'
end
test 'collection check box handles camelized collection values for labels correctly' do
with_collection_check_boxes @user, :active, ['Yes', 'No'], :to_s, :to_s
assert_select 'form label.collection_check_boxes[for=user_active_yes]', 'Yes'
assert_select 'form label.collection_check_boxes[for=user_active_no]', 'No'
end
test 'collection check box accepts selected values as :checked option' do
collection = (1..3).map{|i| [i, "Tag #{i}"] }
with_collection_check_boxes @user, :tag_ids, collection, :first, :last, :checked => [1, 3]