diff options
Diffstat (limited to 'activesupport/test/notifications_test.rb')
-rw-r--r-- | activesupport/test/notifications_test.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/activesupport/test/notifications_test.rb b/activesupport/test/notifications_test.rb index 01106e83e9..35d44367cf 100644 --- a/activesupport/test/notifications_test.rb +++ b/activesupport/test/notifications_test.rb @@ -176,6 +176,21 @@ class NotificationsMainTest < Test::Unit::TestCase assert_equal 1, @another.first.result end + def test_subscriber_allows_sync_listeners + @another = [] + ActiveSupport::Notifications.subscribe(/cache/, :with => ActiveSupport::Notifications::SyncListener) do |*args| + @another << ActiveSupport::Notifications::Event.new(*args) + end + + Thread.expects(:new).never + ActiveSupport::Notifications.instrument(:something){ 0 } + ActiveSupport::Notifications.instrument(:cache){ 1 } + + assert_equal 1, @another.size + assert_equal :cache, @another.first.name + assert_equal 1, @another.first.result + end + def test_with_several_consumers_and_several_events @another = [] ActiveSupport::Notifications.subscribe do |*args| @@ -201,6 +216,6 @@ class NotificationsMainTest < Test::Unit::TestCase private def drain - sleep(0.1) until ActiveSupport::Notifications.queue.drained? + sleep(0.05) until ActiveSupport::Notifications.queue.drained? end end |