From 7f3adbf4d801635a8199f2c931bb2a742b8aa390 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 21 May 2014 10:44:59 +1200 Subject: [PATCH] Disable caching in tests Fixes #8 --- code/caching/CachedContentFilter.php | 11 ++++++++++- tests/VersionFeedFunctionalTest.php | 9 ++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/code/caching/CachedContentFilter.php b/code/caching/CachedContentFilter.php index d3b1f23..d9ccf05 100644 --- a/code/caching/CachedContentFilter.php +++ b/code/caching/CachedContentFilter.php @@ -7,11 +7,20 @@ namespace VersionFeed\Filters; */ class CachedContentFilter extends ContentFilter { + /** + * Enable caching + * + * @config + * @var boolean + */ + private static $cache_enabled = true; + public function getContent($key, $callback) { $cache = $this->getCache(); // Return cached value if available - $result = isset($_GET['flush']) + $cacheEnabled = \Config::inst()->get(get_class(), 'cache_enabled'); + $result = (isset($_GET['flush']) || !$cacheEnabled) ? null : $cache->load($key); if($result) return $result; diff --git a/tests/VersionFeedFunctionalTest.php b/tests/VersionFeedFunctionalTest.php index f3413e5..1f40f50 100644 --- a/tests/VersionFeedFunctionalTest.php +++ b/tests/VersionFeedFunctionalTest.php @@ -17,7 +17,9 @@ class VersionFeedFunctionalTest extends FunctionalTest { $this->userIP = isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : null; Config::nest(); - Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_timeout', 20); + // Disable caching and locking by default + Config::inst()->update('VersionFeed\Filters\CachedContentFilter', 'cache_enabled', false); + Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_timeout', 0); Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_bypage', false); Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_byuserip', false); Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_cooldown', false); @@ -56,6 +58,9 @@ class VersionFeedFunctionalTest extends FunctionalTest { } public function testRateLimiting() { + // Re-enable locking just for this test + Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_timeout', 20); + Config::inst()->update('VersionFeed\Filters\CachedContentFilter', 'cache_enabled', true); $page1 = $this->createPageWithChanges(array('PublicHistory' => true, 'Title' => 'Page1')); $page2 = $this->createPageWithChanges(array('PublicHistory' => true, 'Title' => 'Page2')); @@ -106,6 +111,8 @@ class VersionFeedFunctionalTest extends FunctionalTest { // Restore setting Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_byuserip', false); + Config::inst()->update('VersionFeed\Filters\RateLimitFilter', 'lock_timeout', 0); + Config::inst()->update('VersionFeed\Filters\CachedContentFilter', 'cache_enabled', false); } public function testContainsChangesForPageOnly() {