aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/validations_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* `validates_acceptance_of` shouldn't require a database connectionSean Griffin2015-09-251-0/+11
| | | | | | | | | | | | | The implementation of `attribute_method?` on Active Record requires establishing a database connection and querying the schema. As a general rule, we don't want to require database connections for any class macro, as the class should be able to be loaded without a database (e.g. for things like compiling assets). Instead of eagerly defining these methods, we do it lazily the first time they are accessed via `method_missing`. This should not cause any performance hits, as it will only hit `method_missing` once for the entire class.
* Validate multiple contexts on `valid?` and `invalid?` at once.Dmitry Polushkin2015-09-071-0/+7
| | | | | | | | | | | | | | | | | | 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-7/+0
| | | | | | | | | dmitry/feature/validate-multiple-contexts-at-once" This reverts commit 51dd2588433457960cca592d5b5dac6e0537feac, reversing changes made to ecb4e4b21b3222b823fa24d4a0598b1f2f63ecfb. This broke Active Record tests
* Validate multiple contexts on `valid?` and `invalid?` at once.Dmitry Polushkin2015-07-301-0/+7
| | | | | | | | | | | | | | | | | | 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"]} ```
* Allow a symbol to be passed to `attribute`, in place of a type objectSean Griffin2015-02-061-1/+1
| | | | | | | | | | | | | | | | | | The same is not true of `define_attribute`, which is meant to be the low level no-magic API that sits underneath. The differences between the two APIs are: - `attribute` - Lazy (the attribute will be defined after the schema has loaded) - Allows either a type object or a symbol - `define_attribute` - Runs immediately (might get trampled by schema loading) - Requires a type object This was the last blocker in terms of public interface requirements originally discussed for this feature back in May. All the implementation blockers have been cleared, so this feature is probably ready for release (pending one more look-over by me).
* Removed magic comments # encoding: utf-8 , since its default from ruby 2.0 ↵Vipul A M2015-02-031-1/+0
| | | | onwards.
* Ensure numericality validations work with mutationSean Griffin2014-12-011-0/+13
| | | | | | | | | | | | | | | | | | | | | The detection of in-place changes caused a weird unexpected issue with numericality validations. That validator (out of necessity) works on the `_before_type_cast` version of the attribute, since on an `:integer` type column, a non-numeric string would type cast to 0. However, strings are mutable, and we changed strings to ensure that the post type cast version of the attribute was a different instance than the before type cast version (so the mutation detection can work properly). Even though strings are the only mutable type for which a numericality validation makes sense, special casing strings would feel like a strange change to make here. Instead, we can make the assumption that for all mutable types, we should work on the post-type-cast version of the attribute, since all cases which would return 0 for non-numeric strings are immutable. Fixes #17852
* Build fix when running in isolationArun Agrawal2014-11-141-0/+1
| | | | | `Computer` class needs to be require See #17217 for more details
* Add AR::Base#validate! methodBogdan Gusiev2014-06-231-0/+14
| | | | | Acts same as valid? but raises AR::RecordInvalid exception if validation fails
* Merge pull request #10662 from ↵Carlos Antonio da Silva2014-05-111-9/+9
|\ | | | | | | | | take/change-test-name-for-ActiveRecord--Validations#valid- Refactor AR's validations_test.rb
| * Refactor AR's validations_test.rbTakehiro Adachi2013-12-031-9/+9
| | | | | | | | | | | | | | | | | | | | The `:context` switch feature is implemented in ActiveRecord::Validations#valid? method, so we should rename the test names, and execute `valid?` in the test. Change test name in AR's validations_test.rb This test is testing save method's code
* | ActiveRecord/ActiveModel '#validate' alias for 'valid?'Henrik Nyh2014-03-271-0/+15
| | | | | | | | | | | | | | | | It's unintuitive to call '#valid?' when you want to run validations but don't care about the return value. The alias in ActiveRecord isn't strictly necessary (the ActiveModel alias is still in effect), but it clarifies.
* | Prefer assert_raise instead of flunk + rescue to test for exceptionsCarlos Antonio da Silva2013-12-191-5/+3
|/ | | | | | Change most tests to make use of assert_raise returning the raised exception rather than relying on a combination of flunk + rescue to check for exception types/messages.
* Typo fixes [ci skip]Akshay Vishnoi2013-11-301-1/+1
|
* Remove mass assignment security from ActiveRecordGuillermo Iguaran2012-09-161-6/+0
|
* remove tests for #with_scope (it's now deprecated)Jon Leighton2012-04-251-24/+0
|
* Deprecate set_table_name in favour of self.table_name= or defining your own ↵Jon Leighton2011-11-291-1/+1
| | | | method.
* please use ruby -I lib:test path/to/test.rb, or export RUBY_OPTAaron Patterson2011-06-061-1/+1
|
* Refactor Active Record test connection setup. Please see the ↵Jon Leighton2011-06-041-1/+1
| | | | RUNNING_UNIT_TESTS file for details, but essentially you can now configure things in test/config.yml. You can also run tests directly via the command line, e.g. ruby path/to/test.rb (no rake needed, uses default db connection from test/config.yml). This will help us fix the CI by enabling us to isolate the different Rails versions to different databases.
* Cleanup deprecation warnings in active recordCarlos Antonio da Silva2010-09-061-43/+0
| | | | Signed-off-by: José Valim <jose.valim@gmail.com>
* removing unused models from testsSubba Rao Pasupuleti2010-07-211-5/+0
| | | | | | [#5153 state:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
* Validators should at model level and not at AR:Base level [Closes #4804]Neeraj Singh2010-06-101-0/+10
| | | | | | [#4804 state:resolved] Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
* Fix failing test.José Valim2010-05-211-6/+6
|
* Replace assert with assert_equal in some test casesNeeraj Singh2010-05-211-2/+2
| | | | | | [#4654 state:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
* Remove undocumented save_without_validation!Pratik Naik2010-05-111-6/+0
|
* Make sure valid? preceives the context as in ActiveModel API (ht: Carlos ↵José Valim2010-05-101-0/+17
| | | | Antonio)
* updated AR to work with the AMo model validation changesJosh Kalderimis2010-05-081-1/+1
|
* test_validates_acceptance_of_as_database_column fixedSantiago Pastorino2010-02-051-3/+3
| | | | | | [#3826 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Ensure deprecated validate methods are invoked when they are private [#3214 ↵José Valim2010-01-181-1/+18
| | | | status:resolved]
* save(false) is gone, use save(:validate => false) instead.José Valim2010-01-171-1/+9
|
* Simplify repair_validations on AR and make it work with new callbacks.José Valim2010-01-011-14/+14
|
* Don't publicize with_scope for tests since it may shadow public misuseJeremy Kemper2009-12-281-3/+3
|
* Move validator, human_name and human_attribute_name to ActiveModel, remove ↵José Valim2009-10-201-31/+0
| | | | | | deprecated error messages and add i18n_scope and lookup_ancestors. Signed-off-by: Carl Lerche <carllerche@mac.com>
* Fix default_error_messages back to the original messageAkira Matsuda2009-09-111-3/+6
| | | | Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Changed ActiveRecord to use new callbacks and speed up observers by only ↵José Valim2009-09-081-6/+3
| | | | | | notifying events that are actually being consumed. Signed-off-by: Joshua Peek <josh@joshpeek.com>
* Deprecate Model#validate/validate_on_create/validate_on_update. Use ↵Pratik Naik2009-03-211-0/+34
| | | | Model.validate :method and likewise
* Deprecate Errors#on_base/add_to_base/invalid?/each_fullPratik Naik2009-03-211-2/+2
|
* Add ActiveModel::Validations tests for regular ruby classesPratik Naik2009-03-201-0/+9
|
* Add I18n translations to ActiveModel and move more AR specific parts to ↵Pratik Naik2009-03-201-0/+12
| | | | ActiveRecord::Validations
* Deprecate Error#on(attribute) in favour of Errors#[attribute]Pratik Naik2009-03-201-2/+2
|
* Move relevant validation tests from Active Record to Active ModelPratik Naik2009-03-201-1469/+1
|
* Move all the Active Record validations to Active ModelPratik Naik2009-03-191-125/+123
|
* Ruby 1.9 compat: rename deprecated assert_raises to assert_raise.Jeremy Kemper2009-03-081-6/+6
| | | | [#1617 state:resolved]
* Add ActiveRecord::Base#invalid? as the opposite of #valid? [#2159 ↵Jeffrey Hardy2009-03-081-1/+12
| | | | | | state:resolved] Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Ensure validates_uniqueness_of considers limit on the field. [#1042 ↵Arthur Klepchukov2009-03-071-0/+9
| | | | | | state:resolved] Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* DRY with_kcode in Active Record testsPratik Naik2009-03-071-14/+0
|
* validate_length_of should use custom message if given when using in or within.miloops2009-02-011-0/+13
| | | | | Signed-off-by: Michael Koziarski <michael@koziarski.com> [#1057 state:committed]
* Add a repair_helper to repair changes to the validations inside ↵Murray Steele2008-12-191-160/+191
| | | | | | | | | | | | | | validations_test.rb [#674 state:resolved] Many of the tests in validations_test would add a new validation to models. However, only Topic was being reset with a fairly aggressive clearing of all validations. None of the other models being used however were recieving the same treatment. Now we use repair_validations(Topic) for the whole test case because most test cases use Topic and then the block form of repair_validations(<other_models>) inside any tests that use other models. Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Fixes validates_uniquness_of problem with case insensitive string containing ↵wmoxam2008-09-111-0/+7
| | | | | | newline characters Signed-off-by: Michael Koziarski <michael@koziarski.com>
* change activerecord validation tests to not use the deprecated interpolation ↵Sven Fuchs2008-09-101-29/+29
| | | | | | syntax any more Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>