diff options
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/core_ext/time_ext_test.rb | 9 | ||||
-rw-r--r-- | activesupport/test/time_zone_test.rb | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/time_ext_test.rb b/activesupport/test/core_ext/time_ext_test.rb index 37fd6f027b..40e8c5ecfd 100644 --- a/activesupport/test/core_ext/time_ext_test.rb +++ b/activesupport/test/core_ext/time_ext_test.rb @@ -459,6 +459,15 @@ class TimeExtCalculationsTest < Test::Unit::TestCase assert_equal 86_400.0, Time.utc(2000, 1, 2) - ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1), TimeZone['UTC'] ) end + def test_time_created_with_local_constructor_cannot_represent_times_during_hour_skipped_by_dst + with_env_tz 'US/Eastern' do + # On Apr 2 2006 at 2:00AM in US, clocks were moved forward to 3:00AM. + # Therefore, 2AM EST doesn't exist for this date; Time.local fails over to 3:00AM EDT + assert_equal Time.local(2006, 4, 2, 3), Time.local(2006, 4, 2, 2) + assert Time.local(2006, 4, 2, 2).dst? + end + end + protected def with_env_tz(new_tz = 'US/Eastern') old_tz, ENV['TZ'] = ENV['TZ'], new_tz diff --git a/activesupport/test/time_zone_test.rb b/activesupport/test/time_zone_test.rb index c32218cee2..cd3972a41c 100644 --- a/activesupport/test/time_zone_test.rb +++ b/activesupport/test/time_zone_test.rb @@ -128,5 +128,11 @@ class TimeZoneTest < Test::Unit::TestCase assert TimeZone.us_zones.include?(TimeZone["Hawaii"]) assert !TimeZone.us_zones.include?(TimeZone["Kuala Lumpur"]) end + + def test_new + time = TimeZone["Hawaii"].new(2007, 2, 5, 15, 30, 45) + assert_equal Time.utc(2007, 2, 5, 15, 30, 45), time.time + assert_equal TimeZone["Hawaii"], time.time_zone + end end |