diff --git a/lib/Cake/Cache/Engine/FileEngine.php b/lib/Cake/Cache/Engine/FileEngine.php index efd7583e9..98f4aa9df 100644 --- a/lib/Cake/Cache/Engine/FileEngine.php +++ b/lib/Cake/Cache/Engine/FileEngine.php @@ -415,7 +415,10 @@ class FileEngine extends CacheEngine { $contents = new RecursiveIteratorIterator($directoryIterator, RecursiveIteratorIterator::CHILD_FIRST); foreach ($contents as $object) { $containsGroup = strpos($object->getPathName(), DS . $group . DS) !== false; - $hasPrefix = strpos($object->getBaseName(), $this->settings['prefix']) === 0; + $hasPrefix = true; + if (strlen($this->settings['prefix']) !== 0) { + $hasPrefix = strpos($object->getBaseName(), $this->settings['prefix']) === 0; + } if ($object->isFile() && $containsGroup && $hasPrefix) { $path = $object->getPathName(); $object = null; diff --git a/lib/Cake/Test/Case/Cache/Engine/FileEngineTest.php b/lib/Cake/Test/Case/Cache/Engine/FileEngineTest.php index 982729cfb..14c65ed00 100644 --- a/lib/Cake/Test/Case/Cache/Engine/FileEngineTest.php +++ b/lib/Cake/Test/Case/Cache/Engine/FileEngineTest.php @@ -530,4 +530,24 @@ class FileEngineTest extends CakeTestCase { $this->assertFalse(Cache::read('test_groups5', 'file_groups2')); $this->assertEquals('value 3', Cache::read('test_groups6', 'file_groups3')); } + +/** + * Test that clearGroup works with no prefix. + * + * @return void + */ + public function testGroupClearNoPrefix() { + Cache::config('file_groups', array( + 'engine' => 'File', + 'duration' => 3600, + 'prefix' => '', + 'groups' => array('group_a', 'group_b') + )); + Cache::write('key_1', 'value', 'file_groups'); + Cache::write('key_2', 'value', 'file_groups'); + Cache::clearGroup('group_a', 'file_groups'); + $this->assertFalse(Cache::read('key_1', 'file_groups'), 'Did not delete'); + $this->assertFalse(Cache::read('key_2', 'file_groups'), 'Did not delete'); + } + }