Skip to content

Commit

Permalink
Merge branch 'master' into normalizecb
Browse files Browse the repository at this point in the history
* master:
  adding more callback type coverage
  • Loading branch information
tenderlove committed May 13, 2013
2 parents 1ad68e3 + 099e827 commit edf116a
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions activesupport/test/callbacks_test.rb
Expand Up @@ -802,6 +802,46 @@ def test_excludes_duplicates_in_one_call
end end
end end


class CallbackProcTest < ActiveSupport::TestCase
def build_class(callback)
Class.new {
include ActiveSupport::Callbacks
define_callbacks :foo
set_callback :foo, :before, callback
def run; run_callbacks :foo; end
}
end

def test_proc_arity_0
calls = []
klass = build_class(->() { calls << :foo })
klass.new.run
assert_equal [:foo], calls
end

def test_proc_arity_1
calls = []
klass = build_class(->(o) { calls << o })
instance = klass.new
instance.run
assert_equal [instance], calls
end

def test_proc_arity_2
assert_raises(ArgumentError) do
klass = build_class(->(x,y) { })
klass.new.run
end
end

def test_proc_negative_called_with_empty_list
calls = []
klass = build_class(->(*args) { calls << args })
klass.new.run
assert_equal [[]], calls
end
end

class ConditionalTests < ActiveSupport::TestCase class ConditionalTests < ActiveSupport::TestCase
def build_class(callback) def build_class(callback)
Class.new { Class.new {
Expand Down

0 comments on commit edf116a

Please sign in to comment.