diff options
Diffstat (limited to 'activemodel/test')
| -rw-r--r-- | activemodel/test/cases/dirty_test.rb | 4 | ||||
| -rw-r--r-- | activemodel/test/cases/validations/callbacks_test.rb | 26 | 
2 files changed, 26 insertions, 4 deletions
diff --git a/activemodel/test/cases/dirty_test.rb b/activemodel/test/cases/dirty_test.rb index 8ffd62fd86..66ed8a350a 100644 --- a/activemodel/test/cases/dirty_test.rb +++ b/activemodel/test/cases/dirty_test.rb @@ -45,10 +45,6 @@ class DirtyTest < ActiveModel::TestCase      def reload        clear_changes_information      end - -    def deprecated_reload -      reset_changes -    end    end    setup do diff --git a/activemodel/test/cases/validations/callbacks_test.rb b/activemodel/test/cases/validations/callbacks_test.rb index 4b0dd58efb..cc50ffbbef 100644 --- a/activemodel/test/cases/validations/callbacks_test.rb +++ b/activemodel/test/cases/validations/callbacks_test.rb @@ -50,6 +50,14 @@ class DogWithMissingName < Dog    validates_presence_of :name  end +class DogValidatorWithOnCondition < Dog +  before_validation :set_before_validation_marker, on: :create +  after_validation :set_after_validation_marker, on: :create + +  def set_before_validation_marker; self.history << 'before_validation_marker'; end +  def set_after_validation_marker;  self.history << 'after_validation_marker' ; end +end +  class DogValidatorWithIfCondition < Dog    before_validation :set_before_validation_marker1, if: -> { true }    before_validation :set_before_validation_marker2, if: -> { false } @@ -73,6 +81,24 @@ class CallbacksWithMethodNamesShouldBeCalled < ActiveModel::TestCase      assert_equal ["before_validation_marker1", "after_validation_marker1"], d.history    end +  def test_on_condition_is_respected_for_validation_with_matching_context +    d = DogValidatorWithOnCondition.new +    d.valid?(:create) +    assert_equal ["before_validation_marker", "after_validation_marker"], d.history +  end + +  def test_on_condition_is_respected_for_validation_without_matching_context +    d = DogValidatorWithOnCondition.new +    d.valid?(:save) +    assert_equal [], d.history +  end + +  def test_on_condition_is_respected_for_validation_without_context +    d = DogValidatorWithOnCondition.new +    d.valid? +    assert_equal [], d.history +  end +    def test_before_validation_and_after_validation_callbacks_should_be_called      d = DogWithMethodCallbacks.new      d.valid?  | 
