aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/autosave_association_test.rb
diff options
context:
space:
mode:
authorLance Ivy <lance@cainlevy.net>2009-07-11 15:09:09 +0200
committerEloy Duran <eloy.de.enige@gmail.com>2009-09-12 15:40:45 +0200
commita44a1257d879311d88c2d10c366ab0d6561f903a (patch)
treee61e24e8dfbd243dfc9b9aa59dbea8f7956b4f86 /activerecord/test/cases/autosave_association_test.rb
parentbcd0ef710ec6d2cc6b880c39de0dfacc07df85e4 (diff)
downloadrails-a44a1257d879311d88c2d10c366ab0d6561f903a.tar.gz
rails-a44a1257d879311d88c2d10c366ab0d6561f903a.tar.bz2
rails-a44a1257d879311d88c2d10c366ab0d6561f903a.zip
Don't cascade autosave validation to destroyed children. [#2761 state:resolved]
Signed-off-by: Eloy Duran <eloy.de.enige@gmail.com>
Diffstat (limited to 'activerecord/test/cases/autosave_association_test.rb')
-rw-r--r--activerecord/test/cases/autosave_association_test.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/activerecord/test/cases/autosave_association_test.rb b/activerecord/test/cases/autosave_association_test.rb
index 271086af8e..00e64ca51f 100644
--- a/activerecord/test/cases/autosave_association_test.rb
+++ b/activerecord/test/cases/autosave_association_test.rb
@@ -563,6 +563,17 @@ class TestDestroyAsPartOfAutosaveAssociation < ActiveRecord::TestCase
children.each { |child| child.mark_for_destruction }
assert_difference("#{association_name.classify}.count", -2) { @pirate.save! }
end
+
+ define_method("test_should_skip_validation_on_the_#{association_name}_association_if_destroyed") do
+ @pirate.send(association_name).create!(:name => "#{association_name}_1")
+ children = @pirate.send(association_name)
+
+ children.each { |child| child.name = '' }
+ assert !@pirate.valid?
+
+ children.each { |child| child.destroy }
+ assert @pirate.valid?
+ end
define_method("test_should_rollback_destructions_if_an_exception_occurred_while_saving_#{association_name}") do
2.times { |i| @pirate.send(association_name).create!(:name => "#{association_name}_#{i}") }