aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test/template
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2015-02-25 11:54:07 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2015-02-25 11:54:07 -0300
commit68a2a6711643db6b8b0775fe004bc0de0cdc07db (patch)
treed18132851add017e8766c533d31cac2c7e939d19 /actionview/test/template
parent5a6868b6175167d91fcfaed82b4d4627281a4878 (diff)
parentca6aba7f30ad9910f17e4c5b39667889d9518794 (diff)
downloadrails-68a2a6711643db6b8b0775fe004bc0de0cdc07db.tar.gz
rails-68a2a6711643db6b8b0775fe004bc0de0cdc07db.tar.bz2
rails-68a2a6711643db6b8b0775fe004bc0de0cdc07db.zip
Merge pull request #18948 from kaspth/automatic-collection-caching
Merge multi_fetch_fragments.
Diffstat (limited to 'actionview/test/template')
-rw-r--r--actionview/test/template/render_test.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/actionview/test/template/render_test.rb b/actionview/test/template/render_test.rb
index 94af1dc3ad..22665b6844 100644
--- a/actionview/test/template/render_test.rb
+++ b/actionview/test/template/render_test.rb
@@ -598,3 +598,41 @@ class LazyViewRenderTest < ActiveSupport::TestCase
silence_warnings { Encoding.default_external = old }
end
end
+
+class CachedCollectionViewRenderTest < CachedViewRenderTest
+ class CachedCustomer < Customer; end
+
+ teardown do
+ ActionView::PartialRenderer.collection_cache.clear
+ end
+
+ test "with custom key" do
+ customer = Customer.new("david")
+ key = ActionController::Base.new.fragment_cache_key([customer, 'key'])
+
+ ActionView::PartialRenderer.collection_cache.write(key, 'Hello')
+
+ assert_equal "Hello",
+ @view.render(partial: "test/customer", collection: [customer], cache: ->(item) { [item, 'key'] })
+ end
+
+ test "automatic caching with inferred cache name" do
+ customer = CachedCustomer.new("david")
+ key = ActionController::Base.new.fragment_cache_key(customer)
+
+ ActionView::PartialRenderer.collection_cache.write(key, 'Cached')
+
+ assert_equal "Cached",
+ @view.render(partial: "test/cached_customer", collection: [customer])
+ end
+
+ test "automatic caching with as name" do
+ customer = CachedCustomer.new("david")
+ key = ActionController::Base.new.fragment_cache_key(customer)
+
+ ActionView::PartialRenderer.collection_cache.write(key, 'Cached')
+
+ assert_equal "Cached",
+ @view.render(partial: "test/cached_customer_as", collection: [customer], as: :buyer)
+ end
+end