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:33:47 -0800
commite1a882a15b71435ec82a596978429b34d4c73ac5 (patch)
treebad788c4a574c9b3b1886fd279a0e0347dbc7494 /activerecord/test/cases/associations/has_many_associations_test.rb
parentebc5a19ba2b9befecdcd01393e990b678588ee66 (diff)
downloadrails-e1a882a15b71435ec82a596978429b34d4c73ac5.tar.gz
rails-e1a882a15b71435ec82a596978429b34d4c73ac5.tar.bz2
rails-e1a882a15b71435ec82a596978429b34d4c73ac5.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 0b03844d50..ead8eaf342 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')