From 72385a7be65bb27b07cd2ee3bc9fe221d8e04f90 Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Wed, 6 Feb 2008 06:43:02 +0000 Subject: Add Time Zone support to ActiveRecord, and config.time_zone property for specifying a default Time Zone. Closes #10982 [Geoff Buesing, rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8806 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/test/core_ext/time_ext_test.rb | 9 +++++++++ activesupport/test/time_zone_test.rb | 6 ++++++ 2 files changed, 15 insertions(+) (limited to 'activesupport/test') 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 -- cgit v1.2.3