7600aef48b
As a side benefit, fix an (non-user-visible) bug in display_s5(). Also fixed a bug where removing orphaned pages did not expire cached summary pages.
39 lines
785 B
Ruby
39 lines
785 B
Ruby
require "cases/helper"
|
|
|
|
class Comment < ActiveRecord::Base
|
|
attr_accessor :callers
|
|
|
|
before_validation :record_callers
|
|
|
|
def after_validation
|
|
record_callers
|
|
end
|
|
|
|
def record_callers
|
|
callers << self.class if callers
|
|
end
|
|
end
|
|
|
|
class CommentObserver < ActiveRecord::Observer
|
|
attr_accessor :callers
|
|
|
|
def after_validation(model)
|
|
callers << self.class if callers
|
|
end
|
|
end
|
|
|
|
class CallbacksObserversTest < ActiveRecord::TestCase
|
|
def test_model_callbacks_fire_before_observers_are_notified
|
|
callers = []
|
|
|
|
comment = Comment.new
|
|
comment.callers = callers
|
|
|
|
CommentObserver.instance.callers = callers
|
|
|
|
comment.valid?
|
|
|
|
assert_equal [Comment, Comment, CommentObserver], callers, "model callbacks did not fire before observers were notified"
|
|
end
|
|
end
|