aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2016-02-12 22:37:11 +0100
committerKasper Timm Hansen <kaspth@gmail.com>2016-02-12 22:37:11 +0100
commita88c5ff96de98b67c75a04711847b3a29c2df411 (patch)
treef764d9b4d5795704e445dbd5eaab0e6bd7076bcb /actionpack
parent29e5c2057808c3c32ddf0d2b3d99224037d15a62 (diff)
downloadrails-a88c5ff96de98b67c75a04711847b3a29c2df411.tar.gz
rails-a88c5ff96de98b67c75a04711847b3a29c2df411.tar.bz2
rails-a88c5ff96de98b67c75a04711847b3a29c2df411.zip
Only write to collection cache if we have a callable cache key.
A callable cache key writes to the collection cache under a certain namespace. Which means if we don't have scoped cache key we can just rely on the `cache model_name do` in the templates to cache them. Less writes, more sharing. Add `assert_customer_cached` to better illustrate this in tests, and remove tests which then don't communicate as much.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/test/controller/caching_test.rb23
1 files changed, 8 insertions, 15 deletions
diff --git a/actionpack/test/controller/caching_test.rb b/actionpack/test/controller/caching_test.rb
index 2de716aa00..7556f984f2 100644
--- a/actionpack/test/controller/caching_test.rb
+++ b/actionpack/test/controller/caching_test.rb
@@ -410,6 +410,7 @@ class AutomaticCollectionCacheTest < ActionController::TestCase
def test_collection_fetches_cached_views
get :index
assert_equal 1, @controller.partial_rendered_times
+ assert_customer_cached 'david/1', 'david, 1'
get :index
assert_equal 1, @controller.partial_rendered_times
@@ -441,23 +442,15 @@ class AutomaticCollectionCacheTest < ActionController::TestCase
def test_caching_with_callable_cache_key
get :index_with_callable_cache_key
- assert_equal 1, @controller.partial_rendered_times
- assert_select ':root', 'david, 1'
-
- get :index_with_callable_cache_key
- assert_equal 1, @controller.partial_rendered_times
- assert_select ':root', 'david, 1'
+ assert_customer_cached 'cached_david', 'david, 1'
+ assert_customer_cached 'david/1', 'david, 1'
end
- def test_caching_mixing_callable_cache_key_and_automatic_caching
- get :index
- assert_equal 1, @controller.partial_rendered_times
- assert_select ':root', 'david, 1'
-
- get :index_with_callable_cache_key
- assert_equal 1, @controller.partial_rendered_times, 'individual cache not reused with collection'
- assert_select ':root', 'david, 1'
- end
+ private
+ def assert_customer_cached(key, content)
+ assert_match content,
+ ActionView::PartialRenderer.collection_cache.read("views/#{key}/7c228ab609f0baf0b1f2367469210937")
+ end
end
class FragmentCacheKeyTestController < CachingController