aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/validations
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #23523 from kamipo/avoid_truncation_in_uniqueness_validationJeremy Daer2016-04-181-10/+32
|\ | | | | | | Avoid a string value truncation in uniqueness validation
| * Avoid a string value truncation in uniqueness validationRyuta Kamizono2016-02-121-10/+22
| | | | | | | | | | | | | | | | | | In MySQL, PostgreSQL, Oracle and SQLServer, a value over the limit cannot be inserted or updated (See #23522). In SQLite3, a value is inserted or updated regardless of the limit. We should avoid a string value truncation in uniqueness validation.
* | remove outdated comment [ci skip]yuuji.yaginuma2016-03-051-6/+0
| | | | | | | | Currently use minitest mock, mocha is not used.
* | Fix test name typo prescence -> presenceeileencodes2016-02-271-1/+1
| |
* | Fix uniqueness validation with an after_create hook.Joe Rafaniello2016-02-251-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | record.id_was is nil in after_create/after_save, so we should use id in these cases. While this logic feels incomplete, the existing update_record uses the same logic: https://github.com/rails/rails/blob/2fda4e0874a97a76107ab9e88305169f2c625933/activerecord/lib/active_record/relation.rb#L83 This logic was originally added for a similar problem: updates not working with after_create hook. See: 482f8c15b1d699c95bfbc3d836f674a09c0d9031 Followup to #23581 Fixes #23844
* | Revert changes to validations from PR #18612eileencodes2016-02-234-63/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to fix issue #17621 we added a check to validations that determined if a record should be validated. Based on the existing tests and behavior we wanted we determined the best way to do that was by checking if `!record.peristed? || record.changed? || record.marked_for_destruction?` This change didn't make it into a release until now. When #23790 was opened we realized that `valid?` and `invalid?` were broken and did not work on persisted records because of the `!record.persisted?`. While there is still a bug that #17621 brought up, this change was too drastic and should not be a RC blocker. I will work on fixing this so that we don't break `valid?` but also aren't validating parent records through child records if that parent record is validate false. This change removes the code changes to validate and the corresponding tests. It adds tests for two of the bugs found since Rails 5 beta2 release. Fixes #17621
* | Merge pull request #23628 from maclover7/fix-23625Sean Griffin2016-02-231-0/+26
|\ \ | | | | | | Fix issue #23625
| * | Fix issue #23625Jon Moss2016-02-181-0/+26
| |/ | | | | | | | | | | This resolves a bug where if the primary key used is not `id` (ex: `uuid`), and has a `validates_uniqueness_of` in the model, a uniqueness error would be raised. This is a partial revert of commit `119b9181ece399c67213543fb5227b82688b536f`, which introduced this behavior.
* | Match test name to test (typo)Ian Fleeton2016-02-211-1/+1
| |
* | Always validate record if validating a virtual attributeeileencodes2016-02-203-0/+45
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #23645 When you're using an `attr_accessor` for a record instead of an attribute in the database there's no way for the record to know if it has `changed?` unless you tell it `attribute_will_change!("attribute")`. The change made in 27aa4dd updated validations to check if a record was `changed?` or `marked_for_destruction?` or not `persisted?`. It did not take into account virtual attributes that do not affect the model's dirty status. The only way to fix this is to always validate the record if the attribute does not belong to the set of attributes the record expects (in `record.attributes`) because virtual attributes will not be in that hash. I think we should consider deprecating this particular behavior in the future and requiring that the user mark the record dirty by noting that the virtual attribute will change. Unfortunately this isn't easy because we have no way of knowing that you did the "right thing" in your application by marking it dirty and will get the deprecation warning even if you are doing the correct thing. For now this restores expected behavior when using a virtual attribute by always validating the record, as well as adds tests for this case. I was going to add the `!record.attributes.include?(attribute)` to the `should_validate?` method but `uniqueness` cannot validate a virtual attribute with nothing to hold on to the attribute. Because of this `should_validate?` was about to become a very messy method so I decided to split them up so we can handle it specifically for each case.
* UniquenessValidator exclude itself when PK changedDiego Silva2016-02-091-0/+11
| | | | | | | When changing the PK for a record which has a uniqueness validation on some other attribute, Active Record should exclude itself from the validation based on the PK value stored on the DB (id_was) instead of its new value (id).
* Improve support for non Active Record objects on `validates_associated`Kassio Borges2015-11-081-0/+12
| | | | | | Skipping `marked_for_destruction?` when the associated object does not responds to it make easier to validate virtual associations built on top of Active Model objects and/or serialized objects that implement a `valid?` instance method.
* File encoding is defaulted to utf-8 in Ruby >= 2.1Akira Matsuda2015-09-181-1/+0
|
* Removed mocha from Active Record Part 1Ronak Jangir2015-08-251-4/+6
|
* uniqueness validation raises error for persisted record without pk.Yves Senn2015-08-201-0/+23
| | | | | | | | Closes #21304. While we can validate uniqueness for record without primary key on creation, there is no way to exclude the current record when updating. (The update itself will need a primary key to work correctly).
* Properly allow uniqueness validations on primary keys.Sean Griffin2015-07-251-0/+19
| | | | | | This is an alternate implementation of #20966. [Sean Griffin & presskey]
* AR absence validator respects `marked_for_destruction?`. Closes #20449.Yves Senn2015-06-221-0/+75
| | | | Associated objects that were marked for destruction are considered absent.
* Merge branch 'fix_uniqueness_validation_when_value_is_out_of_range'Sean Griffin2015-04-081-0/+25
|\
| * Fix uniqueness validation with out of range valueAndrey Voronkov2015-04-081-0/+25
|/
* replace `repair_validations` with a disposable subclass.Yves Senn2015-03-061-32/+33
|
* Removed magic comments # encoding: utf-8 , since its default from ruby 2.0 ↵Vipul A M2015-02-033-3/+0
| | | | onwards.
* Fix validations on child record when record parent has validate: falseeileencodes2015-02-014-5/+50
| | | | | | | | | | | | | | Fixes #17621. This 5 year old (or older) issue causes validations to fire when a parent record has `validate: false` option and a child record is saved. It's not the responsibility of the model to validate an associated object unless the object was created or modified by the parent. Clean up tests related to validations `assert_nothing_raised` is not benefiting us in these tests Corrected spelling of "respects" It's better to use `assert_not_operator` over `assert !r.valid`
* AR specific length validator to respect `marked_for_destruction`.Yves Senn2014-12-301-0/+18
| | | | | | | | Closes #7247. Conflicts: activerecord/CHANGELOG.md activerecord/test/models/owner.rb
* pg tests, move uniqueness validation test to array tests.Yves Senn2014-12-021-17/+0
|
* Fixes a bug found when running individual tests against #17217 after mergingSammy Larbi2014-11-101-1/+1
|
* Clear validators before and after each testAkira Matsuda2014-08-141-0/+1
| | | | Or some tests fail when run in random order
* Remove the side-effects of validates_presence_of.Zuhao Wan2014-07-221-2/+3
|
* move AR length validation tests into separate test-case.Yves Senn2014-04-242-42/+48
| | | | | Conflicts: activerecord/test/cases/validations/association_validation_test.rb
* Use teardown helper method.Guo Xiang Tan2014-03-141-1/+1
| | | | | | | | Follow-Up to https://github.com/rails/rails/pull/14348 Ensure that SQLCounter.clear_log is called after each test. This is a step to prevent side effects when running tests. This will allow us to run them in random order.
* passing an instance of an AR object to `find` is deprecatedAaron Patterson2014-03-131-1/+1
| | | | please pass the id of the AR object by calling `.id` on the model first.
* use the new clear_validators! api everywhere to reset validators in testsKuldeep Aggarwal2014-01-281-1/+1
|
* Add CHANGELOG entry for #13557 [ci skip]Rafael Mendonça França2014-01-011-1/+0
|
* add test casegmarik2013-12-311-0/+17
|
* Merge pull request #13061 from ↵Rafael Mendonça França2013-11-261-0/+8
| | | | | | | | laurocaetano/fix-uniqueness-validation-for-aliased-attribute Fix bug when validating the uniqueness of an aliased attribute. Conflicts: activerecord/CHANGELOG.md
* Fix validation on uniqueness of empty associationEvgeny Li2013-11-221-0/+19
|
* Fix bad test order dependency between ↵Ryan Davis2013-11-161-8/+16
| | | | test/cases/validations/i18n_generate_message_validation_test.rb and test/cases/validations/uniqueness_validation_test.rb
* Don't skip tests if we don't need to.Rafael Mendonça França2013-11-081-10/+10
| | | | | | | We can conditional define the tests depending on the adapter or connection. Lets keep the skip for fail tests that need to be fixed.
* Properly repair validations when dynamically addedAkira Matsuda2013-07-291-24/+30
|
* Revert "Merge pull request #4490 from EmmanuelOga/master"José Valim2013-06-041-17/+0
| | | | | | | | This behaviour doesn't actually make sense, the context of the child should not be affected by the parent. See #10492. This reverts commit 5f8274efe128ffeec8fa3179460f5167a078f007, reversing changes made to 81e837e810460d066a2e5fc5a795366ec8ab2313.
* Fix wrong `case_sensitive` in uniqueness validity testVipul A M2013-05-201-1/+1
|
* Fixed typos in activerecordPrathamesh Sonpatki2013-03-271-1/+1
|
* Change uniq validation with conditions examples to use where with hashesCarlos Antonio da Silva2013-03-091-2/+2
| | | | Take the opportunity to showcase where.not.
* Uniqueness validation uses a proc to specify the `:conditions` option.Yves Senn2013-03-091-1/+7
| | | | | This is a follow up to #5321 and follows the general direction in AR to make things lazy evaluated.
* Added support for validates_uniqueness_of in PostgreSQL array columns. ↵Pedro Padron2012-12-181-3/+20
| | | | Fixes: #8075.
* Add tests to make sure that the I18n taken message can be overrided in theRafael Mendonça França2012-10-221-0/+14
| | | | | | activerecord scope. Related with 5341b84936d93ec90e6252af437a3871101c115a
* Changed scope for "taken" error message translation to decrease precedenceAndrew DiMichele2012-10-191-0/+5
| | | | | | Moved activerecord.errors.messages.taken to errors.messages.taken so that translations for, e.g., errors.attributes.email.taken don't get overridden. Test that the translation for 'taken' can be overridden
* Fix bug with presence validation of associations.Scott Willson2012-10-161-0/+7
| | | | Would incorrectly add duplicated errors when the association was blank. Bug introduced in 1fab518c6a75dac5773654646eb724a59741bc13.
* Cleanup trailing whitespacesdfens2012-10-121-1/+1
|
* gradually moving documentation to new hash syntaxAvnerCohen2012-10-101-1/+1
|
* Merge pull request #6827 from zephyr-dev/masterJosé Valim2012-07-271-0/+44
|\ | | | | Validates_presence_of associated object marked for destruction