diff options
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/core_ext/date_ext_test.rb | 56 | ||||
-rw-r--r-- | activesupport/test/core_ext/date_time_ext_test.rb | 5 | ||||
-rw-r--r-- | activesupport/test/core_ext/time_ext_test.rb | 7 |
3 files changed, 67 insertions, 1 deletions
diff --git a/activesupport/test/core_ext/date_ext_test.rb b/activesupport/test/core_ext/date_ext_test.rb index c403d7fb11..2b66fd03d0 100644 --- a/activesupport/test/core_ext/date_ext_test.rb +++ b/activesupport/test/core_ext/date_ext_test.rb @@ -20,6 +20,13 @@ class DateExtCalculationsTest < Test::Unit::TestCase def test_to_time assert_equal Time.local(2005, 2, 21), Date.new(2005, 2, 21).to_time assert_equal Time.local_time(2039, 2, 21), Date.new(2039, 2, 21).to_time + silence_warnings do + 0.upto(138) do |year| + [:utc, :local].each do |format| + assert_equal year, Date.new(year).to_time(format).year + end + end + end end def test_to_datetime @@ -50,6 +57,10 @@ class DateExtCalculationsTest < Test::Unit::TestCase assert_equal Date.new(2005,11,28), Date.new(2005,12,04).beginning_of_week #sunday end + def test_beginning_of_week_in_calendar_reform + assert_equal Date.new(1582,10,1), Date.new(1582,10,15).beginning_of_week #friday + end + def test_beginning_of_month assert_equal Date.new(2005,2,1), Date.new(2005,2,22).beginning_of_month end @@ -72,6 +83,10 @@ class DateExtCalculationsTest < Test::Unit::TestCase assert_equal Date.new(2008,3,2), Date.new(2008,3,02).end_of_week #sunday end + def test_end_of_week_in_calendar_reform + assert_equal Date.new(1582,10,17), Date.new(1582,10,4).end_of_week #thursday + end + def test_end_of_quarter assert_equal Date.new(2008,3,31), Date.new(2008,2,15).end_of_quarter assert_equal Date.new(2008,3,31), Date.new(2008,3,31).end_of_quarter @@ -89,7 +104,6 @@ class DateExtCalculationsTest < Test::Unit::TestCase assert_equal Date.new(2005,3,31), Date.new(2005,3,20).end_of_month assert_equal Date.new(2005,2,28), Date.new(2005,2,20).end_of_month assert_equal Date.new(2005,4,30), Date.new(2005,4,20).end_of_month - end def test_beginning_of_year @@ -135,20 +149,44 @@ class DateExtCalculationsTest < Test::Unit::TestCase assert_equal Date.new(2004,6,5), Date.new(2005,6,5).last_year end + def test_last_year_in_leap_years + assert_equal Date.new(1999,2,28), Date.new(2000,2,29).last_year + end + + def test_last_year_in_calendar_reform + assert_equal Date.new(1582,10,4), Date.new(1583,10,14).last_year + end + def test_next_year assert_equal Date.new(2006,6,5), Date.new(2005,6,5).next_year end + def test_next_year_in_leap_years + assert_equal Date.new(2001,2,28), Date.new(2000,2,29).next_year + end + + def test_next_year_in_calendar_reform + assert_equal Date.new(1582,10,4), Date.new(1581,10,10).next_year + end + def test_yesterday assert_equal Date.new(2005,2,21), Date.new(2005,2,22).yesterday assert_equal Date.new(2005,2,28), Date.new(2005,3,2).yesterday.yesterday end + def test_yesterday_in_calendar_reform + assert_equal Date.new(1582,10,4), Date.new(1582,10,15).yesterday + end + def test_tomorrow assert_equal Date.new(2005,2,23), Date.new(2005,2,22).tomorrow assert_equal Date.new(2005,3,2), Date.new(2005,2,28).tomorrow.tomorrow end + def test_tomorrow_in_calendar_reform + assert_equal Date.new(1582,10,15), Date.new(1582,10,4).tomorrow + end + def test_advance assert_equal Date.new(2006,2,28), Date.new(2005,2,28).advance(:years => 1) assert_equal Date.new(2005,6,28), Date.new(2005,2,28).advance(:months => 4) @@ -160,6 +198,17 @@ class DateExtCalculationsTest < Test::Unit::TestCase assert_equal Date.new(2005,2,28), Date.new(2004,2,29).advance(:years => 1) #leap day plus one year end + def test_advance_in_calendar_reform + assert_equal Date.new(1582,10,15), Date.new(1582,10,4).advance(:days => 1) + assert_equal Date.new(1582,10,4), Date.new(1582,10,15).advance(:days => -1) + 5.upto(14) do |day| + assert_equal Date.new(1582,10,4), Date.new(1582,9,day).advance(:months => 1) + assert_equal Date.new(1582,10,4), Date.new(1582,11,day).advance(:months => -1) + assert_equal Date.new(1582,10,4), Date.new(1581,10,day).advance(:years => 1) + assert_equal Date.new(1582,10,4), Date.new(1583,10,day).advance(:years => -1) + end + end + def test_next_week assert_equal Date.new(2005,2,28), Date.new(2005,2,22).next_week assert_equal Date.new(2005,3,4), Date.new(2005,2,22).next_week(:friday) @@ -167,6 +216,11 @@ class DateExtCalculationsTest < Test::Unit::TestCase assert_equal Date.new(2006,11,1), Date.new(2006,10,23).next_week(:wednesday) end + def test_next_week_in_calendar_reform + assert_equal Date.new(1582,10,15), Date.new(1582,9,30).next_week(:friday) + assert_equal Date.new(1582,10,18), Date.new(1582,10,4).next_week + end + def test_next_month_on_31st assert_equal Date.new(2005, 9, 30), Date.new(2005, 8, 31).next_month end diff --git a/activesupport/test/core_ext/date_time_ext_test.rb b/activesupport/test/core_ext/date_time_ext_test.rb index 278c05797b..f9af059acd 100644 --- a/activesupport/test/core_ext/date_time_ext_test.rb +++ b/activesupport/test/core_ext/date_time_ext_test.rb @@ -40,6 +40,11 @@ class DateTimeExtCalculationsTest < Test::Unit::TestCase assert_equal DateTime.new(2005, 2, 21, 10, 11, 12, Rational(-5, 24)), DateTime.new(2005, 2, 21, 10, 11, 12, Rational(-5, 24)).to_time end + def test_civil_from_format + assert_equal DateTime.civil(2010, 5, 4, 0, 0, 0, DateTime.local_offset), DateTime.civil_from_format(:local, 2010, 5, 4) + assert_equal DateTime.civil(2010, 5, 4, 0, 0, 0, 0), DateTime.civil_from_format(:utc, 2010, 5, 4) + end + def test_seconds_since_midnight assert_equal 1,DateTime.civil(2005,1,1,0,0,1).seconds_since_midnight assert_equal 60,DateTime.civil(2005,1,1,0,1,0).seconds_since_midnight diff --git a/activesupport/test/core_ext/time_ext_test.rb b/activesupport/test/core_ext/time_ext_test.rb index c24c8619c6..342d6ab577 100644 --- a/activesupport/test/core_ext/time_ext_test.rb +++ b/activesupport/test/core_ext/time_ext_test.rb @@ -587,6 +587,13 @@ class TimeExtCalculationsTest < Test::Unit::TestCase DateTime.civil(2039, 2, 21, 17, 44, 30, 0, 0) assert_equal ::Date::ITALY, Time.time_with_datetime_fallback(:utc, 2039, 2, 21, 17, 44, 30, 1).start # use Ruby's default start value end + silence_warnings do + 0.upto(138) do |year| + [:utc, :local].each do |format| + assert_equal year, Time.time_with_datetime_fallback(format, year).year + end + end + end end def test_utc_time |