Cache: simplify cached content cleanup, improve tests

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
This commit is contained in:
VirtualTam 2015-08-13 21:39:51 +02:00
parent 01e48f269d
commit aedd62e2b8
2 changed files with 23 additions and 15 deletions

View file

@ -7,26 +7,18 @@
* Purges all cached pages
*
* @param string $pageCacheDir page cache directory
*
* @return mixed an error string if the directory is missing
*/
function purgeCachedPages($pageCacheDir)
{
if (! is_dir($pageCacheDir)) {
return;
$error = 'Cannot purge '.$pageCacheDir.': no directory';
error_log($error);
return $error;
}
// TODO: check write access to the cache directory
$handler = opendir($pageCacheDir);
if ($handler == false) {
return;
}
while (($filename = readdir($handler)) !== false) {
if (endsWith($filename, '.cache')) {
unlink($pageCacheDir.'/'.$filename);
}
}
closedir($handler);
array_map('unlink', glob($pageCacheDir.'/*.cache'));
}
/**

View file

@ -27,11 +27,14 @@ public function setUp()
{
if (! is_dir(self::$testCacheDir)) {
mkdir(self::$testCacheDir);
} else {
array_map('unlink', glob(self::$testCacheDir.'/*'));
}
foreach (self::$pages as $page) {
file_put_contents(self::$testCacheDir.'/'.$page.'.cache', $page);
}
file_put_contents(self::$testCacheDir.'/intru.der', 'ShouldNotBeThere');
}
/**
@ -42,7 +45,20 @@ public function testPurgeCachedPages()
purgeCachedPages(self::$testCacheDir);
foreach (self::$pages as $page) {
$this->assertFileNotExists(self::$testCacheDir.'/'.$page.'.cache');
}
}
$this->assertFileExists(self::$testCacheDir.'/intru.der');
}
/**
* Purge cached pages - missing directory
*/
public function testPurgeCachedPagesMissingDir()
{
$this->assertEquals(
'Cannot purge tests/dummycache_missing: no directory',
purgeCachedPages(self::$testCacheDir.'_missing')
);
}
/**