aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Add HashWithIndifferentAccess#assocStefan Schüßler2019-01-301-0/+8
| | |
* | | Remove deprecated `Module#reachable?` methodRafael Mendonça França2019-01-171-51/+0
| | |
* | | Remove deprecated `#acronym_regex` method from `Inflections`Rafael Mendonça França2019-01-171-6/+0
| | |
* | | Fix safe_constantize to not raise a LoadError.Keenan Brock2019-01-092-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### Summary There was an issues when using `safe_constantize` on a string that has the wrong case. File `em.rb` defines `EM`. `"Em".safe_constantize` causes a little confusion with the autoloader. The autoloader finds file "em.rb", expecting it to define `Em`, but `Em` is not defined. The autoloader raises a `LoadError`, which is good, But `safe_constantize` is defined to return `nil` when a class is not found. ### Before ``` "Em".safe_constantize LoadError: Unable to autoload constant Em, \ expected rails/activesupport/test/autoloading_fixtures/em.rb to define it ``` ### After ``` "Em".safe_constantize # => nil ```
* | | Enable `Lint/UselessAssignment` cop to avoid unused variable warnings (#34904)Ryuta Kamizono2019-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Enable `Lint/UselessAssignment` cop to avoid unused variable warnings Since we've addressed the warning "assigned but unused variable" frequently. 370537de05092aeea552146b42042833212a1acc 3040446cece8e7a6d9e29219e636e13f180a1e03 5ed618e192e9788094bd92c51255dda1c4fd0eae 76ebafe594fc23abc3764acc7a3758ca473799e5 And also, I've found the unused args in c1b14ad which raises no warnings by the cop, it shows the value of the cop.
* | | Merge pull request #34700 from gmcgibbon/fetch_multi_key_orderRafael França2019-01-071-1/+9
|\ \ \ | | | | | | | | Preserve key order of #fetch_multi
| * | | Preserve key order passed to ActiveSupport::CacheStore#fetch_multiGannon McGibbon2018-12-271-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | fetch_multi(*names) now returns its results in the same order as the `*names` requested, rather than returning cache hits followed by cache misses.
* | | | Tweak test nameGeorge Claghorn2018-12-301-1/+1
| | | |
* | | | Make Active Storage blob keys lowercaseJulik Tarkhanov2018-12-301-0/+20
| | | | | | | | | | | | Accommodate case-insensitive filesystems and database collations.
* | | | No need to handle if FrozenError is availableYasuo Honda2018-12-232-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rails 6 requires Ruby 2.5, which introduces `FrozenError` https://docs.ruby-lang.org/en/2.5.0/NEWS.html Related to #31520
* | | | Fixes `warning: mismatched indentations at 'rescue' with 'def' at 15`.utilum2018-12-211-2/+2
| | | | | | | | | | | | | | | | See https://travis-ci.org/rails/rails/jobs/470890129#L2361
* | | | Merge pull request #34764 from kamipo/avoid_redundant_beginRyuta Kamizono2018-12-215-140/+123
|\ \ \ \ | | | | | | | | | | Enable `Style/RedundantBegin` cop to avoid newly adding redundant begin block
| * | | | Enable `Style/RedundantBegin` cop to avoid newly adding redundant begin blockRyuta Kamizono2018-12-215-140/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we sometimes find a redundant begin block in code review (e.g. https://github.com/rails/rails/pull/33604#discussion_r209784205). I'd like to enable `Style/RedundantBegin` cop to avoid that, since rescue/else/ensure are allowed inside do/end blocks in Ruby 2.5 (https://bugs.ruby-lang.org/issues/12906), so we'd probably meets with that situation than before.
* | | | | Merge pull request #33822 from y-yagi/do_not_check_parents_dor_directoriesYuji Yaginuma2018-12-211-0/+28
|\ \ \ \ \ | | | | | | | | | | | | Do no watch parent directory of `dirs`
| * | | | | Do not add parent directory to file system monitoringyuuji.yaginuma2018-12-181-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `EventedFileUpdateChecker` will search the parent directory if the specified directory does not exist. Since `test/mailers/previews` is included in the watch target by default, if there is no test directory (e.g. using `rspec`), the Rails root directory will be included in the watch target. ``` $ rails new app $ cd app $ ./bin/rails r "p Rails.application.reloaders.last.send(:directories_to_watch).include?(Rails.root)" false $ rm -rf test $ ./bin/rails r "p Rails.application.reloaders.last.send(:directories_to_watch).include?(Rails.root)" true ``` This causes `node_modules` to be included in watch target. Adding parent directories to watch target may include unexpected directories. In order to avoid this, fixed that parents of nonexistent directories are not added to the watch targets, instead checking that the directory exists when checking changes. Related to #32700. [Matthew Draper & Yuji Yaginuma]
* | | | | | Add test for `travel_to` with time zoneyuuji.yaginuma2018-12-211-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | This is a regression test for #34751.
* | | | | | Merge pull request #34762 from bogdanvlviv/fix-a-few-deprecation-warningsKasper Timm Hansen2018-12-201-28/+6
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Follow up #34754
| * | | | | Follow up #34754bogdanvlviv2018-12-201-28/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fix a few deprecation warnings - Remove testing of `Hash#slice` - Imporve test of `Hash#slice!` - Remove mention about `Hash#slice` from the guide
* | | | | | Module#{define_method,alias_method,undef_method,remove_method} become public ↵Ryuta Kamizono2018-12-211-1/+1
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | since Ruby 2.5 https://bugs.ruby-lang.org/issues/14133
* | | | | Remove remaining tests for `Hash#transform_keys` and `Hash#transform_keys!`Ryuta Kamizono2018-12-211-27/+0
| | | | | | | | | | | | | | | | | | | | Follow up #34761.
* | | | | Use native `Array#append`, `Array#prepend`, `Hash#transform_keys`, and ↵Ryuta Kamizono2018-12-202-71/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `Hash#transform_keys!` Since Rails 6 requires Ruby 2.5. https://github.com/ruby/ruby/blob/ruby_2_5/NEWS Follow up #34754.
* | | | | Extend documentation of `ActiveSupport::Notifications.subscribe` (#34721)Bogdan2018-12-171-1/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Extend documentation of `ActiveSupport::Notifications.subscribe` Add mention that a block with only one argument passed to the method will yield an event object. Related to #33451 * Emphasize that `SubscribeEventObjects` is a test class by adding suffix `Test`
* | | | Test ActiveSupport::Deprecation.deprecate_methodsYosuke Kabuto2018-12-141-0/+7
| | | | | | | | | | | | | | | | There was no test without an alternate method name is given.
* | | | Enable `Layout/SpaceAfterSemicolon` cop to avoid newly adding odd spacingRyuta Kamizono2018-12-131-1/+1
|/ / / | | | | | | | | | Ref https://github.com/rails/rails/commit/59ff1ba30d9f4d34b4d478104cc3f453e553c67a#diff-38fb97fba84b1ef0f311c4110a597c44R35
* | / Make `deprecate` work for non-exists methodsyuuji.yaginuma2018-12-071-0/+7
| |/ |/| | | | | | | | | | | | | Before #33325, `deprecate` works for non-exist methods. This is necessary, for example, if want to deprecate dynamically defined methods like attributes methods. Fixes #34646
* | Do nothing when the same block is included again.Mark J. Titorenko2018-11-292-0/+19
| | | | | | | | | | | | | | | | | | If the same block is included multiple times, we no longer raise an exception or overwrite the included block instance variable. Fixes #14802. [Mark J. Titorenko + Vlad Bokov]
* | Merge pull request #34037 from reitermarkus/atomic_write-permissionsRafael França2018-11-221-0/+14
|\ \ | | | | | | `atomic_write`: Ensure correct permission when `tmpdir` is the same as `dirname`.
| * | Ensure correct permission when `tmpdir` is the same as `dirname`.Markus Reiter2018-10-021-0/+14
| | |
* | | Fix ruby warningsyuuji.yaginuma2018-11-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes following warnings: ``` test/dependencies_test.rb:287: warning: possibly useless use of :: in void context test/dependencies_test.rb:300: warning: possibly useless use of a constant in void context ```
* | | Add test for normalizing non-unicode stringFumiaki MATSUSHIMA2018-11-151-0/+10
| |/ |/| | | | | Closes #34062
* | Make #to_options an alias for #symbolize_keysNick Weiland2018-11-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Fixes #34359 Prior to 5.2.0 (2cad8d7), HashWithIndifferentAccess#to_options acted as an alias to HashWithIndifferentAccess#symbolize_keys. Now, #to_options returns an instance of HashWithIndifferentAccess while #symbolize_keys returns and instance of Hash. This pr makes it so HashWithIndifferentAccess#to_options acts as an alias for HashWithIndifferentAccess#symbolize_keys once again.
* | Improve the logic that detects non-autoloaded constantsJan Habermann2018-10-284-0/+47
| | | | | | | | | | | | | | If you require `nokogiri` from `app/models/user.rb`, dependencies.rb does not mark `Nokogiri` as an autoloaded constant, as expected. But the logic to detect these non-autoloaded constants is incomplete. See the tests defined in the patch for some cases incorrectly handled.
* | Merge pull request #34208 from yskkin/inspect_with_parameter_filterRyuta Kamizono2018-10-261-0/+54
|\ \ | | | | | | Implement AR#inspect using ParameterFilter
| * | Implement AR#inspect using ParamterFilter.Yoshiyuki Kinjo2018-10-191-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | AR instance support `filter_parameters` since #33756. Though Regex or Proc is valid as `filter_parameters`, they are not supported as AR#inspect. I also add :mask option and #filter_params to `ActiveSupport::ParameterFilter#new` to implement this.
* | | `assert_called_with` should require `args` argumentbogdanvlviv2018-10-252-13/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two main reasons why `assert_called_with` should require `args` argument: 1) If we want to assert that some method should be called and we don't need to check with which arguments it should be called then we should use `assert_called`. 2) `assert_called_with` without `args` argument doesn't assert anything! ```ruby assert_called_with(@object, :increment) do @object.decrement end ``` It causes false assertions in tests that could cause regressions in the project. I found this bug by working on [minitest-mock_expectations](https://github.com/bogdanvlviv/minitest-mock_expectations) gem. This gem is an extension for minitest that provides almost the same method call assertions. I was wondering whether you would consider adding "minitest-mock_expectations" to `rails/rails` instead of private `ActiveSupport::Testing::MethodCallAssertions` module. If yes, I'll send a patch - https://github.com/bogdanvlviv/rails/commit/a970ecc42c3a9637947599f2c13e3762e4b59208
* | | Use String#truncate_bytes inside Multibyte::Chars#limitFrancesco Rodríguez2018-10-201-18/+0
| | |
* | | Deprecate Unicode's #pack_graphemes and #unpack_graphemes methodsFrancesco Rodríguez2018-10-181-4/+6
| | | | | | | | | | | | in favor of `array.flatten.pack("U*")` and `string.scan(/\X/).map(&:codepoints)`, respectively.
* | | Deprecate ActiveSupport::Multibyte::Chars.consumes?Francesco Rodríguez2018-10-151-3/+9
| | | | | | | | | | | | | | | | | | In favor of String#is_utf8?. I think this method was made for internal use only, and its usage was removed here: https://github.com/rails/rails/pull/8261/files#diff-ce956ebe93786930e40f18db1da5fd46L39.
* | | Fix issue where duration where always rounded up to a second:Edouard CHIN2018-10-121-2/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Adding a Float as a duration to a datetime would result in the Float being rounded. Doing something like would have no effect because the 0.45 seconds would be rounded to 0 second. ```ruby time = DateTime.parse("2018-1-1") time += 0.45.seconds ``` This behavior was intentionally added a very long time ago, the reason was because Ruby 1.8 was using `Integer#gcd` in the constructor of Rational which didn't accept a float value. That's no longer the case and doing `Rational(0.45, 86400)` would now perfectly work fine. - Fixes #34008
* | Deprecate Unicode#normalize and Chars#normalize (#34202)Francesco Rodríguez2018-10-123-106/+163
| |
* | Use native String#capitalizeFrancesco Rodríguez2018-10-121-1/+1
| |
* | Deprecate Unicode#downcase/upcase/swapcase.Francesco Rodríguez2018-10-121-0/+6
| | | | | | | | Use String methods directly instead.
* | Test that nested structs to_json works as expectedEileen Uchitelle2018-10-111-0/+10
| | | | | | | | | | Check that options passed to the to_json are passed to all objects that respond to as_json.
* | Deprecate ActionDispatch::Http::ParameterFilter in favor of ↵Yoshiyuki Kinjo2018-10-081-0/+51
| | | | | | | | ActiveSupport::ParameterFilter
* | Array with single item correctly uses cache_keyGraham Turner2018-10-051-0/+49
| |
* | Bugfix: ActiveSupport::EncryptedConfiguration reading of comment-only ↵Martin Spickermann2018-10-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | encrypted files (#34014) * Fix reading comment only encrypted files When a encrypted file contains only comments then reading that files raises an error: NoMethodError: undefined method `deep_symbolize_keys' for false:FalseClass activesupport/lib/active_support/encrypted_configuration.rb:33:in `config' test/encrypted_configuration_test.rb:52:in `block in <class:EncryptedConfigurationTest>' This happens because the previous implementation returned a `{}` fallback for blank YAML strings. But it did not handle YAML strings that are present but still do not contain any _usefull_ YAML - like the file created by `Rails::Generators::EncryptedFileGenerator` which looks like this: # aws: # access_key_id: 123 # secret_access_key: 345 * Fix coding style violation * Add backwardscompatible with Psych versions that were shipped with Ruby <2.5 * Do not rely on railties for Active Support test * Simplify error handling * Improve test naming * Simplify file creation in test
* | Don't use deprecated `LoggerSilence`yuuji.yaginuma2018-10-041-1/+1
| |
* | Merge pull request #34055 from Edouard-chin/ec-logger-fixRafael França2018-10-032-1/+37
|\ \ | | | | | | Fix the LoggerSilence to work as described:
| * | Fix the LoggerSilence to work as described:Edouard CHIN2018-10-022-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Following the Rails guide which state that a logger needs to include the `ActiveSupport::LoggerSilence` as well as `ActiveSupport::LoggerThreadSafe` modules isn't enough and won't work. Here is a test cases with 3 tests that all fails https://gist.github.com/Edouard-chin/4a72930c2b1eafbbd72a80c66f102010 The problems are the following: 1) The logger needs to call `after_initialize` in order to setup some instance variables. 2) The silence doesn't actually work because the bare ruby Logger `add` method checks for the instance variable `@logger`. We need to override the `add` (like we used to in the ActiveSupport::Logger class). 3) Calling `debug?` `info?` etc... doesn't work as the bare ruby methods will check for the instance variable. Again we need to override this methods (like we used to in the ActiveSupport::Logger class) The LoggerSilence won't work without LoggerThreadSafe, but the later is not public API, the user shouldn't have to include it so I modified to include it automatically. Same for the `after_initialize` method. I find unuintitive to have to call it directly. I modified to instance the variables when the module get included.
* | | :warning: assigned but unused variable - loggerAkira Matsuda2018-10-031-1/+1
|/ /