diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-02-25 11:54:07 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-02-25 11:54:07 -0300 |
commit | 68a2a6711643db6b8b0775fe004bc0de0cdc07db (patch) | |
tree | d18132851add017e8766c533d31cac2c7e939d19 /actionview/test/template | |
parent | 5a6868b6175167d91fcfaed82b4d4627281a4878 (diff) | |
parent | ca6aba7f30ad9910f17e4c5b39667889d9518794 (diff) | |
download | rails-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.rb | 38 |
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 |