mirror of
https://github.com/github/rails.git
synced 2026-02-07 20:54:57 -05:00
Fix a few caching errors, expose a case thats still not working (ref #107330 [catfish]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8630 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -32,8 +32,8 @@ module ActionView
|
||||
# <i>Topics listed alphabetically</i>
|
||||
# <% end %>
|
||||
def cache(name = {}, options = nil, &block)
|
||||
template_extension = find_template_extension_for(first_render)[/\.(\w+)$/, 1].to_sym
|
||||
handler = Base.handler_for_extension(template_extension)
|
||||
template_extension = find_template_extension_for(first_render)[/\.?(\w+)$/, 1].to_sym
|
||||
handler = Base.handler_class_for_extension(template_extension)
|
||||
handler.new(@controller).cache_fragment(block, name, options)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -367,7 +367,7 @@ class FragmentCachingTest < Test::Unit::TestCase
|
||||
@controller.send(:initialize_current_url)
|
||||
end
|
||||
|
||||
def test_fragement_cache_key
|
||||
def test_fragment_cache_key
|
||||
assert_equal 'views/what a key', @controller.fragment_cache_key('what a key')
|
||||
assert_equal( "views/test.host/fragment_caching_test/some_action",
|
||||
@controller.fragment_cache_key(:controller => 'fragment_caching_test',:action => 'some_action'))
|
||||
@@ -479,3 +479,69 @@ class FragmentCachingTest < Test::Unit::TestCase
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class FunctionalCachingController < ActionController::Base
|
||||
def fragment_cached
|
||||
end
|
||||
|
||||
def html_fragment_cached_with_partial
|
||||
respond_to do |format|
|
||||
format.html
|
||||
end
|
||||
end
|
||||
|
||||
def js_fragment_cached_with_partial
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def rescue_action(e)
|
||||
raise e
|
||||
end
|
||||
end
|
||||
|
||||
FunctionalCachingController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ]
|
||||
|
||||
class FunctionalFragmentCachingTest < Test::Unit::TestCase
|
||||
def setup
|
||||
ActionController::Base.perform_caching = true
|
||||
@store = ActiveSupport::Cache::MemoryStore.new
|
||||
ActionController::Base.cache_store = @store
|
||||
@controller = FunctionalCachingController.new
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
end
|
||||
def test_fragment_caching
|
||||
get :fragment_cached
|
||||
assert_response :success
|
||||
expected_body = <<-CACHED
|
||||
Hello
|
||||
This bit's fragment cached
|
||||
CACHED
|
||||
assert_equal expected_body, @response.body
|
||||
|
||||
assert_equal "This bit's fragment cached", @store.read('views/test.host/functional_caching/fragment_cached')
|
||||
end
|
||||
|
||||
def test_fragment_caching_in_partials
|
||||
get :html_fragment_cached_with_partial
|
||||
assert_response :success
|
||||
assert_match /Fragment caching in a partial/, @response.body
|
||||
assert_match "Fragment caching in a partial", @store.read('views/test.host/functional_caching/html_fragment_cached_with_partial')
|
||||
end
|
||||
|
||||
def test_fragment_caching_in_rjs_partials
|
||||
xhr :get, :js_fragment_cached_with_partial
|
||||
assert_response :success
|
||||
assert_match /Fragment caching in a partial/, @response.body
|
||||
assert_match "Fragment caching in a partial", @store.read('views/test.host/functional_caching/js_fragment_cached_with_partial')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3
actionpack/test/fixtures/functional_caching/_partial.erb
vendored
Normal file
3
actionpack/test/fixtures/functional_caching/_partial.erb
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<% cache do %>
|
||||
Fragment caching in a partial
|
||||
<% end %>
|
||||
2
actionpack/test/fixtures/functional_caching/fragment_cached.html.erb
vendored
Normal file
2
actionpack/test/fixtures/functional_caching/fragment_cached.html.erb
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Hello
|
||||
<% cache do %>This bit's fragment cached<% end %>
|
||||
1
actionpack/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb
vendored
Normal file
1
actionpack/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<%= render :partial => 'partial' %>
|
||||
1
actionpack/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs
vendored
Normal file
1
actionpack/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
page.replace_html 'notices', :partial => 'partial'
|
||||
Reference in New Issue
Block a user