diff options
author | Andrew White <andrew.white@unboxed.co> | 2019-03-18 16:51:33 +0000 |
---|---|---|
committer | Andrew White <andrew.white@unboxed.co> | 2019-03-18 17:02:34 +0000 |
commit | 58ac3f212f0dca31d8dc3c35ba13c14581d8b5f3 (patch) | |
tree | 33ca5cb87d3384e7a9ab986704211e31709676ba /activesupport/test | |
parent | 014aa10fc0c2e1431235134c5f94c467e8c17cbd (diff) | |
download | rails-58ac3f212f0dca31d8dc3c35ba13c14581d8b5f3.tar.gz rails-58ac3f212f0dca31d8dc3c35ba13c14581d8b5f3.tar.bz2 rails-58ac3f212f0dca31d8dc3c35ba13c14581d8b5f3.zip |
Fix Time#advance to work with dates before 1001-03-07
In #10634 the behavior of Time#advance was changed to maintain a
proleptic gregorian calendar for dates before calendar reform. However
it didn't full address dates a long time before calendar reform and
they gradually drift away from the proleptic calendar the further you
go back in time. Fix this by always converting the date to gregorian
before calling advance which sets the reform date to -infinity.
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/core_ext/time_ext_test.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/time_ext_test.rb b/activesupport/test/core_ext/time_ext_test.rb index 7078f3506d..590b81b770 100644 --- a/activesupport/test/core_ext/time_ext_test.rb +++ b/activesupport/test/core_ext/time_ext_test.rb @@ -514,6 +514,8 @@ class TimeExtCalculationsTest < ActiveSupport::TestCase assert_equal Time.local(1582, 10, 15, 15, 15, 10), Time.local(1582, 10, 14, 15, 15, 10).advance(days: 1) assert_equal Time.local(1582, 10, 5, 15, 15, 10), Time.local(1582, 10, 4, 15, 15, 10).advance(days: 1) assert_equal Time.local(1582, 10, 4, 15, 15, 10), Time.local(1582, 10, 5, 15, 15, 10).advance(days: -1) + assert_equal Time.local(999, 10, 4, 15, 15, 10), Time.local(1000, 10, 4, 15, 15, 10).advance(years: -1) + assert_equal Time.local(1000, 10, 4, 15, 15, 10), Time.local(999, 10, 4, 15, 15, 10).advance(years: 1) end def test_last_week |