Merge pull request #20464 from ronakjangir47/active_support_stubbing

Removed mocha stubbing in active_support
This commit is contained in:
Arthur Nogueira Neves 2015-06-07 18:01:11 +02:00
commit 4502f470f4
10 changed files with 366 additions and 309 deletions

View File

@ -37,4 +37,5 @@ def jruby_skip(message = '')
skip message if defined?(JRUBY_VERSION)
end
require 'minitest/mock'
require 'mocha/setup' # FIXME: stop using mocha

View File

@ -288,8 +288,9 @@ module CacheStoreBehavior
@cache.write('foo', 'bar', :expires_in => 10)
@cache.write('fu', 'baz')
@cache.write('fud', 'biz')
Time.stubs(:now).returns(time + 11)
assert_equal({"fu" => "baz"}, @cache.read_multi('foo', 'fu'))
Time.stub(:now, time + 11) do
assert_equal({"fu" => "baz"}, @cache.read_multi('foo', 'fu'))
end
end
def test_fetch_multi
@ -387,66 +388,74 @@ module CacheStoreBehavior
def test_expires_in
time = Time.local(2008, 4, 24)
Time.stubs(:now).returns(time)
@cache.write('foo', 'bar')
assert_equal 'bar', @cache.read('foo')
Time.stub(:now, time) do
@cache.write('foo', 'bar')
assert_equal 'bar', @cache.read('foo')
end
Time.stubs(:now).returns(time + 30)
assert_equal 'bar', @cache.read('foo')
Time.stub(:now, time + 30) do
assert_equal 'bar', @cache.read('foo')
end
Time.stubs(:now).returns(time + 61)
assert_nil @cache.read('foo')
Time.stub(:now, time + 61) do
assert_nil @cache.read('foo')
end
end
def test_race_condition_protection_skipped_if_not_defined
@cache.write('foo', 'bar')
time = @cache.send(:read_entry, 'foo', {}).expires_at
Time.stubs(:now).returns(Time.at(time))
result = @cache.fetch('foo') do
assert_equal nil, @cache.read('foo')
'baz'
Time.stub(:now, Time.at(time)) do
result = @cache.fetch('foo') do
assert_equal nil, @cache.read('foo')
'baz'
end
assert_equal 'baz', result
end
assert_equal 'baz', result
end
def test_race_condition_protection_is_limited
time = Time.now
@cache.write('foo', 'bar', :expires_in => 60)
Time.stubs(:now).returns(time + 71)
result = @cache.fetch('foo', :race_condition_ttl => 10) do
assert_equal nil, @cache.read('foo')
"baz"
Time.stub(:now, time + 71) do
result = @cache.fetch('foo', :race_condition_ttl => 10) do
assert_equal nil, @cache.read('foo')
"baz"
end
assert_equal "baz", result
end
assert_equal "baz", result
end
def test_race_condition_protection_is_safe
time = Time.now
@cache.write('foo', 'bar', :expires_in => 60)
Time.stubs(:now).returns(time + 61)
begin
@cache.fetch('foo', :race_condition_ttl => 10) do
assert_equal 'bar', @cache.read('foo')
raise ArgumentError.new
Time.stub(:now, time + 61) do
begin
@cache.fetch('foo', :race_condition_ttl => 10) do
assert_equal 'bar', @cache.read('foo')
raise ArgumentError.new
end
rescue ArgumentError
end
rescue ArgumentError
assert_equal "bar", @cache.read('foo')
end
Time.stub(:now, time + 91) do
assert_nil @cache.read('foo')
end
assert_equal "bar", @cache.read('foo')
Time.stubs(:now).returns(time + 91)
assert_nil @cache.read('foo')
end
def test_race_condition_protection
time = Time.now
@cache.write('foo', 'bar', :expires_in => 60)
Time.stubs(:now).returns(time + 61)
result = @cache.fetch('foo', :race_condition_ttl => 10) do
assert_equal 'bar', @cache.read('foo')
"baz"
Time.stub(:now, time + 61) do
result = @cache.fetch('foo', :race_condition_ttl => 10) do
assert_equal 'bar', @cache.read('foo')
"baz"
end
assert_equal "baz", result
end
assert_equal "baz", result
end
def test_crazy_key_characters
@ -775,11 +784,12 @@ class FileStoreTest < ActiveSupport::TestCase
@cache.write('foo', 'bar', expires_in: 10)
@cache.write('baz', 'qux')
@cache.write('quux', 'corge', expires_in: 20)
Time.stubs(:now).returns(time + 15)
@cache.cleanup
assert_not @cache.exist?('foo')
assert @cache.exist?('baz')
assert @cache.exist?('quux')
Time.stub(:now, time + 15) do
@cache.cleanup
assert_not @cache.exist?('foo')
assert @cache.exist?('baz')
assert @cache.exist?('quux')
end
end
def test_write_with_unless_exist
@ -1056,9 +1066,9 @@ class CacheEntryTest < ActiveSupport::TestCase
assert !entry.expired?, 'entry not expired'
entry = ActiveSupport::Cache::Entry.new("value", :expires_in => 60)
assert !entry.expired?, 'entry not expired'
time = Time.now + 61
Time.stubs(:now).returns(time)
assert entry.expired?, 'entry is expired'
Time.stub(:now, Time.now + 61) do
assert entry.expired?, 'entry is expired'
end
end
def test_compress_values

View File

@ -191,8 +191,9 @@ class DateExtCalculationsTest < ActiveSupport::TestCase
def test_yesterday_constructor_when_zone_is_set
with_env_tz 'UTC' do
with_tz_default ActiveSupport::TimeZone['Eastern Time (US & Canada)'] do # UTC -5
Time.stubs(:now).returns Time.local(2000, 1, 1)
assert_equal Date.new(1999, 12, 30), Date.yesterday
Time.stub(:now, Time.local(2000, 1, 1)) do
assert_equal Date.new(1999, 12, 30), Date.yesterday
end
end
end
end
@ -212,8 +213,9 @@ class DateExtCalculationsTest < ActiveSupport::TestCase
def test_tomorrow_constructor_when_zone_is_set
with_env_tz 'UTC' do
with_tz_default ActiveSupport::TimeZone['Europe/Paris'] do # UTC +1
Time.stubs(:now).returns Time.local(1999, 12, 31, 23)
assert_equal Date.new(2000, 1, 2), Date.tomorrow
Time.stub(:now, Time.local(1999, 12, 31, 23)) do
assert_equal Date.new(2000, 1, 2), Date.tomorrow
end
end
end
end
@ -317,23 +319,26 @@ class DateExtCalculationsTest < ActiveSupport::TestCase
end
def test_past
Date.stubs(:current).returns(Date.new(2000, 1, 1))
assert_equal true, Date.new(1999, 12, 31).past?
assert_equal false, Date.new(2000,1,1).past?
assert_equal false, Date.new(2000,1,2).past?
Date.stub(:current, Date.new(2000, 1, 1)) do
assert_equal true, Date.new(1999, 12, 31).past?
assert_equal false, Date.new(2000,1,1).past?
assert_equal false, Date.new(2000,1,2).past?
end
end
def test_future
Date.stubs(:current).returns(Date.new(2000, 1, 1))
assert_equal false, Date.new(1999, 12, 31).future?
assert_equal false, Date.new(2000,1,1).future?
assert_equal true, Date.new(2000,1,2).future?
Date.stub(:current, Date.new(2000, 1, 1)) do
assert_equal false, Date.new(1999, 12, 31).future?
assert_equal false, Date.new(2000,1,1).future?
assert_equal true, Date.new(2000,1,2).future?
end
end
def test_current_returns_date_today_when_zone_not_set
with_env_tz 'US/Central' do
Time.stubs(:now).returns Time.local(1999, 12, 31, 23)
assert_equal Date.today, Date.current
Time.stub(:now, Time.local(1999, 12, 31, 23)) do
assert_equal Date.today, Date.current
end
end
end

View File

@ -204,61 +204,69 @@ class DateTimeExtCalculationsTest < ActiveSupport::TestCase
end
def test_today_with_offset
Date.stubs(:current).returns(Date.new(2000, 1, 1))
assert_equal false, DateTime.civil(1999,12,31,23,59,59, Rational(-18000, 86400)).today?
assert_equal true, DateTime.civil(2000,1,1,0,0,0, Rational(-18000, 86400)).today?
assert_equal true, DateTime.civil(2000,1,1,23,59,59, Rational(-18000, 86400)).today?
assert_equal false, DateTime.civil(2000,1,2,0,0,0, Rational(-18000, 86400)).today?
Date.stub(:current, Date.new(2000, 1, 1)) do
assert_equal false, DateTime.civil(1999,12,31,23,59,59, Rational(-18000, 86400)).today?
assert_equal true, DateTime.civil(2000,1,1,0,0,0, Rational(-18000, 86400)).today?
assert_equal true, DateTime.civil(2000,1,1,23,59,59, Rational(-18000, 86400)).today?
assert_equal false, DateTime.civil(2000,1,2,0,0,0, Rational(-18000, 86400)).today?
end
end
def test_today_without_offset
Date.stubs(:current).returns(Date.new(2000, 1, 1))
assert_equal false, DateTime.civil(1999,12,31,23,59,59).today?
assert_equal true, DateTime.civil(2000,1,1,0).today?
assert_equal true, DateTime.civil(2000,1,1,23,59,59).today?
assert_equal false, DateTime.civil(2000,1,2,0).today?
Date.stub(:current, Date.new(2000, 1, 1)) do
assert_equal false, DateTime.civil(1999,12,31,23,59,59).today?
assert_equal true, DateTime.civil(2000,1,1,0).today?
assert_equal true, DateTime.civil(2000,1,1,23,59,59).today?
assert_equal false, DateTime.civil(2000,1,2,0).today?
end
end
def test_past_with_offset
DateTime.stubs(:current).returns(DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)))
assert_equal true, DateTime.civil(2005,2,10,15,30,44, Rational(-18000, 86400)).past?
assert_equal false, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)).past?
assert_equal false, DateTime.civil(2005,2,10,15,30,46, Rational(-18000, 86400)).past?
DateTime.stub(:current, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400))) do
assert_equal true, DateTime.civil(2005,2,10,15,30,44, Rational(-18000, 86400)).past?
assert_equal false, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)).past?
assert_equal false, DateTime.civil(2005,2,10,15,30,46, Rational(-18000, 86400)).past?
end
end
def test_past_without_offset
DateTime.stubs(:current).returns(DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)))
assert_equal true, DateTime.civil(2005,2,10,20,30,44).past?
assert_equal false, DateTime.civil(2005,2,10,20,30,45).past?
assert_equal false, DateTime.civil(2005,2,10,20,30,46).past?
DateTime.stub(:current, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400))) do
assert_equal true, DateTime.civil(2005,2,10,20,30,44).past?
assert_equal false, DateTime.civil(2005,2,10,20,30,45).past?
assert_equal false, DateTime.civil(2005,2,10,20,30,46).past?
end
end
def test_future_with_offset
DateTime.stubs(:current).returns(DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)))
assert_equal false, DateTime.civil(2005,2,10,15,30,44, Rational(-18000, 86400)).future?
assert_equal false, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)).future?
assert_equal true, DateTime.civil(2005,2,10,15,30,46, Rational(-18000, 86400)).future?
DateTime.stub(:current, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400))) do
assert_equal false, DateTime.civil(2005,2,10,15,30,44, Rational(-18000, 86400)).future?
assert_equal false, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)).future?
assert_equal true, DateTime.civil(2005,2,10,15,30,46, Rational(-18000, 86400)).future?
end
end
def test_future_without_offset
DateTime.stubs(:current).returns(DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400)))
assert_equal false, DateTime.civil(2005,2,10,20,30,44).future?
assert_equal false, DateTime.civil(2005,2,10,20,30,45).future?
assert_equal true, DateTime.civil(2005,2,10,20,30,46).future?
DateTime.stub(:current, DateTime.civil(2005,2,10,15,30,45, Rational(-18000, 86400))) do
assert_equal false, DateTime.civil(2005,2,10,20,30,44).future?
assert_equal false, DateTime.civil(2005,2,10,20,30,45).future?
assert_equal true, DateTime.civil(2005,2,10,20,30,46).future?
end
end
def test_current_returns_date_today_when_zone_is_not_set
with_env_tz 'US/Eastern' do
Time.stubs(:now).returns Time.local(1999, 12, 31, 23, 59, 59)
assert_equal DateTime.new(1999, 12, 31, 23, 59, 59, Rational(-18000, 86400)), DateTime.current
Time.stub(:now, Time.local(1999, 12, 31, 23, 59, 59)) do
assert_equal DateTime.new(1999, 12, 31, 23, 59, 59, Rational(-18000, 86400)), DateTime.current
end
end
end
def test_current_returns_time_zone_today_when_zone_is_set
Time.zone = ActiveSupport::TimeZone['Eastern Time (US & Canada)']
with_env_tz 'US/Eastern' do
Time.stubs(:now).returns Time.local(1999, 12, 31, 23, 59, 59)
assert_equal DateTime.new(1999, 12, 31, 23, 59, 59, Rational(-18000, 86400)), DateTime.current
Time.stub(:now, Time.local(1999, 12, 31, 23, 59, 59)) do
assert_equal DateTime.new(1999, 12, 31, 23, 59, 59, Rational(-18000, 86400)), DateTime.current
end
end
ensure
Time.zone = nil

View File

@ -140,28 +140,30 @@ class DurationTest < ActiveSupport::TestCase
def test_since_and_ago_anchored_to_time_now_when_time_zone_is_not_set
Time.zone = nil
with_env_tz 'US/Eastern' do
Time.stubs(:now).returns Time.local(2000)
# since
assert_not_instance_of ActiveSupport::TimeWithZone, 5.seconds.since
assert_equal Time.local(2000,1,1,0,0,5), 5.seconds.since
# ago
assert_not_instance_of ActiveSupport::TimeWithZone, 5.seconds.ago
assert_equal Time.local(1999,12,31,23,59,55), 5.seconds.ago
Time.stub(:now, Time.local(2000)) do
# since
assert_not_instance_of ActiveSupport::TimeWithZone, 5.seconds.since
assert_equal Time.local(2000,1,1,0,0,5), 5.seconds.since
# ago
assert_not_instance_of ActiveSupport::TimeWithZone, 5.seconds.ago
assert_equal Time.local(1999,12,31,23,59,55), 5.seconds.ago
end
end
end
def test_since_and_ago_anchored_to_time_zone_now_when_time_zone_is_set
Time.zone = ActiveSupport::TimeZone['Eastern Time (US & Canada)']
with_env_tz 'US/Eastern' do
Time.stubs(:now).returns Time.local(2000)
# since
assert_instance_of ActiveSupport::TimeWithZone, 5.seconds.since
assert_equal Time.utc(2000,1,1,0,0,5), 5.seconds.since.time
assert_equal 'Eastern Time (US & Canada)', 5.seconds.since.time_zone.name
# ago
assert_instance_of ActiveSupport::TimeWithZone, 5.seconds.ago
assert_equal Time.utc(1999,12,31,23,59,55), 5.seconds.ago.time
assert_equal 'Eastern Time (US & Canada)', 5.seconds.ago.time_zone.name
Time.stub(:now, Time.local(2000)) do
# since
assert_instance_of ActiveSupport::TimeWithZone, 5.seconds.since
assert_equal Time.utc(2000,1,1,0,0,5), 5.seconds.since.time
assert_equal 'Eastern Time (US & Canada)', 5.seconds.since.time_zone.name
# ago
assert_instance_of ActiveSupport::TimeWithZone, 5.seconds.ago
assert_equal Time.utc(1999,12,31,23,59,55), 5.seconds.ago.time
assert_equal 'Eastern Time (US & Canada)', 5.seconds.ago.time_zone.name
end
end
ensure
Time.zone = nil

View File

@ -435,117 +435,123 @@ class StringConversionsTest < ActiveSupport::TestCase
def test_standard_time_string_to_time_when_current_time_is_standard_time
with_env_tz "US/Eastern" do
Time.stubs(:now).returns(Time.local(2012, 1, 1))
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 -0800".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 -0800".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 -0500".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 5, 0), "2012-01-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 PST".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 EST".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 EST".to_time(:utc)
Time.stub(:now, Time.local(2012, 1, 1)) do
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 -0800".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 -0800".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 -0500".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 5, 0), "2012-01-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 PST".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 EST".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 EST".to_time(:utc)
end
end
end
def test_standard_time_string_to_time_when_current_time_is_daylight_savings
with_env_tz "US/Eastern" do
Time.stubs(:now).returns(Time.local(2012, 7, 1))
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 -0800".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 -0800".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 -0500".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 5, 0), "2012-01-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 PST".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 EST".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 EST".to_time(:utc)
Time.stub(:now, Time.local(2012, 7, 1)) do
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 -0800".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 -0800".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 -0500".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 5, 0), "2012-01-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "2012-01-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "2012-01-01 10:00 PST".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "2012-01-01 10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "2012-01-01 10:00 EST".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "2012-01-01 10:00 EST".to_time(:utc)
end
end
end
def test_daylight_savings_string_to_time_when_current_time_is_standard_time
with_env_tz "US/Eastern" do
Time.stubs(:now).returns(Time.local(2012, 1, 1))
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 -0700".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 -0700".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 -0400".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 -0400".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 6, 0), "2012-07-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 PDT".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 EDT".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 EDT".to_time(:utc)
Time.stub(:now, Time.local(2012, 1, 1)) do
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 -0700".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 -0700".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 -0400".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 -0400".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 6, 0), "2012-07-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 PDT".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 EDT".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 EDT".to_time(:utc)
end
end
end
def test_daylight_savings_string_to_time_when_current_time_is_daylight_savings
with_env_tz "US/Eastern" do
Time.stubs(:now).returns(Time.local(2012, 7, 1))
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 -0700".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 -0700".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 -0400".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 -0400".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 6, 0), "2012-07-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 PDT".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 EDT".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 EDT".to_time(:utc)
Time.stub(:now, Time.local(2012, 7, 1)) do
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 -0700".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 -0700".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 -0400".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 -0400".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 6, 0), "2012-07-01 10:00 UTC".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "2012-07-01 10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "2012-07-01 10:00 PDT".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "2012-07-01 10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "2012-07-01 10:00 EDT".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "2012-07-01 10:00 EDT".to_time(:utc)
end
end
end
def test_partial_string_to_time_when_current_time_is_standard_time
with_env_tz "US/Eastern" do
Time.stubs(:now).returns(Time.local(2012, 1, 1))
assert_equal Time.local(2012, 1, 1, 10, 0), "10:00".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "10:00".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 6, 0), "10:00 -0100".to_time
assert_equal Time.utc(2012, 1, 1, 11, 0), "10:00 -0100".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "10:00 -0500".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 5, 0), "10:00 UTC".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "10:00 PST".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 12, 0), "10:00 PDT".to_time
assert_equal Time.utc(2012, 1, 1, 17, 0), "10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "10:00 EST".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "10:00 EST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 9, 0), "10:00 EDT".to_time
assert_equal Time.utc(2012, 1, 1, 14, 0), "10:00 EDT".to_time(:utc)
Time.stub(:now, Time.local(2012, 1, 1)) do
assert_equal Time.local(2012, 1, 1, 10, 0), "10:00".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "10:00".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 6, 0), "10:00 -0100".to_time
assert_equal Time.utc(2012, 1, 1, 11, 0), "10:00 -0100".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "10:00 -0500".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 5, 0), "10:00 UTC".to_time
assert_equal Time.utc(2012, 1, 1, 10, 0), "10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 13, 0), "10:00 PST".to_time
assert_equal Time.utc(2012, 1, 1, 18, 0), "10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 12, 0), "10:00 PDT".to_time
assert_equal Time.utc(2012, 1, 1, 17, 0), "10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 10, 0), "10:00 EST".to_time
assert_equal Time.utc(2012, 1, 1, 15, 0), "10:00 EST".to_time(:utc)
assert_equal Time.local(2012, 1, 1, 9, 0), "10:00 EDT".to_time
assert_equal Time.utc(2012, 1, 1, 14, 0), "10:00 EDT".to_time(:utc)
end
end
end
def test_partial_string_to_time_when_current_time_is_daylight_savings
with_env_tz "US/Eastern" do
Time.stubs(:now).returns(Time.local(2012, 7, 1))
assert_equal Time.local(2012, 7, 1, 10, 0), "10:00".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "10:00".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 7, 0), "10:00 -0100".to_time
assert_equal Time.utc(2012, 7, 1, 11, 0), "10:00 -0100".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 11, 0), "10:00 -0500".to_time
assert_equal Time.utc(2012, 7, 1, 15, 0), "10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 6, 0), "10:00 UTC".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 14, 0), "10:00 PST".to_time
assert_equal Time.utc(2012, 7, 1, 18, 0), "10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "10:00 PDT".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 11, 0), "10:00 EST".to_time
assert_equal Time.utc(2012, 7, 1, 15, 0), "10:00 EST".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "10:00 EDT".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "10:00 EDT".to_time(:utc)
Time.stub(:now, Time.local(2012, 7, 1)) do
assert_equal Time.local(2012, 7, 1, 10, 0), "10:00".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "10:00".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 7, 0), "10:00 -0100".to_time
assert_equal Time.utc(2012, 7, 1, 11, 0), "10:00 -0100".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 11, 0), "10:00 -0500".to_time
assert_equal Time.utc(2012, 7, 1, 15, 0), "10:00 -0500".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 6, 0), "10:00 UTC".to_time
assert_equal Time.utc(2012, 7, 1, 10, 0), "10:00 UTC".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 14, 0), "10:00 PST".to_time
assert_equal Time.utc(2012, 7, 1, 18, 0), "10:00 PST".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 13, 0), "10:00 PDT".to_time
assert_equal Time.utc(2012, 7, 1, 17, 0), "10:00 PDT".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 11, 0), "10:00 EST".to_time
assert_equal Time.utc(2012, 7, 1, 15, 0), "10:00 EST".to_time(:utc)
assert_equal Time.local(2012, 7, 1, 10, 0), "10:00 EDT".to_time
assert_equal Time.utc(2012, 7, 1, 14, 0), "10:00 EDT".to_time(:utc)
end
end
end

View File

@ -605,13 +605,15 @@ class TimeExtCalculationsTest < ActiveSupport::TestCase
end
def test_days_in_month_feb_in_common_year_without_year_arg
Time.stubs(:now).returns(Time.utc(2007))
assert_equal 28, Time.days_in_month(2)
Time.stub(:now, Time.utc(2007)) do
assert_equal 28, Time.days_in_month(2)
end
end
def test_days_in_month_feb_in_leap_year_without_year_arg
Time.stubs(:now).returns(Time.utc(2008))
assert_equal 29, Time.days_in_month(2)
Time.stub(:now, Time.utc(2008)) do
assert_equal 29, Time.days_in_month(2)
end
end
def test_last_month_on_31st
@ -623,68 +625,74 @@ class TimeExtCalculationsTest < ActiveSupport::TestCase
end
def test_today_with_time_local
Date.stubs(:current).returns(Date.new(2000, 1, 1))
assert_equal false, Time.local(1999,12,31,23,59,59).today?
assert_equal true, Time.local(2000,1,1,0).today?
assert_equal true, Time.local(2000,1,1,23,59,59).today?
assert_equal false, Time.local(2000,1,2,0).today?
Date.stub(:current, Date.new(2000, 1, 1)) do
assert_equal false, Time.local(1999,12,31,23,59,59).today?
assert_equal true, Time.local(2000,1,1,0).today?
assert_equal true, Time.local(2000,1,1,23,59,59).today?
assert_equal false, Time.local(2000,1,2,0).today?
end
end
def test_today_with_time_utc
Date.stubs(:current).returns(Date.new(2000, 1, 1))
assert_equal false, Time.utc(1999,12,31,23,59,59).today?
assert_equal true, Time.utc(2000,1,1,0).today?
assert_equal true, Time.utc(2000,1,1,23,59,59).today?
assert_equal false, Time.utc(2000,1,2,0).today?
Date.stub(:current, Date.new(2000, 1, 1)) do
assert_equal false, Time.utc(1999,12,31,23,59,59).today?
assert_equal true, Time.utc(2000,1,1,0).today?
assert_equal true, Time.utc(2000,1,1,23,59,59).today?
assert_equal false, Time.utc(2000,1,2,0).today?
end
end
def test_past_with_time_current_as_time_local
with_env_tz 'US/Eastern' do
Time.stubs(:current).returns(Time.local(2005,2,10,15,30,45))
assert_equal true, Time.local(2005,2,10,15,30,44).past?
assert_equal false, Time.local(2005,2,10,15,30,45).past?
assert_equal false, Time.local(2005,2,10,15,30,46).past?
assert_equal true, Time.utc(2005,2,10,20,30,44).past?
assert_equal false, Time.utc(2005,2,10,20,30,45).past?
assert_equal false, Time.utc(2005,2,10,20,30,46).past?
Time.stub(:current, Time.local(2005,2,10,15,30,45)) do
assert_equal true, Time.local(2005,2,10,15,30,44).past?
assert_equal false, Time.local(2005,2,10,15,30,45).past?
assert_equal false, Time.local(2005,2,10,15,30,46).past?
assert_equal true, Time.utc(2005,2,10,20,30,44).past?
assert_equal false, Time.utc(2005,2,10,20,30,45).past?
assert_equal false, Time.utc(2005,2,10,20,30,46).past?
end
end
end
def test_past_with_time_current_as_time_with_zone
with_env_tz 'US/Eastern' do
twz = Time.utc(2005,2,10,15,30,45).in_time_zone('Central Time (US & Canada)')
Time.stubs(:current).returns(twz)
assert_equal true, Time.local(2005,2,10,10,30,44).past?
assert_equal false, Time.local(2005,2,10,10,30,45).past?
assert_equal false, Time.local(2005,2,10,10,30,46).past?
assert_equal true, Time.utc(2005,2,10,15,30,44).past?
assert_equal false, Time.utc(2005,2,10,15,30,45).past?
assert_equal false, Time.utc(2005,2,10,15,30,46).past?
Time.stub(:current, twz) do
assert_equal true, Time.local(2005,2,10,10,30,44).past?
assert_equal false, Time.local(2005,2,10,10,30,45).past?
assert_equal false, Time.local(2005,2,10,10,30,46).past?
assert_equal true, Time.utc(2005,2,10,15,30,44).past?
assert_equal false, Time.utc(2005,2,10,15,30,45).past?
assert_equal false, Time.utc(2005,2,10,15,30,46).past?
end
end
end
def test_future_with_time_current_as_time_local
with_env_tz 'US/Eastern' do
Time.stubs(:current).returns(Time.local(2005,2,10,15,30,45))
assert_equal false, Time.local(2005,2,10,15,30,44).future?
assert_equal false, Time.local(2005,2,10,15,30,45).future?
assert_equal true, Time.local(2005,2,10,15,30,46).future?
assert_equal false, Time.utc(2005,2,10,20,30,44).future?
assert_equal false, Time.utc(2005,2,10,20,30,45).future?
assert_equal true, Time.utc(2005,2,10,20,30,46).future?
Time.stub(:current, Time.local(2005,2,10,15,30,45)) do
assert_equal false, Time.local(2005,2,10,15,30,44).future?
assert_equal false, Time.local(2005,2,10,15,30,45).future?
assert_equal true, Time.local(2005,2,10,15,30,46).future?
assert_equal false, Time.utc(2005,2,10,20,30,44).future?
assert_equal false, Time.utc(2005,2,10,20,30,45).future?
assert_equal true, Time.utc(2005,2,10,20,30,46).future?
end
end
end
def test_future_with_time_current_as_time_with_zone
with_env_tz 'US/Eastern' do
twz = Time.utc(2005,2,10,15,30,45).in_time_zone('Central Time (US & Canada)')
Time.stubs(:current).returns(twz)
assert_equal false, Time.local(2005,2,10,10,30,44).future?
assert_equal false, Time.local(2005,2,10,10,30,45).future?
assert_equal true, Time.local(2005,2,10,10,30,46).future?
assert_equal false, Time.utc(2005,2,10,15,30,44).future?
assert_equal false, Time.utc(2005,2,10,15,30,45).future?
assert_equal true, Time.utc(2005,2,10,15,30,46).future?
Time.stub(:current, twz) do
assert_equal false, Time.local(2005,2,10,10,30,44).future?
assert_equal false, Time.local(2005,2,10,10,30,45).future?
assert_equal true, Time.local(2005,2,10,10,30,46).future?
assert_equal false, Time.utc(2005,2,10,15,30,44).future?
assert_equal false, Time.utc(2005,2,10,15,30,45).future?
assert_equal true, Time.utc(2005,2,10,15,30,46).future?
end
end
end

View File

@ -205,45 +205,50 @@ class TimeWithZoneTest < ActiveSupport::TestCase
end
def test_today
Date.stubs(:current).returns(Date.new(2000, 1, 1))
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(1999,12,31,23,59,59) ).today?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(2000,1,1,0) ).today?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(2000,1,1,23,59,59) ).today?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(2000,1,2,0) ).today?
Date.stub(:current, Date.new(2000, 1, 1)) do
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(1999,12,31,23,59,59) ).today?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(2000,1,1,0) ).today?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(2000,1,1,23,59,59) ).today?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.utc(2000,1,2,0) ).today?
end
end
def test_past_with_time_current_as_time_local
with_env_tz 'US/Eastern' do
Time.stubs(:current).returns(Time.local(2005,2,10,15,30,45))
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).past?
Time.stub(:current, Time.local(2005,2,10,15,30,45)) do
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).past?
end
end
end
def test_past_with_time_current_as_time_with_zone
twz = ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45) )
Time.stubs(:current).returns(twz)
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).past?
Time.stub(:current, twz) do
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).past?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).past?
end
end
def test_future_with_time_current_as_time_local
with_env_tz 'US/Eastern' do
Time.stubs(:current).returns(Time.local(2005,2,10,15,30,45))
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).future?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).future?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).future?
Time.stub(:current, Time.local(2005,2,10,15,30,45)) do
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).future?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).future?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).future?
end
end
end
def test_future_with_time_current_as_time_with_zone
twz = ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45) )
Time.stubs(:current).returns(twz)
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).future?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).future?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).future?
Time.stub(:current, twz) do
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,44)).future?
assert_equal false, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,45)).future?
assert_equal true, ActiveSupport::TimeWithZone.new( nil, @time_zone, Time.local(2005,2,10,15,30,46)).future?
end
end
def test_eql?
@ -1033,19 +1038,21 @@ class TimeWithZoneMethodsForTimeAndDateTimeTest < ActiveSupport::TestCase
def test_current_returns_time_now_when_zone_not_set
with_env_tz 'US/Eastern' do
Time.stubs(:now).returns Time.local(2000)
assert_equal false, Time.current.is_a?(ActiveSupport::TimeWithZone)
assert_equal Time.local(2000), Time.current
Time.stub(:now, Time.local(2000)) do
assert_equal false, Time.current.is_a?(ActiveSupport::TimeWithZone)
assert_equal Time.local(2000), Time.current
end
end
end
def test_current_returns_time_zone_now_when_zone_set
Time.zone = ActiveSupport::TimeZone['Eastern Time (US & Canada)']
with_env_tz 'US/Eastern' do
Time.stubs(:now).returns Time.local(2000)
assert_equal true, Time.current.is_a?(ActiveSupport::TimeWithZone)
assert_equal 'Eastern Time (US & Canada)', Time.current.time_zone.name
assert_equal Time.utc(2000), Time.current.time
Time.stub(:now, Time.local(2000)) do
assert_equal true, Time.current.is_a?(ActiveSupport::TimeWithZone)
assert_equal 'Eastern Time (US & Canada)', Time.current.time_zone.name
assert_equal Time.utc(2000), Time.current.time
end
end
end

View File

@ -3,80 +3,88 @@ require 'active_support/core_ext/date_time'
require 'active_support/core_ext/numeric/time'
class TimeTravelTest < ActiveSupport::TestCase
setup do
Time.stubs now: Time.now
end
teardown do
travel_back
end
def test_time_helper_travel
expected_time = Time.now + 1.day
travel 1.day
Time.stub(:now, Time.now) do
expected_time = Time.now + 1.day
travel 1.day
assert_equal expected_time.to_s(:db), Time.now.to_s(:db)
assert_equal expected_time.to_date, Date.today
assert_equal expected_time.to_datetime.to_s(:db), DateTime.now.to_s(:db)
end
def test_time_helper_travel_with_block
expected_time = Time.now + 1.day
travel 1.day do
assert_equal expected_time.to_s(:db), Time.now.to_s(:db)
assert_equal expected_time.to_date, Date.today
assert_equal expected_time.to_datetime.to_s(:db), DateTime.now.to_s(:db)
end
end
assert_not_equal expected_time.to_s(:db), Time.now.to_s(:db)
assert_not_equal expected_time.to_date, Date.today
assert_not_equal expected_time.to_datetime.to_s(:db), DateTime.now.to_s(:db)
def test_time_helper_travel_with_block
Time.stub(:now, Time.now) do
expected_time = Time.now + 1.day
travel 1.day do
assert_equal expected_time.to_s(:db), Time.now.to_s(:db)
assert_equal expected_time.to_date, Date.today
assert_equal expected_time.to_datetime.to_s(:db), DateTime.now.to_s(:db)
end
assert_not_equal expected_time.to_s(:db), Time.now.to_s(:db)
assert_not_equal expected_time.to_date, Date.today
assert_not_equal expected_time.to_datetime.to_s(:db), DateTime.now.to_s(:db)
end
end
def test_time_helper_travel_to
expected_time = Time.new(2004, 11, 24, 01, 04, 44)
travel_to expected_time
Time.stub(:now, Time.now) do
expected_time = Time.new(2004, 11, 24, 01, 04, 44)
travel_to expected_time
assert_equal expected_time, Time.now
assert_equal Date.new(2004, 11, 24), Date.today
assert_equal expected_time.to_datetime, DateTime.now
end
def test_time_helper_travel_to_with_block
expected_time = Time.new(2004, 11, 24, 01, 04, 44)
travel_to expected_time do
assert_equal expected_time, Time.now
assert_equal Date.new(2004, 11, 24), Date.today
assert_equal expected_time.to_datetime, DateTime.now
end
end
assert_not_equal expected_time, Time.now
assert_not_equal Date.new(2004, 11, 24), Date.today
assert_not_equal expected_time.to_datetime, DateTime.now
def test_time_helper_travel_to_with_block
Time.stub(:now, Time.now) do
expected_time = Time.new(2004, 11, 24, 01, 04, 44)
travel_to expected_time do
assert_equal expected_time, Time.now
assert_equal Date.new(2004, 11, 24), Date.today
assert_equal expected_time.to_datetime, DateTime.now
end
assert_not_equal expected_time, Time.now
assert_not_equal Date.new(2004, 11, 24), Date.today
assert_not_equal expected_time.to_datetime, DateTime.now
end
end
def test_time_helper_travel_back
expected_time = Time.new(2004, 11, 24, 01, 04, 44)
Time.stub(:now, Time.now) do
expected_time = Time.new(2004, 11, 24, 01, 04, 44)
travel_to expected_time
assert_equal expected_time, Time.now
assert_equal Date.new(2004, 11, 24), Date.today
assert_equal expected_time.to_datetime, DateTime.now
travel_back
travel_to expected_time
assert_equal expected_time, Time.now
assert_equal Date.new(2004, 11, 24), Date.today
assert_equal expected_time.to_datetime, DateTime.now
travel_back
assert_not_equal expected_time, Time.now
assert_not_equal Date.new(2004, 11, 24), Date.today
assert_not_equal expected_time.to_datetime, DateTime.now
assert_not_equal expected_time, Time.now
assert_not_equal Date.new(2004, 11, 24), Date.today
assert_not_equal expected_time.to_datetime, DateTime.now
end
end
def test_travel_to_will_reset_the_usec_to_avoid_mysql_rouding
travel_to Time.utc(2014, 10, 10, 10, 10, 50, 999999) do
assert_equal 50, Time.now.sec
assert_equal 0, Time.now.usec
assert_equal 50, DateTime.now.sec
assert_equal 0, DateTime.now.usec
Time.stub(:now, Time.now) do
travel_to Time.utc(2014, 10, 10, 10, 10, 50, 999999) do
assert_equal 50, Time.now.sec
assert_equal 0, Time.now.usec
assert_equal 50, DateTime.now.sec
assert_equal 0, DateTime.now.usec
end
end
end
end

View File

@ -252,9 +252,10 @@ class TimeZoneTest < ActiveSupport::TestCase
def test_parse_with_incomplete_date
zone = ActiveSupport::TimeZone['Eastern Time (US & Canada)']
zone.stubs(:now).returns zone.local(1999,12,31)
twz = zone.parse('19:00:00')
assert_equal Time.utc(1999,12,31,19), twz.time
zone.stub(:now, zone.local(1999,12,31)) do
twz = zone.parse('19:00:00')
assert_equal Time.utc(1999,12,31,19), twz.time
end
end
def test_parse_with_day_omitted
@ -284,9 +285,10 @@ class TimeZoneTest < ActiveSupport::TestCase
def test_parse_with_missing_time_components
zone = ActiveSupport::TimeZone['Eastern Time (US & Canada)']
zone.stubs(:now).returns zone.local(1999, 12, 31, 12, 59, 59)
twz = zone.parse('2012-12-01')
assert_equal Time.utc(2012, 12, 1), twz.time
zone.stub(:now, zone.local(1999, 12, 31, 12, 59, 59)) do
twz = zone.parse('2012-12-01')
assert_equal Time.utc(2012, 12, 1), twz.time
end
end
def test_parse_with_javascript_date