aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge pull request #27610 from Envek/fix_and_speed_up_duration_parsingAndrew White2017-01-122-5/+6
|\ | | | | Fix inconsistent parsing of Durations with both months and years
| * Fix inconsistent results when parsing large durations and constructing ↵Andrey Novikov2017-01-092-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | durations from code ActiveSupport::Duration.parse('P3Y') == 3.years # It should be true Duration parsing made independent from any moment of time: Fixed length in seconds is assigned to each duration part during parsing. Changed duration of months and years in seconds to more accurate and logical: 1. The value of 365.2425 days in Gregorian year is more accurate as it accounts for every 400th non-leap year. 2. Month's length is bound to year's duration, which makes sensible comparisons like `12.months == 1.year` to be `true` and nonsensical ones like `30.days == 1.month` to be `false`. Calculations on times and dates with durations shouldn't be affected as duration's numeric value isn't used in calculations, only parts are used. Methods on `Numeric` like `2.days` now use these predefined durations to avoid duplicating of duration constants through the codebase and eliminate creation of intermediate durations.
* | Use Encoding::UTF_8 constant for default_{internal,external} in the testsAkira Matsuda2017-01-111-2/+2
| |
* | Make time travel work with subclasses of Time/Date/DatetimeJonas Nicklas2017-01-101-0/+19
|/ | | | | Closes #27614 Previously when calling `now` on a subclass of e.g. `Time` it would return an instance of `Time` instead of returning an instance of the subclass. This way, we always return the correct class.
* Merge pull request #27392 from y-yagi/use_same_class_on_compactSean Griffin2017-01-061-0/+10
|\ | | | | ensure `#compact` of HWIDA to return HWIDA
| * ensure `#compact` of HWIDA to return HWIDAyuuji.yaginuma2017-01-061-0/+10
| | | | | | | | | | | | | | | | `Hash#compact` of Ruby native returns new hash. Therefore, in order to return HWIDA as in the past version, need to define own `#compact` to HWIDA. Related: #26868
* | Fix style guide violationsRafael Mendonça França2017-01-051-1/+1
|/
* Merge pull request #27520 from ↵Rafael França2017-01-011-11/+21
|\ | | | | | | | | prathamesh-sonpatki/merge-uncountable-tests-for-inflector Make the tests for uncountability of ascii and non-ascii words uniform
| * Make the tests for uncountability of ascii and non-ascii words uniformPrathamesh Sonpatki2016-12-311-11/+21
| |
* | Fix Symbol#duplicable? for Ruby 2.4.0.Kasper Timm Hansen2017-01-011-2/+2
|/ | | | | | | | | | | | | Ruby 2.4.0 has trouble duplicating certain symbols created from strings via `to_sym`. It didn't happen with `'symbol'.to_sym.dup` for some reason, but works fine with the longer string sample. Once a newer Ruby version with a fix is released we'll get have a failing test case we can fix. Ref: #27532
* Merge pull request #12509 from eitoball/pluralize_for_non_ascii_character_wordsMatthew Draper2016-12-311-0/+8
|\ | | | | | | | | | | Fix ActiveSupport::Inflector.pluralize behavior for words that consist of non-ASCII characters (test only; the original bug was fixed by 1bf50badd943e684a56a03392ef0ddafefca0ad7)
| * fix pluralize behavior for words that consist of non-ascii charactersEito Katagiri2015-07-021-0/+9
| | | | | | | | | | | | | | | | | | | | The code below returns "猫" in 3.2, but "猫s" in 4.0. ```ruby ActiveSupport::Inflector.inflections do |inflect| inflect.uncountable "猫" end "猫".pluralize ```
* | Fix Rubocop violations and fix documentation visibilityRafael Mendonça França2016-12-282-2/+2
| | | | | | | | | | | | Some methods were added to public API in 5b14129d8d4ad302b4e11df6bd5c7891b75f393c and they should be not part of the public API.
* | assert_equal takes expectation firstAkira Matsuda2016-12-266-45/+45
| |
* | "Use assert_nil if expecting nil from ...:in `...'. This will fail in ↵Akira Matsuda2016-12-252-3/+3
| | | | | | | | minitest 6."
* | Expectation firstAkira Matsuda2016-12-252-5/+5
| |
* | "Use assert_nil if expecting nil from ...:in `...'. This will fail in MT6."Akira Matsuda2016-12-251-1/+1
| |
* | "Use assert_nil if expecting nil. This will fail in minitest 6."Akira Matsuda2016-12-2516-39/+39
| |
* | Privatize unneededly protected methods in Active Support testsAkira Matsuda2016-12-247-8/+8
| |
* | Fix Complex and Rational are duplicable?utilum2016-12-211-2/+2
| | | | | | | | See [this test](https://gist.github.com/utilum/78918f1b64f8b61ee732cb266db7c43a).
* | Merge pull request #27366 from utilum/avoid_fixnum_warningMatthew Draper2016-12-181-1/+1
|\ \ | | | | | | Fix Fixnum deprecated warning in Ruby 2.4+
| * | Fix Fixnum deprecated warning in Ruby 2.4+utilum2016-12-161-1/+1
| | |
* | | Merge pull request #27368 from matthewd/doubled-callbacksMatthew Draper2016-12-161-15/+68
|\ \ \ | |/ / |/| | Support double-yield inside an around callback
| * | Support double-yield inside an around callbackMatthew Draper2016-12-151-15/+68
| | | | | | | | | | | | | | | | | | | | | It's questionable whether this is a good thing -- it forces any later/ inner callback to handle multiple invocations, along with the actual wrapped action. But it worked prior to 871ca21f6a1d65c0ec78cb5a9641411e2210460b, so we shouldn't break it unintentionally.
* | | Fix constantize edge case involving prepend, autoloading and name conflictsJean Boussier2016-12-143-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the following situation: ```ruby class Bar end module Baz end class Foo prepend Baz end class Foo::Bar end ``` Running `Inflector.constantize('Foo::Bar')` would blow up with a NameError. What is happening is that `constatize` was written before the introduction of prepend, and wrongly assume that `klass.ancestors.first == klass`. So it uses `klass.ancestors.inject` without arguments, as a result a prepended module is used in place of the actual class.
* | | fix new warning in ruby 2.4yuuji.yaginuma2016-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the following warning. ``` test/caching_test.rb:986: warning: parentheses after method name is interpreted as test/caching_test.rb:986: warning: an argument list, not a decomposed argument test/cases/adapters/mysql2/reserved_word_test.rb:146: warning: parentheses after method name is interpreted as test/cases/adapters/mysql2/reserved_word_test.rb:146: warning: an argument list, not a decomposed argument ``` Ref: https://github.com/ruby/ruby/commit/65e27c8b138d6959608658ffce2fa761842b8d24
* | | change return value of `duplicable?` with Ruby 2.4+yuuji.yaginuma2016-12-131-2/+7
| | | | | | | | | | | | | | | | | | | | | `NilClass`, `FalseClass`, `TrueClass`, `Symbol` and `Numeric` can dup with Ruby 2.4+. Ref: https://bugs.ruby-lang.org/issues/12979
* | | :nail_care:Akira Matsuda2016-12-131-2/+1
| | |
* | | nil, true, 1, etc. don't raise on #dup since Ruby 2.4Akira Matsuda2016-12-131-1/+1
|/ / | | | | | | https://bugs.ruby-lang.org/issues/12979
* | Exclude singleton classes from `subclasses` and `descendants`Sean Griffin2016-12-011-0/+10
| | | | | | | | | | | | | | | | This behavior changed in Ruby starting with 2.3.0, as a result of https://bugs.ruby-lang.org/issues/11360. This results in a change in behavior of these methods which is likely undesirable. Fixes #27238
* | Treat combined durations as a single unitSean Griffin2016-11-291-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | Prior to this commit, `3.months - 3.months` would result in a duration that has the "parts" of `[[:months, 3], [:months, -3]]`. This would mean that it was subtly different than `2.months - 2.months`. When applied to a time, the date might actually change if the resulting day doesn't exist however many months in the future, even though in both cases we just wanted to add `0`, which should always be an identity operation. With this change, we now store the parts as a hash, so `3.months - 3.months` is simply stored as `{ months: 0 }`.
* | use public Module#include instead of send :includeyuuji.yaginuma2016-11-271-1/+1
| | | | | | | | Follow up to #18767
* | Merge pull request #26874 from tgxworld/fix_broadcast_loggerMatthew Draper2016-11-251-3/+19
|\ \ | | | | | | `Broadcast#silence` breaks custom loggers that do not include `Logg…
| * | `Broadcast#silence` breaks custom loggers that does not include `LoggerSilence`.Guo Xiang Tan2016-10-241-3/+19
| | |
* | | ✂️ needless lines beneath private.Kasper Timm Hansen2016-11-206-6/+0
| | |
* | | Move tests to a module, include in subclasses, style lintingJon Moss2016-11-201-188/+195
| | | | | | | | | | | | | | | | | | | | | | | | This fixes an error where the test runner would try and run XMLMiniEngineTest like a normal test class, except it's abstract. Now, to circumvent this, we don't include any of the actual tests in XMLMiniEngineTest; they are wrapped in a module that is included in subclass when they inherit from XMLMiniEngineTest. Pretty neat, huh?
* | | Create XMLMiniEngineTest; base class for all testsJon Moss2016-11-207-63/+33
| | |
* | | Code styling cleanupJon Moss2016-11-207-152/+162
| | |
* | | Create `CommonXMLMiniAdapterTest`; common tests moduleJon Moss2016-11-207-916/+279
| | | | | | | | | | | | | | | | | | Created a new module (a la Action Cable subscription adapter's test suite) to be included in all sub class test to ensure compatability and reduce duplicated code.
* | | Do not include `ActiveSupport` into test classesJon Moss2016-11-193-33/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Will help get rid of errors like the following: ``` 1) Error: JDOMEngineTest#test_order=: ArgumentError: wrong number of arguments (0 for 1) /Users/jon/code/rails/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb:106:in `test_order=' ```
* | | Call fallback exception handlers with the right exceptionSean Griffin2016-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The issue presented in #26246 showed a deeper underlying problem. When we fell back to the exception handler for an exceptions cause, we were calling that handler with the outer raised exception. This breaks the calling code's expectations, especially if the exception has methods on it behond those from `StandardError`.
* | | Merge pull request #27035 from rails/remove-active-support-deprecationsAndrew White2016-11-149-457/+0
|\ \ \ | | | | | | | | Remove Active Support deprecations
| * | | Remove deprecated separator argument from parameterizeAndrew White2016-11-142-34/+0
| | | |
| * | | Remove deprecated method Numeric#to_formatted_sAndrew White2016-11-141-6/+0
| | | |
| * | | Remove deprecated method alias_method_chainAndrew White2016-11-141-215/+0
| | | |
| * | | Remove deprecated constant MissingSourceFIleAndrew White2016-11-141-8/+0
| | | |
| * | | Remove deprecated Module.qualified_const_get/set/defined?Andrew White2016-11-141-118/+0
| | | |
| * | | Remove deprecated :prefix optionAndrew White2016-11-132-32/+0
| | | |
| * | | Remove deprecated new_from_hash_copying_defaultAndrew White2016-11-131-7/+0
| | | |
| * | | Remove deprecated local_constantsAndrew White2016-11-131-10/+0
| | | |