diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-03-17 17:30:15 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-03-17 17:30:15 -0300 |
commit | a42c9528d8556425681952f42269699bcbe0422f (patch) | |
tree | c5b5c3db667d7992846a060526578491805a93a6 /activesupport/test | |
parent | ec850899d5a5de07ad48806cd5862b913c279929 (diff) | |
parent | 23767c0c41fa51ebef1dfb11bc166c07e93897ac (diff) | |
download | rails-a42c9528d8556425681952f42269699bcbe0422f.tar.gz rails-a42c9528d8556425681952f42269699bcbe0422f.tar.bz2 rails-a42c9528d8556425681952f42269699bcbe0422f.zip |
Merge pull request #19296 from Wildebeest/fix-race-ttl
Skip the `:race_condition_ttl` branch if the option is 0 or nil.
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/caching_test.rb | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index 7f5f8feb0d..4953550c45 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -399,15 +399,16 @@ module CacheStoreBehavior 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" + 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' end - assert_equal "baz", result + assert_equal 'baz', result end def test_race_condition_protection_is_limited @@ -437,6 +438,17 @@ module CacheStoreBehavior 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" + end + assert_equal "baz", result + end + def test_crazy_key_characters crazy_key = "#/:*(<+=> )&$%@?;'\"\'`~-" assert @cache.write(crazy_key, "1", :raw => true) |