aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
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 10:54:21 -0200
commit115a37d9c1b2d8868a188a23528e3397f6761971 (patch)
tree32db7cec7ae538569fba963351de60444f4753bb /actionpack/test
parent94ecbb7e7bb70e56137df2e275e564fa4b5bc6fb (diff)
downloadrails-115a37d9c1b2d8868a188a23528e3397f6761971.tar.gz
rails-115a37d9c1b2d8868a188a23528e3397f6761971.tar.bz2
rails-115a37d9c1b2d8868a188a23528e3397f6761971.zip
Do not call fields_for from form_for, to avoid instantiating two builders
Diffstat (limited to 'actionpack/test')
-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 c730e3ab74..5e47e4db23 100644
--- a/actionpack/test/template/form_helper_test.rb
+++ b/actionpack/test/template/form_helper_test.rb
@@ -1171,7 +1171,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)
@@ -2693,6 +2692,19 @@ class FormHelperTest < ActionView::TestCase
end
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 hidden_fields(method = nil)