6 // required to access $_SESSION array
9 require_once 'application/Cache.php';
12 * Unitary tests for cached pages
14 class CachedTest
extends PHPUnit_Framework_TestCase
16 // test cache directory
17 protected static $testCacheDir = 'tests/dummycache';
19 // dummy cached file names / content
20 protected static $pages = array('a', 'toto', 'd7b59c');
24 * Populate the cache with dummy files
26 public function setUp()
28 if (! is_dir(self
::$testCacheDir)) {
29 mkdir(self
::$testCacheDir);
31 array_map('unlink', glob(self
::$testCacheDir.'/*'));
34 foreach (self
::$pages as $page) {
35 file_put_contents(self
::$testCacheDir.'/'.$page.'.cache', $page);
37 file_put_contents(self
::$testCacheDir.'/intru.der', 'ShouldNotBeThere');
43 public function testPurgeCachedPages()
45 purgeCachedPages(self
::$testCacheDir);
46 foreach (self
::$pages as $page) {
47 $this->assertFileNotExists(self
::$testCacheDir.'/'.$page.'.cache');
50 $this->assertFileExists(self
::$testCacheDir.'/intru.der');
54 * Purge cached pages - missing directory
56 public function testPurgeCachedPagesMissingDir()
59 'Cannot purge tests/dummycache_missing: no directory',
60 purgeCachedPages(self
::$testCacheDir.'_missing')
65 * Purge cached pages and session cache
67 public function testInvalidateCaches()
69 $this->assertArrayNotHasKey('tags', $_SESSION);
70 $_SESSION['tags'] = array('goodbye', 'cruel', 'world');
72 invalidateCaches(self
::$testCacheDir);
73 foreach (self
::$pages as $page) {
74 $this->assertFileNotExists(self
::$testCacheDir.'/'.$page.'.cache');
77 $this->assertArrayNotHasKey('tags', $_SESSION);