aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/template/form_helper_test.rb
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-01-05 12:21:34 -0200
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-01-06 11:06:26 -0200
commit756188b512ca11e24262a74856e3bc11b9b2dbc9 (patch)
treedc7d6207568fa0234d59fff115b0980e4b1ea926 /actionpack/test/template/form_helper_test.rb
parent1506d4d9e4fcf7abb94574bf8d0d58672b04a736 (diff)
downloadrails-756188b512ca11e24262a74856e3bc11b9b2dbc9.tar.gz
rails-756188b512ca11e24262a74856e3bc11b9b2dbc9.tar.bz2
rails-756188b512ca11e24262a74856e3bc11b9b2dbc9.zip
Do not call fields_for from form_for, to avoid instantiating two builders
Conflicts: actionpack/lib/action_view/helpers/form_helper.rb actionpack/test/template/form_helper_test.rb
Diffstat (limited to 'actionpack/test/template/form_helper_test.rb')
-rw-r--r--actionpack/test/template/form_helper_test.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/actionpack/test/template/form_helper_test.rb b/actionpack/test/template/form_helper_test.rb
index 49a325af79..7b35424ec7 100644
--- a/actionpack/test/template/form_helper_test.rb
+++ b/actionpack/test/template/form_helper_test.rb
@@ -755,7 +755,6 @@ class FormHelperTest < ActionView::TestCase
assert_dom_equal expected, output_buffer
end
-
def test_form_for_with_format
form_for(@post, :format => :json, :html => { :id => "edit_post_123", :class => "edit_post" }) do |f|
concat f.label(:title)
@@ -2217,6 +2216,19 @@ class FormHelperTest < ActionView::TestCase
assert_equal "fields", output
end
+ def test_form_for_only_instantiates_builder_once
+ initialization_count = 0
+ builder_class = Class.new(ActionView::Helpers::FormBuilder) do
+ define_method :initialize do |*args|
+ super(*args)
+ initialization_count += 1
+ end
+ end
+
+ form_for(@post, :builder => builder_class) { }
+ assert_equal 1, initialization_count, 'form builder instantiated more than once'
+ end
+
protected
def protect_against_forgery?
false