aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases
diff options
context:
space:
mode:
authorMyron Marston <myron.marston@gmail.com>2011-04-28 08:32:22 -0700
committerMyron Marston <myron.marston@gmail.com>2011-04-28 08:32:22 -0700
commit7db7aa505375db75c2205f35df743becc7647c95 (patch)
treeba3ccd293d728e096d514855a19d877421419dc2 /activemodel/test/cases
parentfef22157b07f101229d29544d578bfe2cb9fedfe (diff)
downloadrails-7db7aa505375db75c2205f35df743becc7647c95.tar.gz
rails-7db7aa505375db75c2205f35df743becc7647c95.tar.bz2
rails-7db7aa505375db75c2205f35df743becc7647c95.zip
Add additional tests for AM::ObserverArray that I had missed yesterday.
Diffstat (limited to 'activemodel/test/cases')
-rw-r--r--activemodel/test/cases/observer_array_test.rb51
1 files changed, 50 insertions, 1 deletions
diff --git a/activemodel/test/cases/observer_array_test.rb b/activemodel/test/cases/observer_array_test.rb
index 3ede5682b4..fc5f18008b 100644
--- a/activemodel/test/cases/observer_array_test.rb
+++ b/activemodel/test/cases/observer_array_test.rb
@@ -38,6 +38,16 @@ class ObserverArrayTest < ActiveModel::TestCase
assert_observer_notified Budget, AuditTrail
end
+ test "can enable individual observers using a class constant" do
+ ORM.observers.disable :all
+ ORM.observers.enable AuditTrail
+
+ assert_observer_not_notified Widget, WidgetObserver
+ assert_observer_not_notified Budget, BudgetObserver
+ assert_observer_notified Widget, AuditTrail
+ assert_observer_notified Budget, AuditTrail
+ end
+
test "can disable individual observers using a symbol" do
ORM.observers.disable :budget_observer
@@ -47,6 +57,35 @@ class ObserverArrayTest < ActiveModel::TestCase
assert_observer_notified Budget, AuditTrail
end
+ test "can enable individual observers using a symbol" do
+ ORM.observers.disable :all
+ ORM.observers.enable :audit_trail
+
+ assert_observer_not_notified Widget, WidgetObserver
+ assert_observer_not_notified Budget, BudgetObserver
+ assert_observer_notified Widget, AuditTrail
+ assert_observer_notified Budget, AuditTrail
+ end
+
+ test "can disable multiple observers at a time" do
+ ORM.observers.disable :widget_observer, :budget_observer
+
+ assert_observer_not_notified Widget, WidgetObserver
+ assert_observer_not_notified Budget, BudgetObserver
+ assert_observer_notified Widget, AuditTrail
+ assert_observer_notified Budget, AuditTrail
+ end
+
+ test "can enable multiple observers at a time" do
+ ORM.observers.disable :all
+ ORM.observers.enable :widget_observer, :budget_observer
+
+ assert_observer_notified Widget, WidgetObserver
+ assert_observer_notified Budget, BudgetObserver
+ assert_observer_not_notified Widget, AuditTrail
+ assert_observer_not_notified Budget, AuditTrail
+ end
+
test "can disable all observers using :all" do
ORM.observers.disable :all
@@ -56,7 +95,17 @@ class ObserverArrayTest < ActiveModel::TestCase
assert_observer_not_notified Budget, AuditTrail
end
- test "can disable observers on individual models without affecting observers on other models" do
+ test "can enable all observers using :all" do
+ ORM.observers.disable :all
+ ORM.observers.enable :all
+
+ assert_observer_notified Widget, WidgetObserver
+ assert_observer_notified Budget, BudgetObserver
+ assert_observer_notified Widget, AuditTrail
+ assert_observer_notified Budget, AuditTrail
+ end
+
+ test "can disable observers on individual models without affecting those observers on other models" do
Widget.observers.disable :all
assert_observer_not_notified Widget, WidgetObserver