Permalink
Browse files

Fixes "Cached fragment hit" written to log even if fragment is not ca…

…ched (Erik Andrejko) [#2917 state:resolved]
  • Loading branch information...
1 parent 0fbeaa9 commit efcfce50c417975ee038a107755a1542a690d39b @wycats wycats committed Aug 8, 2009
@@ -36,8 +36,8 @@ def fragment_cache_key(key)
def fragment_for(buffer, name = {}, options = nil, &block) #:nodoc:
if perform_caching
- if cache = read_fragment(name, options)
- buffer.concat(cache)
+ if fragment_exist?(name,options)
+ buffer.concat(read_fragment(name, options))
else
pos = buffer.length
block.call
@@ -625,6 +625,21 @@ def test_fragment_for
assert !fragment_computed
assert_equal 'generated till now -> fragment content', buffer
end
+
+ def test_fragment_for_logging
+ fragment_computed = false
+
+ @controller.class.expects(:benchmark).with('Cached fragment exists?: views/expensive')
+ @controller.class.expects(:benchmark).with('Cached fragment miss: views/expensive')
+ @controller.class.expects(:benchmark).with('Cached fragment hit: views/expensive').never
+
+ buffer = 'generated till now -> '
+ @controller.fragment_for(buffer, 'expensive') { fragment_computed = true }
+
+ assert fragment_computed
+ assert_equal 'generated till now -> ', buffer
+ end
+
end
class FunctionalCachingController < ActionController::Base

0 comments on commit efcfce5

Please sign in to comment.