aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #15343 from dontfidget/fix_polymorphic_automatic_inverse_ofRafael Mendonça França2014-06-131-0/+11
|\ | | | | prevent bad automatic inverse_of association
| * use name specified by 'as' for automatic inverse association to avoid ↵Andrew S. Brown2014-06-101-0/+11
| | | | | | | | reflecting on wrong association
* | Through associations should set both parent ids on join modelsSean Griffin2014-06-132-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | member = Member.new(club: Club.new) member.save! Before: member.current_membership.club_id # => nil After: member.current_membership.club_id # => club's id
* | Merge pull request #15674 from sgrif/sg-mutable-attributesMatthew Draper2014-06-143-1/+39
|\ \ | | | | | | Detect in-place changes on mutable AR attributes
| * | Detect in-place changes on mutable AR attributesSean Griffin2014-06-133-1/+39
| | | | | | | | | | | | | | | | | | We have several mutable types on Active Record now. (Serialized, JSON, HStore). We need to be able to detect if these have been modified in place.
* | | Reorder test which does not represent real world usageSean Griffin2014-06-131-2/+2
| | | | | | | | | | | | | | | | | | We don't generally modify our classes at runtime like this. Let's create the instance after the class is created. Original commit doesn't imply that this was intentional behavior.
* | | Merge pull request #15689 from sgrif/sg-attribute-methodsMatthew Draper2014-06-141-0/+8
|\ \ \ | | | | | | | | Ensure we always define attribute methods
| * | | Ensure we always define attribute methodsSean Griffin2014-06-131-0/+8
| | | |
* | | | Merge pull request #15593 from sgrif/sg-attributeRafael Mendonça França2014-06-136-21/+111
|\ \ \ \ | |/ / / |/| | | Introduce an Attribute object to handle the type casting dance
| * | | Introduce an Attribute object to handle the type casting danceSean Griffin2014-06-136-21/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a lot more that can be moved to these, but this felt like a good place to introduce the object. Plans are: - Remove all knowledge of type casting from the columns, beyond a reference to the cast_type - Move type_cast_for_database to these objects - Potentially make them mutable, introduce a state machine, and have dirty checking handled here as well - Move `attribute`, `decorate_attribute`, and anything else that modifies types to mess with this object, not the columns hash - Introduce a collection object to manage these, reduce allocations, and not require serializing the types
* | | | PG arrays should type cast user inputSean Griffin2014-06-131-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | We guarantee that `model.value` does not change after `model.save && model.reload`. This requires type casting user input for non-string types.
* | | | Add a test to ensure we don't get a performance regression on #hashSean Griffin2014-06-121-0/+7
| |/ / |/| |
* | | Update test data which doesn't reflect expected usageSean Griffin2014-06-121-6/+6
| | | | | | | | | | | | | | | | | | Topics call `serialize :content`, which means that the values in the database should be YAML encoded, and we would only expect to receive YAML strings to `update_column` and `update_columns`.
* | | Pluck should work with columns of the same name from different tablesSean Griffin2014-06-111-0/+7
|/ / | | | | | | | | | | | | | | The column name given by the adapter doesn't include the table namespace, so going through the hashed version of the result set causes overridden keys. Fixes #15649
* | rm cached attributesSean Griffin2014-06-111-35/+9
| | | | | | | | | | | | | | | | | | | | The original patch that added this concept can be found [here](https://web.archive.org/web/20090601022739/http://dev.rubyonrails.org/ticket/9767). The current default behavior is to cache everything except serialized columns, unless the user specified otherwise. If anyone were to specify otherwise, many types would actually be completely broken. Still, the method is left in place with a deprecation warning in case anyone is actually still calling this method.
* | remove deprecation call while initializing `ClassCache` objectKuldeep Aggarwal2014-06-111-6/+0
| |
* | Remove deprecated method ActiveRecord::Base.quoted_locking_columnAkshay Vishnoi2014-06-101-4/+0
| |
* | Merge pull request #15610 from sgrif/silence-warningsRafael Mendonça França2014-06-102-3/+3
|\ \ | | | | | | Fix warnings in tests
| * | Silence warnings in tests.Sean Griffin2014-06-102-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | ``` activerecord/test/cases/adapters/postgresql/range_test.rb:159: warning: (...) interpreted as grouped expression activerecord/test/cases/finder_test.rb:38: warning: shadowing outer local variable - e activerecord/test/cases/finder_test.rb:43: warning: shadowing outer local variable - e ```
* | | Keep the types of virtual columns after yaml serializationSean Griffin2014-06-101-1/+14
|/ / | | | | | | | | On MySQL and PostgreSQL, the adapter does not type cast virtual columns for us.
* | test, fix typo, `create_index` does not exist.Yves Senn2014-06-101-1/+1
| |
* | ActiveRecord::FinderMethods.find passes proc parameter #15382James Yang2014-06-101-0/+11
| |
* | Timestamp values should be present on callbacksRafael Mendonça França2014-06-091-18/+13
| | | | | | | | | | | | | | This reverts commit dd3ea17191e316aeebddaa7b176f6cfeee7a6365 and add a regression test. Fixes #15418
* | Rename `type_cast` to `type_cast_from_database`Sean Griffin2014-06-0912-101/+101
| | | | | | | | | | | | | | | | In some cases there is a difference between the two, we should always be doing one or the other. For convenience, `type_cast` is still a private method on type, so new types that do not need different behavior don't need to implement two methods, but it has been moved to private so it cannot be used accidentally.
* | Merge pull request #15587 from sgrif/sg-remove-workaroundRafael Mendonça França2014-06-091-15/+8
|\ \ | | | | | | Remove workaround for non-lazy serialize in tests
| * | Remove workaround for non-lazy serialize in testsSean Griffin2014-06-091-15/+8
| | | | | | | | | | | | `serialize` is now lazy, so the workaround is no longer needed.
* | | Make `_before_type_cast` actually be before type castSean Griffin2014-06-096-6/+12
|/ / | | | | | | | | | | | | | | | | | | | | | | | | - The following is now true for all types, all the time - `model.attribute_before_type_cast == given_value` - `model.attribute == model.save_and_reload.attribute` - `model.attribute == model.dup.attribute` - `model.attribute == YAML.load(YAML.dump(model)).attribute` - Removes the remaining types implementing `type_cast_for_write` - Simplifies the implementation of time zone aware attributes - Brings tz aware attributes closer to being implemented as an attribute decorator - Adds additional point of control for custom types
* | fix test cases after #15558 merge to master.Kuldeep Aggarwal2014-06-071-3/+3
| |
* | Merge pull request #15558 from sgrif/sg-rename-propertyRafael Mendonça França2014-06-075-17/+17
|\ \ | | | | | | | | | | | | | | | | | | | | | Rename `property` to `attribute` Conflicts: activerecord/lib/active_record/attribute_methods/serialization.rb activerecord/lib/active_record/base.rb
| * | Rename `property` to `attribute`Sean Griffin2014-06-075-17/+17
| | | | | | | | | | | | For consistency with https://github.com/rails/rails/pull/15557
* | | Merge pull request #15546 from sgrif/sg-lazy-decoratorsRafael Mendonça França2014-06-072-0/+119
|\ \ \ | | | | | | | | Don't query the database schema when calling `serialize`
| * | | Don't query the database schema when calling `serialize`Sean Griffin2014-06-072-0/+119
| | | | | | | | | | | | | | | | | | | | | | | | We need to decorate the types lazily. This is extracted to a separate API, as there are other refactorings that will be able to make use of it, and to allow unit testing the finer points more granularly.
* | | | Ensure time zones don't change after round trip with array columnsSean Griffin2014-06-071-0/+2
| | | | | | | | | | | | | | | | | | | | The times would be equivalent, even if they were in different time zones. E.g. 12:00 UTC == 5:00 PDT
* | | | Don't rely on `Time.current` in testsSean Griffin2014-06-071-5/+10
| |/ / |/| | | | | | | | Millisecond inequality causes failures on Travis
* | | Add array support when time zone aware attributes are enabledSean Griffin2014-06-071-0/+16
|/ /
* | Merge pull request #15533 from sgrif/sg-missing-schema-testsYves Senn2014-06-061-0/+29
|\ \ | | | | | | Add missing test cases for schema dumping defaults
| * | Add missing test cases for schema dumping defaultsSean Griffin2014-06-061-0/+29
| | |
* | | `ActiveRecord::SchemaMigration` has no primary key.Yves Senn2014-06-061-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, using `ActiveRecord::Base.primary_key_prefix_type` with `:table_name_with_underscore` would change the `SchemaMigration` model to have a primary key. This resulted in broken queries for PG because it tried to return the inserted PK (which does not exist). Closes #15051. Closes #15419.
* | | test refactor, don't hardcode default for `table_name_prefix`.Yves Senn2014-06-061-1/+2
| | |
* | | test refactor, don't hardcode `primary_key_prefix_type` default.Yves Senn2014-06-061-0/+3
| | | | | | | | | | | | /cc @zuhao
* | | serialized Type should delegate `type_cast_for_write` to underlying TypeYves Senn2014-06-061-0/+35
|/ / | | | | | | | | | | | | This adds a regression test for #14411, which was fixed by #15503. Closes #14411 Closes #14595
* | Merge pull request #15503 from sgrif/sg-json-hstore-storageYves Senn2014-06-065-4/+22
|\ \ | | | | | | Bring type casting behavior of hstore/json in line with serialized
| * | Bring type casting behavior of hstore/json in line with serializedSean Griffin2014-06-045-4/+22
| | | | | | | | | | | | | | | `@raw_attributes` should not contain the type-cast, mutable version of the value.
* | | `bin/rake db:migrate:status` works with legacy migration numbers.Yves Senn2014-06-061-0/+7
| | | | | | | | | | | | | | | | | | | | | The migration numbers were normalized different ways. This left the task output in an inconsistent state. Closes #15538.
* | | Merge pull request #14971 from versioncontrol/#14785Yves Senn2014-06-061-0/+9
|\ \ \ | | | | | | | | | | | | Baseclass becomes! subclass
| * | | Fix Baseclass becomes! subclass.Edo Balvers2014-05-131-0/+9
| | | |
* | | | Fix behavior of handling BC era dates.edogawaconan2014-06-051-0/+12
| | | | | | | | | | | | | | | | BC era year is (astronomical year + 1) and starts from 1 BC.
* | | | Merge pull request #15512 from akshay-vishnoi/delete-deprecated-methodYves Senn2014-06-051-41/+0
|\ \ \ \ | | | | | | | | | | | | | | | Remove deprecated method ActiveRecord::Migrator.proper_table_name
| * | | | Remove deprecated method ActiveRecord::Migrator.proper_table_nameAkshay Vishnoi2014-06-051-41/+0
| | | | |
* | | | | Fix inverse associations testLeandro Facchinetti2014-06-041-1/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | `InverseHasManyTests#test_parent_instance_should_be_shared_within_create_block_of_new_child` was mistakenly the same as `InverseHasManyTests#test_parent_instance_should_be_shared_within_build_block_of_new_child`.