diff options
author | Rob Zolkos & Xavier Noria <fxn@hashref.com> | 2010-10-16 02:22:12 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2010-10-16 02:23:23 +0200 |
commit | bc1bcddede0c300e9c88f76a66a152814b734981 (patch) | |
tree | a5152815fa020c3381cbcc551eae4f30cbecb104 /activesupport/test/core_ext | |
parent | 4bfe30ca2f9ed657ddf904754cf7fabe943948a1 (diff) | |
download | rails-bc1bcddede0c300e9c88f76a66a152814b734981.tar.gz rails-bc1bcddede0c300e9c88f76a66a152814b734981.tar.bz2 rails-bc1bcddede0c300e9c88f76a66a152814b734981.zip |
implements weeks_ago and prev_week for Date/DateTime/Time [#5122 state:committed]
Diffstat (limited to 'activesupport/test/core_ext')
-rw-r--r-- | activesupport/test/core_ext/date_ext_test.rb | 16 | ||||
-rw-r--r-- | activesupport/test/core_ext/date_time_ext_test.rb | 16 | ||||
-rw-r--r-- | activesupport/test/core_ext/time_ext_test.rb | 18 |
3 files changed, 50 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/date_ext_test.rb b/activesupport/test/core_ext/date_ext_test.rb index 3141e895e6..342a31cdef 100644 --- a/activesupport/test/core_ext/date_ext_test.rb +++ b/activesupport/test/core_ext/date_ext_test.rb @@ -110,6 +110,14 @@ class DateExtCalculationsTest < ActiveSupport::TestCase assert_equal Date.new(2005,1,1).to_s, Date.new(2005,2,22).beginning_of_year.to_s end + def test_weeks_ago + assert_equal Date.new(2005,5,10), Date.new(2005,5,17).weeks_ago(1) + assert_equal Date.new(2005,5,10), Date.new(2005,5,24).weeks_ago(2) + assert_equal Date.new(2005,5,10), Date.new(2005,5,31).weeks_ago(3) + assert_equal Date.new(2005,5,10), Date.new(2005,6,7).weeks_ago(4) + assert_equal Date.new(2006,12,31), Date.new(2007,2,4).weeks_ago(5) + end + def test_months_ago assert_equal Date.new(2005,5,5), Date.new(2005,6,5).months_ago(1) assert_equal Date.new(2004,11,5), Date.new(2005,6,5).months_ago(7) @@ -219,6 +227,14 @@ class DateExtCalculationsTest < ActiveSupport::TestCase end end + def test_prev_week + assert_equal Date.new(2005,5,9), Date.new(2005,5,17).prev_week + assert_equal Date.new(2006,12,25), Date.new(2007,1,7).prev_week + assert_equal Date.new(2010,2,12), Date.new(2010,2,19).prev_week(:friday) + assert_equal Date.new(2010,2,13), Date.new(2010,2,19).prev_week(:saturday) + assert_equal Date.new(2010,2,27), Date.new(2010,3,4).prev_week(:saturday) + 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) diff --git a/activesupport/test/core_ext/date_time_ext_test.rb b/activesupport/test/core_ext/date_time_ext_test.rb index cb290c541b..7d993d84e2 100644 --- a/activesupport/test/core_ext/date_time_ext_test.rb +++ b/activesupport/test/core_ext/date_time_ext_test.rb @@ -92,6 +92,14 @@ class DateTimeExtCalculationsTest < Test::Unit::TestCase assert_equal DateTime.civil(2005,1,1,0,0,0), DateTime.civil(2005,2,22,10,10,10).beginning_of_year end + def test_weeks_ago + assert_equal DateTime.civil(2005,5,29,10), DateTime.civil(2005,6,5,10,0,0).weeks_ago(1) + assert_equal DateTime.civil(2005,5,1,10), DateTime.civil(2005,6,5,10,0,0).weeks_ago(5) + assert_equal DateTime.civil(2005,4,24,10), DateTime.civil(2005,6,5,10,0,0).weeks_ago(6) + assert_equal DateTime.civil(2005,2,27,10), DateTime.civil(2005,6,5,10,0,0).weeks_ago(14) + assert_equal DateTime.civil(2004,12,25,10), DateTime.civil(2005,1,1,10,0,0).weeks_ago(1) + end + def test_months_ago assert_equal DateTime.civil(2005,5,5,10), DateTime.civil(2005,6,5,10,0,0).months_ago(1) assert_equal DateTime.civil(2004,11,5,10), DateTime.civil(2005,6,5,10,0,0).months_ago(7) @@ -196,6 +204,14 @@ class DateTimeExtCalculationsTest < Test::Unit::TestCase assert_equal DateTime.civil(2010, 3, 29), DateTime.civil(2010, 2, 28, 22, 58, 59).advance(:months => 1, :hours => 1, :minutes => 1, :seconds => 1) end + def test_prev_week + assert_equal DateTime.civil(2005,2,21), DateTime.civil(2005,3,1,15,15,10).prev_week + assert_equal DateTime.civil(2005,2,22), DateTime.civil(2005,3,1,15,15,10).prev_week(:tuesday) + assert_equal DateTime.civil(2005,2,25), DateTime.civil(2005,3,1,15,15,10).prev_week(:friday) + assert_equal DateTime.civil(2006,10,30), DateTime.civil(2006,11,6,0,0,0).prev_week + assert_equal DateTime.civil(2006,11,15), DateTime.civil(2006,11,23,0,0,0).prev_week(:wednesday) + end + def test_next_week assert_equal DateTime.civil(2005,2,28), DateTime.civil(2005,2,22,15,15,10).next_week assert_equal DateTime.civil(2005,3,4), DateTime.civil(2005,2,22,15,15,10).next_week(:friday) diff --git a/activesupport/test/core_ext/time_ext_test.rb b/activesupport/test/core_ext/time_ext_test.rb index c43b3eb358..53d497013a 100644 --- a/activesupport/test/core_ext/time_ext_test.rb +++ b/activesupport/test/core_ext/time_ext_test.rb @@ -130,6 +130,14 @@ class TimeExtCalculationsTest < ActiveSupport::TestCase assert_equal Time.local(2005,1,1,0,0,0), Time.local(2005,2,22,10,10,10).beginning_of_year end + def test_weeks_ago + assert_equal Time.local(2005,5,29,10), Time.local(2005,6,5,10,0,0).weeks_ago(1) + assert_equal Time.local(2005,5,1,10), Time.local(2005,6,5,10,0,0).weeks_ago(5) + assert_equal Time.local(2005,4,24,10), Time.local(2005,6,5,10,0,0).weeks_ago(6) + assert_equal Time.local(2005,2,27,10), Time.local(2005,6,5,10,0,0).weeks_ago(14) + assert_equal Time.local(2004,12,25,10), Time.local(2005,1,1,10,0,0).weeks_ago(1) + end + def test_months_ago assert_equal Time.local(2005,5,5,10), Time.local(2005,6,5,10,0,0).months_ago(1) assert_equal Time.local(2004,11,5,10), Time.local(2005,6,5,10,0,0).months_ago(7) @@ -463,6 +471,16 @@ class TimeExtCalculationsTest < ActiveSupport::TestCase assert_equal Time.utc(2013,10,17,20,22,19), Time.utc(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5, :hours => 5, :minutes => 7, :seconds => 9) end + def test_prev_week + with_env_tz 'US/Eastern' do + assert_equal Time.local(2005,2,21), Time.local(2005,3,1,15,15,10).prev_week + assert_equal Time.local(2005,2,22), Time.local(2005,3,1,15,15,10).prev_week(:tuesday) + assert_equal Time.local(2005,2,25), Time.local(2005,3,1,15,15,10).prev_week(:friday) + assert_equal Time.local(2006,10,30), Time.local(2006,11,6,0,0,0).prev_week + assert_equal Time.local(2006,11,15), Time.local(2006,11,23,0,0,0).prev_week(:wednesday) + end + end + def test_next_week with_env_tz 'US/Eastern' do assert_equal Time.local(2005,2,28), Time.local(2005,2,22,15,15,10).next_week |