aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge pull request #26684 from matthewd/executor-serialMatthew Draper2016-10-051-0/+55
|\ | | | | Avoid bumping the class serial when invoking executor
| * Avoid bumping the class serial when invoking executorMatthew Draper2016-10-031-0/+55
| |
* | Revert "Merge pull request #26677 from tbalthazar/26644"Andrew White2016-10-021-6/+0
|/ | | | | | | | Turns out trying to cache on localtime with arguments is too hard so we'll do it on DateAndTime::Compatibility#to_time instead. This reverts commit 9ce2d1b1a43fc4ef3db59849b7412d30583a4074, reversing changes made to 53ede1aff2025d4391d0e05ba471fdaf3110a99c.
* Merge pull request #26677 from tbalthazar/26644Andrew White2016-10-011-0/+6
|\ | | | | Fix `ActiveSupport::TimeWithZone#localtime`
| * Fix `ActiveSupport::TimeWithZone#localtime`Thomas Balthazar2016-10-011-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously memoization in `localtime` wasn't taking the `utc_offset` parameter into account when returning a cached value. It now caches the computed value depending on the `utc_offset` parameter, e.g: Time.zone = "US/Eastern" t = Time.zone.local(2016,5,2,11) # => Mon, 02 May 2016 11:00:00 EDT -04:00 t.localtime(-7200) # => 2016-05-02 13:00:00 -0200 t.localtime(-3600) # => 2016-05-02 14:00:00 -0100
* | Tighten the backtrace pollution from passing through callbacksMatthew Draper2016-09-301-1/+72
|/ | | | | | | | | | Callbacks are everywhere, so it's better if we can avoid making a mess of the backtrace just because we've passed through a callback hook. I'm making no effort to the before/after invocations: those only affect backtraces while they're running. The calls that matter are the ones that remain on the call stack after run_callbacks yields: around callbacks, and internal book-keeping around the before/afters.
* Fix ActiveSupport::TimeWithZone#inThomas Balthazar2016-09-241-1/+31
| | | | | | | | | | | | | | | Previously calls to `in` were being sent to the non-DST aware method `Time#since` via `method_missing`. It is now aliased to the DST aware `ActiveSupport::TimeWithZone#+` which handles transitions across DST boundaries, e.g: Time.zone = "US/Eastern" t = Time.zone.local(2016,11,6,1) # => Sun, 06 Nov 2016 01:00:00 EDT -05:00 t.in(1.hour) # => Sun, 06 Nov 2016 01:00:00 EST -05:00
* add check of argumentyuuji.yaginuma2016-09-171-0/+6
| | | | | | | `#fetch_multi` in case did not cache hit, to write a cache using the block value. https://github.com/rails/rails/blob/master/activesupport/lib/active_support/cache.rb#L383..L384 Therefore, block is a need to pass always, I think should check first.
* improve error message when include assertions failMichael Grosser2016-09-1612-114/+114
| | | | | | assert [1, 3].includes?(2) fails with unhelpful "Asserting failed" message assert_includes [1, 3], 2 fails with "Expected [1, 3] to include 2" which makes it easier to debug and more obvious what went wrong
* Fix broken comments indentation caused by rubocop auto-correct [ci skip]Ryuta Kamizono2016-09-141-6/+6
| | | | | | All indentation was normalized by rubocop auto-correct at 80e66cc4d90bf8c15d1a5f6e3152e90147f00772. But comments was still kept absolute position. This commit aligns comments with method definitions for consistency.
* Remove blank else branchRyuta Kamizono2016-09-031-3/+0
|
* RuboCop is 100% green :tada:Xavier Noria2016-09-021-1/+5
|
* fixes remaining RuboCop issues [Vipul A M, Xavier Noria]Xavier Noria2016-09-012-2/+2
|
* Start passing cipher from EncryptedCookieJar since we use it to determine ↵Vipul A M2016-09-011-2/+2
| | | | key length
* Follow up of #25602Vipul A M2016-09-011-0/+10
| | | | | | | | | Since keys are truncated, ruby 2.4 doesn't accept keys greater than their lenghts. keys of same value but different lenght and greater than key size of cipher, produce the same results as reproduced at https://gist.github.com/rhenium/b81355fe816dcfae459cc5eadfc4f6f9 Since our default cipher is 'aes-256-cbc', key length for which is 32 bytes, limit the length of key being passed to Encryptor to 32 bytes. This continues to support backwards compat with any existing signed data, already encrupted and signed with 32+ byte keys. Also fixes the passing of this value in multiple tests.
* use `message` that specified in argument to error messageyuuji.yaginuma2016-08-311-0/+9
|
* use `inspect` for show `from` valueyuuji.yaginuma2016-08-291-0/+9
| | | | If `from` is nil, in order to avoid the blank is showed.
* Merge pull request #25863 from mechanicles/remove-duplicate-testRafael França2016-08-161-5/+0
|\ | | | | Remove duplicate test.
| * Remove duplicate test.Santosh Wadghule2016-07-171-5/+0
| | | | | | | | | | We already test similar stuff in `test_really_long_keys` so removing this extra and duplicated test.
* | Add three new rubocop rulesRafael Mendonça França2016-08-1641-262/+262
| | | | | | | | | | | | | | | | Style/SpaceBeforeBlockBraces Style/SpaceInsideBlockBraces Style/SpaceInsideHashLiteralBraces Fix all violations in the repository.
* | Merge pull request #25681 from willnet/fix-thread_mattr_accessorYves Senn2016-08-081-0/+16
|\ \ | | | | | | | | | Fix `thread_mattr_accessor` share variable superclass with subclass
| * | Fix `thread_mattr_accessor` share variable superclass with subclasswillnet2016-08-041-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation of `thread_mattr_accessor` set variable sharing superclass with subclass. So the method doesn't work as documented. Precondition class Account thread_mattr_accessor :user end class Customer < Account end Account.user = "DHH" Account.user #=> "DHH" Customer.user = "Rafael" Customer.user # => "Rafael" Documented behavior Account.user # => "DHH" Actual behavior Account.user # => "Rafael" Current implementation set variable statically likes `Thread[:attr_Account_user]`, and customer also use it. Make variable name dynamic to use own thread-local variable.
* | | code gardening: removes redundant selfsXavier Noria2016-08-083-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | A few have been left for aesthetic reasons, but have made a pass and removed most of them. Note that if the method `foo` returns an array, `foo << 1` is a regular push, nothing to do with assignments, so no self required.
* | | Add `Style/EmptyLines` in `.rubocop.yml` and remove extra empty linesRyuta Kamizono2016-08-0714-20/+0
| | |
* | | applies remaining conventions across the projectXavier Noria2016-08-0611-24/+11
| | |
* | | normalizes indentation and whitespace across the projectXavier Noria2016-08-0643-600/+595
| | |
* | | remove redundant curlies from hash argumentsXavier Noria2016-08-0611-40/+40
| | |
* | | modernizes hash syntax in activesupportXavier Noria2016-08-0636-949/+949
| | |
* | | applies new string literal convention in activesupport/testXavier Noria2016-08-06141-2632/+2632
|/ / | | | | | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* | Add :weeks to the list of variable duration partsAndrew White2016-08-031-0/+32
| | | | | | | | | | | | | | | | Since 434df00 week durations are no longer converted to days. This means we need to add :weeks to the parts that ActiveSupport::TimeWithZone will consider being of variable duration to take account of DST transitions. Fixes #26039.
* | Revert "Adds `not_in?` onto Object"David Heinemeier Hansson2016-07-291-53/+0
| |
* | Merge pull request #25914 from jmccartie/jm/not_inRafael França2016-07-221-0/+53
|\ \ | | | | | | Adds `not_in?` onto Object
| * | Adds `not_in?` onto ObjectJon McCartie2016-07-211-0/+53
| | |
* | | systematic revision of =~ usage in ASXavier Noria2016-07-226-12/+18
|/ / | | | | | | | | Where appropriate prefer the more concise Regexp#match?, String#include?, String#start_with?, and String#end_with?
* | define Range#match? if Ruby < 2.4Xavier Noria2016-07-221-0/+24
| | | | | | | | | | | | See the rationale in the documentation included in this patch. We are going to gradually introduce this predicate in the code base.
* | Allow MessageEncryptor to take advantage of authenticated encryption modesBart de Water2016-07-211-0/+18
| | | | | | | | | | | | AEAD modes like `aes-256-gcm` provide both confidentiality and data authenticity, eliminating the need to use MessageVerifier to check if the encrypted data has been tampered with. Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* | Merge pull request #25823 from mechanicles/missing-memory-store-testsRafael França2016-07-201-0/+10
|\ \ | | | | | | Add missing tests for memory store of cache.
| * | Add missing tests for memory store of cache.Santosh Wadghule2016-07-171-0/+10
| |/
* | Merge pull request #25393 from gsamokovarov/introduce-assert-changesRafael França2016-07-201-0/+106
|\ \ | | | | | | Introduce `assert_changes` and `assert_no_changes`
| * | Introduce `assert_changes` and `assert_no_changes`Genadi Samokovarov2016-07-171-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Those are assertions that I really do miss from the standard `ActiveSupport::TestCase`. Think of those as a more general version of `assert_difference` and `assert_no_difference` (those can be implemented by assert_changes, should this change be accepted). Why do we need those? They are useful when you want to check a side-effect of an operation. `assert_difference` do cover a really common case, but we `assert_changes` gives us more control. Having a global error flag? You can test it easily with `assert_changes`. In fact, you can be really specific about the initial state and the terminal one. ```ruby error = Error.new(:bad) assert_changes -> { Error.current }, from: nil, to: error do expected_bad_operation end ``` `assert_changes` follows `assert_difference` and a string can be given for evaluation as well. ```ruby error = Error.new(:bad) assert_changes 'Error.current', from: nil, to: error do expected_bad_operation end ``` Check out the test cases if you wanna see more examples. :beers:
* | | Merge pull request #25822 from ↵Rafael França2016-07-201-0/+12
|\ \ \ | | | | | | | | | | | | | | | | mechanicles/clear-local-cache-on-invalid-parameters-error Add missing test for clearing up local cache on invalid parameters error.
| * | | Add missing test for clearing up local cache on invalid parameters err.Santosh Wadghule2016-07-171-0/+12
| | |/ | |/| | | | | | | | | | Add missing test for clearing up local cache and check response should be present on invalid parameters error.
* | | Make sure the time method is unstubedRafael Mendonça França2016-07-171-29/+41
| |/ |/| | | | | | | | | The minitest stubs were conflicting with the time travel stubs so the travel_back method call in the teardown block was actually keeping the time stubbed.
* | Added :fallback_string option to Array#to_sentenceoss922016-07-131-1/+6
|/
* Remove old test that check duplicated items in the load pathRafael Mendonça França2016-07-131-16/+0
| | | | | | This test was added to protect the test suite from our mistakes but now it is failing because bundler does add duplicated libs in the load path by design (if the repository has more than one gem)
* Raise ArgumentError for bad strptime argumentsJohn Gesimondo2016-07-111-0/+7
|
* AS::Duration should serialize empty values correctly. (#25656)Paul Sadauskas2016-07-111-0/+1
| | | | | | | | | | | | | The current implementation serializes zero-length durations incorrectly (it serializes as `"-P"`), and cannot un-serialize itself: ``` [1] pry(main)> ActiveSupport::Duration.parse(0.minutes.iso8601) ActiveSupport::Duration::ISO8601Parser::ParsingError: Invalid ISO 8601 duration: "-P" is empty duration from /Users/rando/.gem/ruby/2.3.1/gems/activesupport-5.0.0/lib/active_support/duration/iso8601_parser.rb:96:in `raise_parsing_error' ``` Postgres empty intervals are serialized as `"PT0S"`, which is also parseable by the Duration deserializer, so I've modified the `ISO8601Serializer` to do the same. Additionally, the `#normalize` function returned a negative sign if `parts` was blank (all zero). Even though this fix does not rely on the sign, I've gone ahead and corrected that, too, in case a future refactoring of `#serialize` uses it.
* Merge pull request #25736 from voxik/file-store-test-require-pathnameRafael França2016-07-071-0/+2
|\ | | | | Pathname might not be always initialized.
| * Pathname might not be always initialized.Vít Ondruch2016-07-071-0/+2
| | | | | | | | Require 'pathname' explicitly
* | Merge pull request #24890 from vipulnsward/travel-to-raiseKasper Timm Hansen2016-07-051-0/+43
|\ \ | | | | | | `travel/travel_to` travel time helpers, now raise on nested calls