Permalink
Browse files

ActionController::Caching depends on RackDelegation and AbstractContr…

…oller::Callbacks
  • Loading branch information...
1 parent 966371a commit 7f937914576c65a01f3a9528d1728720c6c400c5 @spastorino spastorino committed Jun 13, 2012
Showing with 35 additions and 0 deletions.
  1. +3 −0 actionpack/lib/action_controller/caching.rb
  2. +32 −0 actionpack/test/metal/caching_test.rb
@@ -55,6 +55,9 @@ def cache_configured?
end
end
+ include RackDelegation
+ include AbstractController::Callbacks
+
include ConfigMethods
include Pages, Actions, Fragments
include Sweeping if defined?(ActiveRecord)
@@ -0,0 +1,32 @@
+require 'abstract_unit'
+
+CACHE_DIR = 'test_cache'
+# Don't change '/../temp/' cavalierly or you might hose something you don't want hosed
+FILE_STORE_PATH = File.join(File.dirname(__FILE__), '/../temp/', CACHE_DIR)
+
+class CachingController < ActionController::Metal
+ abstract!
+
+ include ActionController::Caching
+
+ self.page_cache_directory = FILE_STORE_PATH
+ self.cache_store = :file_store, FILE_STORE_PATH
+end
+
+class PageCachingTestController < CachingController
+ caches_page :ok
+
+ def ok
+ self.response_body = "ok"
+ end
+end
+
+class PageCachingTest < ActionController::TestCase
+ tests PageCachingTestController
+
+ def test_should_cache_get_with_ok_status
+ get :ok
+ assert_response :ok
+ assert File.exist?("#{FILE_STORE_PATH}/page_caching_test/ok.html"), "get with ok status should have been cached"
+ end
+end

0 comments on commit 7f93791

Please sign in to comment.