aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/validations
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge pull request #19851 from repinel/numericality-validation2Sean Griffin2015-10-201-1/+36
|\ | | | | Use the post-type-cast version of the attribute to validate numericality
| * Conditionally convert the raw_value received by the numeric validator.Roque Pinel2015-07-111-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the issue where you may be comparing (using a numeric validator such as `greater_than`) numbers of a specific Numeric type such as `BigDecimal`. Previous behavior took the numeric value to be validated and unconditionally converted to Float. For example, due to floating point precision, this can cause issues when comparing a Float to a BigDecimal. Consider the following: ``` validates :sub_total, numericality: { greater_than: BigDecimal('97.18') } ``` If the `:sub_total` value BigDecimal.new('97.18') was validated against the above, the following would be valid since `:sub_total` is converted to a Float regardless of its original type. The result therefore becomes Kernel.Float(97.18) > BigDecimal.new('97.18') The above illustrated behavior is corrected with this patch by conditionally converting the value to validate to float. Use the post-type-cast version of the attribute to validate numericality [Roque Pinel & Trevor Wistaff]
* | Validate multiple contexts on `valid?` and `invalid?` at once.Dmitry Polushkin2015-09-071-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: ```ruby class Person include ActiveModel::Validations attr_reader :name, :title validates_presence_of :name, on: :create validates_presence_of :title, on: :update end person = Person.new person.valid?([:create, :update]) # => true person.errors.messages # => {:name=>["can't be blank"], :title=>["can't be blank"]} ```
* | Revert "Merge pull request #21069 from ↵Rafael Mendonça França2015-09-071-19/+0
| | | | | | | | | | | | | | | | | | dmitry/feature/validate-multiple-contexts-at-once" This reverts commit 51dd2588433457960cca592d5b5dac6e0537feac, reversing changes made to ecb4e4b21b3222b823fa24d4a0598b1f2f63ecfb. This broke Active Record tests
* | Merge pull request #21069 from dmitry/feature/validate-multiple-contexts-at-onceRafael Mendonça França2015-09-071-0/+19
|\ \ | | | | | | | | | Validate multiple contexts on `valid?` and `invalid?` at once
| * | Validate multiple contexts on `valid?` and `invalid?` at once.Dmitry Polushkin2015-07-301-0/+19
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: ```ruby class Person include ActiveModel::Validations attr_reader :name, :title validates_presence_of :name, on: :create validates_presence_of :title, on: :update end person = Person.new person.valid?([:create, :update]) # => true person.errors.messages # => {:name=>["can't be blank"], :title=>["can't be blank"]} ```
* | Add missing test for #17351Aditya Kapoor2015-09-011-0/+14
| |
* | pass the correct argument to mock on a test of `validates_length_of`yuuji.yaginuma2015-07-281-1/+1
|/
* Removes unnecessary comments from i18n validations tests [ci skip]Zamith2015-07-111-61/+2
| | | | | | These comments do not add a lot to the readability, grepability or overall understanding of the tests, therefore I believe they can be safely removed.
* Remove the reference to mocha in activemodelZamith2015-07-111-27/+27
| | | | | Activemodel is no longer dependent on mocha, so we can make the comments more generic.
* Use private method call assertions in Active Model tests.Kasper Timm Hansen2015-07-102-35/+32
| | | | Also fix Minitest constant reference.
* Improve Validation Helpers' documentation comments and testsRadan Skoric2015-06-272-0/+31
|
* Fix typo in AM I18n validation test name [skip ci]Anton Davydov2015-06-091-1/+1
|
* Remove use of mocha from Active ModelRoque Pinel2015-05-282-35/+71
|
* Deprecate the `:tokenizer` option to `validates_length_of`Sean Griffin2015-03-291-4/+16
| | | | | | | | As demonstrated by #19570, this option is severely limited, and satisfies an extremely specific use case. Realistically, there's not much reason for this option to exist. Its functionality can be trivially replicated with a normal Ruby method. Let's deprecate this option, in favor of the simpler solution.
* Deprecate `ActiveModel::Errors` `add_on_empty` and `add_on_blank` methodsWojciech Wnętrzak2015-02-191-1/+1
| | | | without replacement.
* Merge pull request #16381 from kakipo/validate-length-tokenizerRafael Mendonça França2015-02-131-0/+13
|\ | | | | | | Allow symbol as values for `tokenizer` of `LengthValidator`
| * Allow symbol as values for `tokenize` of `LengthValidator`kakipo2014-08-031-0/+13
| |
* | Removed magic comments # encoding: utf-8 , since its default from ruby 2.0 ↵Vipul A M2015-02-0315-16/+0
| | | | | | | | onwards.
* | Merge pull request #18439 from mokhan/validates-acceptance-of-arraySean Griffin2015-01-121-0/+6
|\ \ | | | | | | allow '1' or true for acceptance validation.
| * | allow '1' or true for acceptance validation.mo khan2015-01-101-0/+6
| | |
* | | Add test for AM::Validation::Callbacks with :onclaudiob2015-01-111-0/+26
|/ / | | | | | | | | | | | | | | | | | | | | `before_validation` and `after_validation` from ActiveModel::Validation::Callbacks accept an optional `:on` parameter that was not previously documented or tested. For instance given before_validation :do_something, on: :create then `object.valid?(:create)` will invoke `:do_something` while `object.valid?` or `object.valid?(:anything_else)` will not.
* | Deprecate `false` as the way to halt AM validation callbacksclaudiob2015-01-021-3/+17
| | | | | | | | | | | | | | | | | | | | Before this commit, returning `false` in an ActiveModel validation callback such as `before_validation` would halt the callback chain. After this commit, the behavior is deprecated: will still work until the next release of Rails but will also display a deprecation warning. The preferred way to halt a callback chain is to explicitly `throw(:abort)`.
* | Add AM test for after_validation returning falseclaudiob2014-12-141-2/+13
| | | | | | | | | | | | | | | | This stems from https://github.com/rails/rails/pull/17227#discussion_r21641358 It's simply a clarification of the current behavior by which if an `after_validation` ActiveModel callback returns +false+, then further `after_` callbacks **are not halted**.
* | Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-291-2/+2
| |
* | Remove redundant require of fileAdam892014-11-011-1/+0
|/ | | | | This file was required inside 'test/validators/namespace/email_validator.rb' that's already required here. Therefore I removed the redundant required.
* `only_integer` of `NumericalityValidator` now allows procs and symbolsRobin Mehner2014-06-221-0/+15
|
* Correct typo, add test for validates_absence_of, correct method namesAkshay Vishnoi2014-06-161-3/+4
|
* Add singular and plural form for some validation messagesAbd ar-Rahman Hamidi2014-05-021-3/+15
|
* Completely remove potential global state leaks in ActiveModel tests.Zuhao Wan2014-03-112-9/+11
| | | | ActiveModel tests can now be run in random order.
* Run ActiveModel test suites in random order.Zuhao Wan2014-03-102-6/+10
| | | | | | | | | | This gets the whole ActiveModel test suites working even if `self.i_suck_and_my_tests_are_order_dependent!` is disabled in `ActiveSupport::TestCase`. Two places are found that potentially leak global state. This patch makes sure states are restored so that none of the changes happen in a single test will be carried over to subsequence tests.
* use the new clear_validators! api everywhere to reset validators in testsKuldeep Aggarwal2014-01-281-1/+1
|
* Use the new clear_validators! api to reset validators in testsCarlos Antonio da Silva2014-01-2715-34/+32
|
* Merge tests about multiple validation contextsCarlos Antonio da Silva2014-01-271-10/+6
|
* Ability to specify multiple contexts when defining a validation.Vince Puzzella2014-01-271-0/+16
| | | | | | Example: validates_presence_of :name, on: [:update, :custom_validation_context]
* Let validates_inclusion_of accept Time and DateTime rangesAkira Matsuda2013-10-231-0/+22
| | | | fixes 4.0.0 regression introduced in 0317b93c17a46d7663a8c36edc26ad0ba3d75f85
* use assert_empty in activemodel conditional validation test casesRajarshi Das2013-09-101-7/+7
|
* Use Range#cover? for Numeric ranges (tests via endpoints) and use ↵Charles Bergeron2013-05-271-0/+1
| | | | | | Range#include? for non-numeric ranges added changelog message
* deprecate Validator#setup (to get rid of a respond_to call). validators do ↵Nick Sutterer2013-05-231-23/+1
| | | | their setup in their constructor now.
* Convert ActiveModel to 1.9 hash syntax.Patrick Robertson2013-05-0112-202/+201
| | | | | I also attempted to fix other styleguide violations such as { a: :b } over {a: :b} and foo(b: 'bar') over foo( b: 'bar' ).
* Merge pull request #10286 from ↵Carlos Antonio da Silva2013-04-211-2/+2
|\ | | | | | | | | neerajdotname/fix-wrong-test-name-and-failure-message fix wrong test description and failure message
| * fix wrong test description and failure messageNeeraj Singh2013-04-211-2/+2
| |
* | Added tests for if condition in Active Model callbacksNeeraj Singh2013-04-211-0/+21
|/
* fix some typos found in activemodelVipul A M2013-03-181-1/+1
|
* `validates_confirmation_of` does not override writer methods.Yves Senn2013-03-041-0/+31
|
* Take care of whitespaces and changing the hash syntaxRafael Mendonça França2013-02-041-57/+56
|
* test for issue 8931David2013-02-021-0/+8
|
* Add CHANGELOG entry for #8622Rafael Mendonça França2012-12-261-2/+2
|
* Revert the change at ActiveModel::Errors#add_on_blank and fix in theRafael Mendonça França2012-12-261-5/+5
| | | | | | | | | | | right place. The EachValidator#validate already handle :allow_blank and :allow_nil, correctly. Closes #8622. Fix #8621.
* Tests and fix for validates_presence of :allow_nil, :allow_blankColin Kelley2012-12-261-0/+34
| | | | | Conflicts: activemodel/lib/active_model/errors.rb