aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations/has_many_associations_test.rb
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2012-03-04 14:20:13 +0100
committerAaron Patterson <aaron.patterson@gmail.com>2012-03-05 10:08:09 -0800
commitc97a1666910aa82b9c4348402cc8f52492b58692 (patch)
treeeb64d635ab87efa2807182a026ec70738762c38f /activerecord/test/cases/associations/has_many_associations_test.rb
parentc5a47b3207de8db12cfe956fd75933b6930395b2 (diff)
downloadrails-c97a1666910aa82b9c4348402cc8f52492b58692.tar.gz
rails-c97a1666910aa82b9c4348402cc8f52492b58692.tar.bz2
rails-c97a1666910aa82b9c4348402cc8f52492b58692.zip
Fix #5069 - Protect foreign key from mass assignment throught association builder
Diffstat (limited to 'activerecord/test/cases/associations/has_many_associations_test.rb')
-rw-r--r--activerecord/test/cases/associations/has_many_associations_test.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb
index 3967009c82..02a7f6af78 100644
--- a/activerecord/test/cases/associations/has_many_associations_test.rb
+++ b/activerecord/test/cases/associations/has_many_associations_test.rb
@@ -130,6 +130,28 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
assert_equal car.id, bulb.car_id
end
+ def test_association_protect_foreign_key
+ invoice = Invoice.create
+
+ line_item = invoice.line_items.new
+ assert_equal invoice.id, line_item.invoice_id
+
+ line_item = invoice.line_items.new :invoice_id => invoice.id + 1
+ assert_equal invoice.id, line_item.invoice_id
+
+ line_item = invoice.line_items.build
+ assert_equal invoice.id, line_item.invoice_id
+
+ line_item = invoice.line_items.build :invoice_id => invoice.id + 1
+ assert_equal invoice.id, line_item.invoice_id
+
+ line_item = invoice.line_items.create
+ assert_equal invoice.id, line_item.invoice_id
+
+ line_item = invoice.line_items.create :invoice_id => invoice.id + 1
+ assert_equal invoice.id, line_item.invoice_id
+ end
+
def test_association_conditions_bypass_attribute_protection
car = Car.create(:name => 'honda')