aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test
diff options
context:
space:
mode:
authorAngelo capilleri <capilleri@yahoo.com>2012-06-08 19:39:17 +0200
committerAngelo capilleri <capilleri@yahoo.com>2012-06-12 18:04:44 +0200
commitb97e0a1127d45e25e4281d6c1b5fb9a57f0efea6 (patch)
tree4550c65275a9423b484b17af55a75e43bf1b1916 /activemodel/test
parentfa352c46da1b89534f2ddb04a602b7d09c0f5872 (diff)
downloadrails-b97e0a1127d45e25e4281d6c1b5fb9a57f0efea6.tar.gz
rails-b97e0a1127d45e25e4281d6c1b5fb9a57f0efea6.tar.bz2
rails-b97e0a1127d45e25e4281d6c1b5fb9a57f0efea6.zip
Fix the the backport of the object dup with the ruby 1.9.3p194.
At the end of initialize_dup was added the call to super if it exists, so it also works with 1.8.7 where initialize_dup doesn't exist. This issu was introduced with the pull request #6324
Diffstat (limited to 'activemodel/test')
-rw-r--r--activemodel/test/cases/validations_test.rb11
-rw-r--r--activemodel/test/models/book.rb3
2 files changed, 14 insertions, 0 deletions
diff --git a/activemodel/test/cases/validations_test.rb b/activemodel/test/cases/validations_test.rb
index 56c9a5592c..d000a88ce1 100644
--- a/activemodel/test/cases/validations_test.rb
+++ b/activemodel/test/cases/validations_test.rb
@@ -5,6 +5,7 @@ require 'models/topic'
require 'models/reply'
require 'models/custom_reader'
require 'models/automobile'
+require 'models/book'
require 'active_support/json'
require 'active_support/xml_mini'
@@ -354,4 +355,14 @@ class ValidationsTest < ActiveModel::TestCase
assert topic.invalid?
assert duped.valid?
end
+
+ def test_dup_call_parent_dup_when_include_validations
+ book = Book.new
+ book['title'] = "Litterature"
+ book['author'] = "Foo"
+ duped = book.dup
+
+ assert_equal book.keys, duped.keys
+ assert_equal book.values, duped.values
+ end
end
diff --git a/activemodel/test/models/book.rb b/activemodel/test/models/book.rb
new file mode 100644
index 0000000000..c5c19046c8
--- /dev/null
+++ b/activemodel/test/models/book.rb
@@ -0,0 +1,3 @@
+class Book < Hash
+ include ActiveModel::Validations
+end