aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/caching_test.rb
diff options
context:
space:
mode:
authorBrian Durand <brian@embellishedvisions.com>2011-07-29 17:27:45 -0500
committerBrian Durand <brian@embellishedvisions.com>2011-07-29 17:27:45 -0500
commita263f377978fc07515b42808ebc1f7894fafaa3a (patch)
tree36e49daa11d6bccf7ac7c907eb5562ad2af4ab0d /activesupport/test/caching_test.rb
parentcaacf85673b880d22d23443e32c24234e3b2f347 (diff)
downloadrails-a263f377978fc07515b42808ebc1f7894fafaa3a.tar.gz
rails-a263f377978fc07515b42808ebc1f7894fafaa3a.tar.bz2
rails-a263f377978fc07515b42808ebc1f7894fafaa3a.zip
Change ActiveSupport::Cache behavior to always return duplicate objects instead of frozen objects.
Diffstat (limited to 'activesupport/test/caching_test.rb')
-rw-r--r--activesupport/test/caching_test.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb
index 402c6695aa..dff3d6ef0d 100644
--- a/activesupport/test/caching_test.rb
+++ b/activesupport/test/caching_test.rb
@@ -204,7 +204,7 @@ module CacheStoreBehavior
@cache.write('foo', 'bar', :compress => true)
raw_value = @cache.send(:read_entry, 'foo', {}).raw_value
assert_equal 'bar', @cache.read('foo')
- assert_equal 'bar', raw_value
+ assert_equal 'bar', Marshal.load(raw_value)
end
def test_read_and_write_compressed_large_data
@@ -270,10 +270,12 @@ module CacheStoreBehavior
assert !@cache.exist?('foo')
end
- def test_store_objects_should_be_immutable
+ def test_read_should_return_a_different_object_id_each_time_it_is_called
@cache.write('foo', 'bar')
- assert_raise(ActiveSupport::FrozenObjectError) { @cache.read('foo').gsub!(/.*/, 'baz') }
- assert_equal 'bar', @cache.read('foo')
+ assert_not_equal @cache.read('foo').object_id, @cache.read('foo').object_id
+ value = @cache.read('foo')
+ value << 'bingo'
+ assert_not_equal value, @cache.read('foo')
end
def test_original_store_objects_should_not_be_immutable
@@ -551,7 +553,8 @@ end
class MemoryStoreTest < ActiveSupport::TestCase
def setup
- @cache = ActiveSupport::Cache.lookup_store(:memory_store, :expires_in => 60, :size => 100)
+ @record_size = Marshal.dump("aaaaaaaaaa").bytesize
+ @cache = ActiveSupport::Cache.lookup_store(:memory_store, :expires_in => 60, :size => @record_size * 10)
end
include CacheStoreBehavior
@@ -566,7 +569,7 @@ class MemoryStoreTest < ActiveSupport::TestCase
@cache.write(5, "eeeeeeeeee") && sleep(0.001)
@cache.read(2) && sleep(0.001)
@cache.read(4)
- @cache.prune(30)
+ @cache.prune(@record_size * 3)
assert_equal true, @cache.exist?(5)
assert_equal true, @cache.exist?(4)
assert_equal false, @cache.exist?(3)
@@ -719,7 +722,7 @@ class CacheEntryTest < ActiveSupport::TestCase
def test_non_compress_values
entry = ActiveSupport::Cache::Entry.new("value")
assert_equal "value", entry.value
- assert_equal "value", entry.raw_value
+ assert_equal "value", Marshal.load(entry.raw_value)
assert_equal false, entry.compressed?
end
end