aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/validations/callbacks_test.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-12-16 14:50:05 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-12-16 14:50:05 -0200
commita328014ff2e1adf9f202308f4e48ba6b32507d3a (patch)
tree4bb9869a3924f155a116cad6ea3ef60cb6feab46 /activemodel/test/cases/validations/callbacks_test.rb
parent1f5df859d8c8e35144b1783f136d34ab9b2099a9 (diff)
parentb7bd7ffa6398570de9631100657161f1d78fb8ce (diff)
downloadrails-a328014ff2e1adf9f202308f4e48ba6b32507d3a.tar.gz
rails-a328014ff2e1adf9f202308f4e48ba6b32507d3a.tar.bz2
rails-a328014ff2e1adf9f202308f4e48ba6b32507d3a.zip
Merge pull request #18032 from claudiob/add-test-for-after-validate-callbacks
Add test for ActiveModel `after_validation`, `after_` and `around_` callbacks returning false
Diffstat (limited to 'activemodel/test/cases/validations/callbacks_test.rb')
-rw-r--r--activemodel/test/cases/validations/callbacks_test.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/activemodel/test/cases/validations/callbacks_test.rb b/activemodel/test/cases/validations/callbacks_test.rb
index 6cd0f4ed4d..5d6d48b824 100644
--- a/activemodel/test/cases/validations/callbacks_test.rb
+++ b/activemodel/test/cases/validations/callbacks_test.rb
@@ -30,11 +30,16 @@ class DogWithTwoValidators < Dog
before_validation { self.history << 'before_validation_marker2' }
end
-class DogValidatorReturningFalse < Dog
+class DogBeforeValidatorReturningFalse < Dog
before_validation { false }
before_validation { self.history << 'before_validation_marker2' }
end
+class DogAfterValidatorReturningFalse < Dog
+ after_validation { false }
+ after_validation { self.history << 'after_validation_marker' }
+end
+
class DogWithMissingName < Dog
before_validation { self.history << 'before_validation_marker' }
validates_presence_of :name
@@ -82,12 +87,18 @@ class CallbacksWithMethodNamesShouldBeCalled < ActiveModel::TestCase
end
def test_further_callbacks_should_not_be_called_if_before_validation_returns_false
- d = DogValidatorReturningFalse.new
+ d = DogBeforeValidatorReturningFalse.new
output = d.valid?
assert_equal [], d.history
assert_equal false, output
end
+ def test_further_callbacks_should_be_called_if_after_validation_returns_false
+ d = DogAfterValidatorReturningFalse.new
+ d.valid?
+ assert_equal ['after_validation_marker'], d.history
+ end
+
def test_validation_test_should_be_done
d = DogWithMissingName.new
output = d.valid?