aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
Commit message (Collapse)AuthorAgeFilesLines
...
* | Prevent Relation#merge from collapsing wheres on the RHSJon Leighton2013-01-276-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This caused a bug with the new associations implementation, because now association conditions are represented as Arel nodes internally right up to when the whole thing gets turned to SQL. In Rails 3.2, association conditions get turned to raw SQL early on, which prevents Relation#merge from interfering. The current implementation was buggy when a default_scope existed on the target model, since we would basically end up doing: default_scope.merge(association_scope) If default_scope contained a where(foo: 'a') and association_scope contained a where(foo: 'b').where(foo: 'c') then the merger would see that the same column is representated on both sides of the merge and collapse the wheres to all but the last: where(foo: 'c') Now, the RHS of the merge is left alone. Fixes #8990
* | Fix cases where delete_records on a has_many association caused errorsDerek Kraan2013-01-273-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | because of an ambiguous column name. This happened if the association model had a default scope that referenced a third table, and the third table also referenced the original table (with an identical foreign_key). Mysql requires that ambiguous columns are deambiguated by using the full table.column syntax. Postgresql and Sqlite use a different syntax for updates altogether (and don't tolerate table.name syntax), so the fix requires always including the full table.column and discarding it later for Sqlite and Postgresql.
* | Fix handling of dirty time zone aware attributesLilibeth De La Cruz2013-01-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when `time_zone_aware_attributes` were enabled, after changing a datetime or timestamp attribute and then changing it back to the original value, `changed_attributes` still tracked the attribute as changed. This caused `[attribute]_changed?` and `changed?` methods to return true incorrectly. Example: in_time_zone 'Paris' do order = Order.new original_time = Time.local(2012, 10, 10) order.shipped_at = original_time order.save order.changed? # => false # changing value order.shipped_at = Time.local(2013, 1, 1) order.changed? # => true # reverting to original value order.shipped_at = original_time order.changed? # => false, used to return true end
* | `#count` in conjunction with `#uniq` performs distinct count.Yves Senn2013-01-261-0/+4
| | | | | | | | closes #6865
* | Remove obsolete test fileJon Leighton2013-01-251-35/+0
| | | | | | | | https://github.com/rails/rails/commit/4beb4dececcf10c642c74fbcb8548c833e921a86#commitcomment-2482869
* | reduce the number of queries on IN clauses, fix relation queries in `where`Aaron Patterson2013-01-241-1/+14
| |
* | Describing the reason for defining BlankTopic#blank? which will never be calledAkira Matsuda2013-01-241-0/+1
| |
* | Revert "Unused methods, module, etc."Akira Matsuda2013-01-244-0/+28
| | | | | | | | | | | | This reverts commit 4e05bfb8e254c3360a3ca4a6cb332995314338fe. Reason: BlankTopic#blank? should not be removed to check that dynamic finder with a bang can find a model that responds to `blank?`
* | Unused methods, module, etc.Akira Matsuda2013-01-244-28/+0
| |
* | Set Thread.abort_on_exception for the whole AS, AP, and AR testsAkira Matsuda + Koichi Sasada2013-01-241-0/+2
| | | | | | | | this would give us some more clues in case a test silently dies inside Thread
* | Unused test modelAkira Matsuda2013-01-241-5/+0
| |
* | Goodbye there, very special rubbish!Akira Matsuda2013-01-244-19/+1
| |
* | proxy_{owner,reflection,target} are no more availableAkira Matsuda2013-01-241-11/+1
| |
* | Unused model DeprecatedPostWithCommentAkira Matsuda2013-01-241-7/+0
| |
* | Fix PostgreSQL tests on TravisAndrew White2013-01-242-11/+32
| | | | | | | | Travis only has PostgreSQL 9.1.x but 9.2 is required for range datatypes.
* | Merge pull request #7345 from slbug/masterRafael Mendonça França2013-01-233-118/+295
|\ \ | | | | | | Postgresql range support
| * | Add postgresql range types supportbUg2013-01-233-118/+295
| | |
* | | Remove warning by using a custom coderAndrew White2013-01-231-2/+16
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | The native JSON library bypasses the `to_json` overrides in active_support/core_ext/object/to_json.rb by calling its native implementation directly. However `ActiveRecord::Store` uses a HWIA so `JSON.dump` will call our `to_json` instead with a `State` object for options rather than a `Hash`. This generates a warning when the `:encoding`, `:only` & `:except` keys are accessed in `Hash#as_json` because the `State` object delegates unknown keys to `instance_variable_get` in its `:[]` method. Workaround this warning in the test by using a custom coder that calls `ActiveSupport::JSON.encode` directly.
* | A test case name needs to start with "test_"Akira Matsuda2013-01-231-1/+1
| |
* | Revert "Round usec when writing timestamp attribute."Andrew White2013-01-221-15/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit e9d2ad395ec2ef929d74752f3d71c80674044fbe. Closes #8460 Conflicts: activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb activerecord/test/cases/dirty_test.rb
* | Add failing test case for #8460Andrew White2013-01-221-0/+14
| | | | | | | | Add a test case to ensure that fractional second updates are detected.
* | Whitespaces :scissors:Rafael Mendonça França2013-01-221-7/+4
| | | | | | | | [ci skip]
* | Reset SchemaMigration after updatingAkira Matsuda2013-01-221-0/+1
| |
* | Preload some join table schemasAkira Matsuda2013-01-221-0/+9
| |
* | Be sure to clear schema cacheAkira Matsuda2013-01-221-0/+3
| |
* | Reset table_name_{prefix,suffix}, and table_name after each testAkira Matsuda2013-01-221-11/+4
| | | | | | | | because some tests were not resetting them, and thus the tests were order dependent
* | Missing repair_validationsAkira Matsuda2013-01-221-12/+14
| |
* | Refactored transaction state into its own object. Each transaction creates a ↵wangjohn2013-01-211-2/+10
| | | | | | | | new transaction state object upon initialization.
* | Remove extra sort from testVipul A M2013-01-211-3/+3
| | | | | | | | Cleanup change_schema tests to remove extra sorts on columns.
* | Merge pull request #8913 from ↵Carlos Antonio da Silva2013-01-202-0/+10
|\ \ | | | | | | | | | | | | seejee/regression_test_for_chained_preloaded_scopes Added test case to prevent regression of chained, preloaded scopes.
| * | Added test case to prevent regression of chained, preloaded scopes. (#7490)Chris Geihsler2013-01-192-0/+10
| | |
* | | Merge pull request #9006 from wangjohn/activerecord_transaction_stateAaron Patterson2013-01-201-0/+20
|\ \ \ | | |/ | |/| Created state for a transaction and added tests.
| * | Created state for a transaction and added tests.wangjohn2013-01-201-0/+20
| | |
* | | Don't use anonymous classes in connection testsGuillermo Iguaran2013-01-191-3/+5
|/ /
* | Anonymous class is not allowed. For reference see #8934 and bc43763247e25Guillermo Iguaran2013-01-191-4/+6
| |
* | fix anonymous class issueDavid2013-01-201-0/+14
| |
* | Merge pull request #8994 from Springest/fix_default_scope_update_all_delete_allJon Leighton2013-01-182-0/+31
|\ \ | | | | | | Fix .update_all and .delete_all when using a condition on a joined table in a default_scope
| * | Fix .update_all and .delete_all when using a condition on a joined tableDerek Kraan2013-01-112-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | in a default_scope. `Model.joins(...).where(condition_on_joined_table).update_all` / `delete_all` worked, but the same operation implemented with a default_scope generated a SQL error because ActiveRecord ignored the join but implemented the where condition anyways.
* | | Revert "Merge pull request #8989 from robertomiranda/use-rails-4-find-by"Guillermo Iguaran2013-01-1814-55/+55
| | | | | | | | | | | | | | | This reverts commit 637a7d9d357a0f3f725b0548282ca8c5e7d4af4a, reversing changes made to 5937bd02dee112646469848d7fe8a8bfcef5b4c1.
* | | Merge pull request #8989 from robertomiranda/use-rails-4-find-byGuillermo Iguaran2013-01-1814-55/+55
|\ \ \ | | | | | | | | Replace deprecated find_by_* with find_by
| * | | User Rails 4 find_byrobertomiranda2013-01-1814-55/+55
| | | |
* | | | Undeprecate the :extend optionJon Leighton2013-01-182-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Suggested by @dhh. It doesn't affect the generated SQL, so seems reasonable to continue to allow it as an association option.
* | | | CollectionProxy should be default scopedJon Leighton2013-01-181-0/+5
| | | | | | | | | | | | | | | | Fixes #8795
* | | | Merge pull request #8912 from senny/8879_association_empty_methodJon Leighton2013-01-181-0/+7
|\ \ \ \ | |/ / / |/| | | `CollectionAssociation#empty?` respects newly builded records
| * | | `CollectionAssociation#empty?` respects newly builded recordsYves Senn2013-01-131-0/+7
| | |/ | |/|
* | | Don't rely on Hash key's orderingVitor Baptista2013-01-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we set encoding latin1 for a PostgreSQL database, it calls PostgreSQLAdapter::create_database with options that have, among other things: { 'encoding' => 'latin1' } Then, we use reverse_merge(:encoding => "utf8") to setup the default encoding. In the end, the hash looks like: { :encoding => 'utf8', 'encoding' => 'latin1' } The call to options.symbolize_keys calls to_sym on each_key of this Hash. It usually means that the encoding passed overwrites the default utf8, but it's not guaranteed. So, we shouldn't rely on it. The same was happening in ActiveRecord::ConnectionHandling.
* | | Revert "Merge pull request #8942 from yahonda/tested_only_with_mysql"Carlos Antonio da Silva2013-01-151-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1fc294f988e93ac59057a16b0e44b9cf93af9720, reversing changes made to fb9ac47c286fbdfe05263d4d0346e50892090603. Reason: these tests should run fine independent of database, since they should only take into account the configuration options. The problem was related to a change in the way "nil" is handled by the rescue clause, in Ruby 2.0 it raises an exception asking for class or module, in 1.9 it passes.
* | | Address test_create_when_database_exists_outputs_info_to_stderr failuresYasuo Honda2013-01-151-0/+4
|/ / | | | | | | | | When tested with ruby-2.0.0-rc1 `rake test` executes this test even if the target adapter is not mysql nor mysql2.
* / Bring back "database already exists" messages when running rake tasksCarlos Antonio da Silva2013-01-123-7/+27
|/ | | | | | | | | | When running tasks such "rake db:setup", instead of showing messages like "db_development already exists", it was showing a big stack trace and a message "Couldn't create database for ..." with the configuration options, a very confusing message with a big trace. This brings back the functionality present in 3-2, showing the same message.
* Merge pull request #8568 from inossidabile/fix-in_clause_lengthJon Leighton2013-01-111-7/+7
|\ | | | | Correct source for in_clause_length for eager loading (Fix for #8474)