diff options
author | Hongli Lai (Phusion) <hongli@phusion.nl> | 2008-11-13 21:49:23 +0100 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-11-13 21:55:58 +0100 |
commit | 4e9abdd7f1b4e05f8d1b50ddaa080b3ff63b92d9 (patch) | |
tree | da8f41b6b511a4fdf04d1d25ee0e94ec7cd19475 /actionpack | |
parent | 4c0921024471c0463d67f8b8fb6a115a94d343aa (diff) | |
download | rails-4e9abdd7f1b4e05f8d1b50ddaa080b3ff63b92d9.tar.gz rails-4e9abdd7f1b4e05f8d1b50ddaa080b3ff63b92d9.tar.bz2 rails-4e9abdd7f1b4e05f8d1b50ddaa080b3ff63b92d9.zip |
Tag helper should output an attribute with the value 'false' instead of omitting the attribute, if the associated option is false but not nil.
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/helpers/tag_helper.rb | 10 | ||||
-rw-r--r-- | actionpack/test/template/form_tag_helper_test.rb | 2 | ||||
-rw-r--r-- | actionpack/test/template/tag_helper_test.rb | 4 |
3 files changed, 11 insertions, 5 deletions
diff --git a/actionpack/lib/action_view/helpers/tag_helper.rb b/actionpack/lib/action_view/helpers/tag_helper.rb index de08672d2d..d37ca766af 100644 --- a/actionpack/lib/action_view/helpers/tag_helper.rb +++ b/actionpack/lib/action_view/helpers/tag_helper.rb @@ -133,10 +133,12 @@ module ActionView unless options.blank? attrs = [] if escape - options.each do |key, value| - next unless value - value = BOOLEAN_ATTRIBUTES.include?(key) ? key : escape_once(value) - attrs << %(#{key}="#{value}") + options.each_pair do |key, value| + if BOOLEAN_ATTRIBUTES.include?(key) + attrs << %(#{key}="#{key}") if value + else + attrs << %(#{key}="#{escape_once(value)}") if !value.nil? + end end else attrs = options.map { |key, value| %(#{key}="#{value}") } diff --git a/actionpack/test/template/form_tag_helper_test.rb b/actionpack/test/template/form_tag_helper_test.rb index de82647813..f8add0bab1 100644 --- a/actionpack/test/template/form_tag_helper_test.rb +++ b/actionpack/test/template/form_tag_helper_test.rb @@ -235,7 +235,7 @@ class FormTagHelperTest < ActionView::TestCase assert_match VALID_HTML_ID, label_elem['for'] end - def test_boolean_optios + def test_boolean_options assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes") assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil) assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => true) diff --git a/actionpack/test/template/tag_helper_test.rb b/actionpack/test/template/tag_helper_test.rb index fc49d340ef..ef88cae5b8 100644 --- a/actionpack/test/template/tag_helper_test.rb +++ b/actionpack/test/template/tag_helper_test.rb @@ -19,6 +19,10 @@ class TagHelperTest < ActionView::TestCase assert_equal "<p />", tag("p", :ignored => nil) end + def test_tag_options_accepts_false_option + assert_equal "<p value=\"false\" />", tag("p", :value => false) + end + def test_tag_options_accepts_blank_option assert_equal "<p included=\"\" />", tag("p", :included => '') end |