aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-02-13 22:48:47 -0200
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-02-13 22:48:48 -0200
commita10ed70999935cf86bd9a170ce3d4748631968ca (patch)
tree2ad22cf0f1c6654192b170c726ff4ea9abf3848d /actionpack/test
parent11d1bdc09e91f1d77c36b7afeef912de0b94f331 (diff)
downloadrails-a10ed70999935cf86bd9a170ce3d4748631968ca.tar.gz
rails-a10ed70999935cf86bd9a170ce3d4748631968ca.tar.bz2
rails-a10ed70999935cf86bd9a170ce3d4748631968ca.zip
Allow collection helpers with block to access current object in the collection
This gives a lot more flexibility to the user, for instance to generate a collection of check boxes and labels, allowing to add custom classes or data-* attributes to the label/check_box using another object attribute. This basically mimics options_for_select functionality that accepts a third option for each item to generate html attributes for each option.
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/template/form_collections_helper_test.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/actionpack/test/template/form_collections_helper_test.rb b/actionpack/test/template/form_collections_helper_test.rb
index a4aea8ca56..4d878635ef 100644
--- a/actionpack/test/template/form_collections_helper_test.rb
+++ b/actionpack/test/template/form_collections_helper_test.rb
@@ -123,6 +123,19 @@ class FormCollectionsHelperTest < ActionView::TestCase
end
end
+ test 'collection radio with block helpers allows access to the current object item in the collection to access extra properties' do
+ with_collection_radio_buttons :user, :active, [true, false], :to_s, :to_s do |b|
+ b.label(:class => b.object) { b.radio_button + b.text }
+ end
+
+ assert_select 'label.true[for=user_active_true]', 'true' do
+ assert_select 'input#user_active_true[type=radio]'
+ end
+ assert_select 'label.false[for=user_active_false]', 'false' do
+ assert_select 'input#user_active_false[type=radio]'
+ end
+ end
+
test 'collection radio buttons with fields for' do
collection = [Category.new(1, 'Category 1'), Category.new(2, 'Category 2')]
@output_buffer = fields_for(:post) do |p|
@@ -298,4 +311,17 @@ class FormCollectionsHelperTest < ActionView::TestCase
assert_select 'input#user_active_false[type=checkbox]'
end
end
+
+ test 'collection check boxes with block helpers allows access to the current object item in the collection to access extra properties' do
+ with_collection_check_boxes :user, :active, [true, false], :to_s, :to_s do |b|
+ b.label(:class => b.object) { b.check_box + b.text }
+ end
+
+ assert_select 'label.true[for=user_active_true]', 'true' do
+ assert_select 'input#user_active_true[type=checkbox]'
+ end
+ assert_select 'label.false[for=user_active_false]', 'false' do
+ assert_select 'input#user_active_false[type=checkbox]'
+ end
+ end
end