aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorHemant Kumar <gethemant@gmail.com>2012-05-09 17:32:15 +0530
committerHemant Kumar <gethemant@gmail.com>2012-05-09 17:32:15 +0530
commit44d1804b0a86de02865c48c552bbc57da3dc7836 (patch)
tree4f9fefc3d5254e6deae380d1f19d8c31b534b0b2 /activerecord/test
parentbeea9f5d4eb96a6d13863a403ce100ae9710259a (diff)
downloadrails-44d1804b0a86de02865c48c552bbc57da3dc7836.tar.gz
rails-44d1804b0a86de02865c48c552bbc57da3dc7836.tar.bz2
rails-44d1804b0a86de02865c48c552bbc57da3dc7836.zip
Fix transaction state not changing when after record gets commited
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/transaction_callbacks_test.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/activerecord/test/cases/transaction_callbacks_test.rb b/activerecord/test/cases/transaction_callbacks_test.rb
index f8b3e01a49..9246157a13 100644
--- a/activerecord/test/cases/transaction_callbacks_test.rb
+++ b/activerecord/test/cases/transaction_callbacks_test.rb
@@ -290,3 +290,28 @@ class TransactionObserverCallbacksTest < ActiveRecord::TestCase
assert_equal %w{ after_rollback }, topic.history
end
end
+
+class SaveFromAfterCommitBlockTest < ActiveRecord::TestCase
+ self.use_transactional_fixtures = false
+
+ class TopicWithSaveInCallback < ActiveRecord::Base
+ self.table_name = :topics
+ after_commit :cache_topic, :on => :create
+ attr_accessor :cached
+
+ def cache_topic
+ unless cached
+ self.cached = true
+ self.save
+ else
+ self.cached = false
+ end
+ end
+ end
+
+ def test_after_commit_in_save
+ topic = TopicWithSaveInCallback.new()
+ topic.save
+ assert_equal true, topic.cached
+ end
+end