class CallbacksTest::ResetCallbackTest

Public Instance Methods

build_class(memo) click to toggle source
# File activesupport/test/callbacks_test.rb, line 1052
def build_class(memo)
  klass = Class.new {
    include ActiveSupport::Callbacks
    define_callbacks :foo
    set_callback :foo, :before, :hello
    def run; run_callbacks :foo; end
  }
  klass.class_eval {
    define_method(:hello) { memo << :hi }
  }
  klass
end
run() click to toggle source
# File activesupport/test/callbacks_test.rb, line 1057
def run; run_callbacks :foo; end
test_reset_callbacks() click to toggle source
# File activesupport/test/callbacks_test.rb, line 1065
def test_reset_callbacks
  events = []
  klass = build_class events
  klass.new.run
  assert_equal 1, events.length

  klass.reset_callbacks :foo
  klass.new.run
  assert_equal 1, events.length
end
test_reset_impacts_subclasses() click to toggle source
# File activesupport/test/callbacks_test.rb, line 1076
def test_reset_impacts_subclasses
  events = []
  klass = build_class events
  subclass = Class.new(klass) { set_callback :foo, :before, :world }
  subclass.class_eval { define_method(:world) { events << :world } }

  subclass.new.run
  assert_equal 2, events.length

  klass.reset_callbacks :foo
  subclass.new.run
  assert_equal 3, events.length
end
test_save_conditional_person() click to toggle source
# File activesupport/test/callbacks_test.rb, line 603
def test_save_conditional_person
  person = CleanPerson.new
  person.save
  assert_equal [], person.history
end