From 8104f65c3225453d13307c3c2733c2a8f99e491a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 19 Nov 2009 14:50:27 -0200 Subject: Create SyncListener. Since they do not rely on Thread, they can be used on Google App Engine. Signed-off-by: Yehuda Katz --- activesupport/test/notifications_test.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'activesupport/test/notifications_test.rb') 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 -- cgit v1.2.3