From db4fc6f206f83d8981e006c80f08bfd4bff02e87 Mon Sep 17 00:00:00 2001 From: Geoff Buesing Date: Sun, 10 Feb 2008 18:45:55 +0000 Subject: Time#in_time_zone handles Time.local instances correctly git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8849 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/test/core_ext/time_with_zone_test.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'activesupport/test') diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb index 3f0ec0720b..14a96169dd 100644 --- a/activesupport/test/core_ext/time_with_zone_test.rb +++ b/activesupport/test/core_ext/time_with_zone_test.rb @@ -174,6 +174,15 @@ uses_tzinfo 'TimeWithZoneTest' do end end end + + def test_in_time_zone_with_time_local_instance + silence_warnings do # silence warnings raised by tzinfo gem + with_env_tz 'US/Eastern' do + time = Time.local(1999, 12, 31, 19) # == Time.utc(2000) + assert_equal 'Fri, 31 Dec 1999 15:00:00 AKST -09:00', time.in_time_zone('Alaska').inspect + end + end + end def test_in_current_time_zone Time.use_zone 'Alaska' do @@ -228,5 +237,13 @@ uses_tzinfo 'TimeWithZoneTest' do assert_equal TimeZone['Hawaii'], t2[:time_zone] end end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end end end -- cgit v1.2.3