aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/dirty_test.rb
diff options
context:
space:
mode:
authorigor04 <igor.s04@mail.ru>2014-04-24 16:06:26 +0300
committerigor04 <igor.s04g@gmail.com>2014-06-23 23:19:43 +0300
commit552d4d85f3e4d9332054bee7e18a5b44ae1ed3cf (patch)
tree4ee803552b859eaa60ee53c56c9ad03a74c05014 /activemodel/test/cases/dirty_test.rb
parent43101ab3afe2a008d50cd78069e3bd94736da07d (diff)
downloadrails-552d4d85f3e4d9332054bee7e18a5b44ae1ed3cf.tar.gz
rails-552d4d85f3e4d9332054bee7e18a5b44ae1ed3cf.tar.bz2
rails-552d4d85f3e4d9332054bee7e18a5b44ae1ed3cf.zip
Added rollback method to ActiveModel::Dirty
Diffstat (limited to 'activemodel/test/cases/dirty_test.rb')
-rw-r--r--activemodel/test/cases/dirty_test.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/activemodel/test/cases/dirty_test.rb b/activemodel/test/cases/dirty_test.rb
index 2853476c91..d39484a7b9 100644
--- a/activemodel/test/cases/dirty_test.rb
+++ b/activemodel/test/cases/dirty_test.rb
@@ -45,6 +45,10 @@ class DirtyTest < ActiveModel::TestCase
def reload
reset_changes
end
+
+ def rollback
+ rollback_changes
+ end
end
setup do
@@ -176,4 +180,18 @@ class DirtyTest < ActiveModel::TestCase
assert_equal ActiveSupport::HashWithIndifferentAccess.new, @model.previous_changes
assert_equal ActiveSupport::HashWithIndifferentAccess.new, @model.changed_attributes
end
+
+ test "rollback should restore all previous data" do
+ @model.name = 'Dmitry'
+ @model.color = 'Red'
+ @model.save
+ @model.name = 'Bob'
+ @model.color = 'White'
+
+ @model.rollback
+
+ assert_not @model.changed?
+ assert_equal 'Dmitry', @model.name
+ assert_equal 'Red', @model.color
+ end
end