]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - tests/CacheTest.php
CachedPage: move to a proper file, add tests
[github/shaarli/Shaarli.git] / tests / CacheTest.php
1 <?php
2 /**
3 * Cache tests
4 */
5
6 // required to access $_SESSION array
7 session_start();
8
9 require_once 'application/Cache.php';
10
11 /**
12 * Unitary tests for cached pages
13 */
14 class CachedTest extends PHPUnit_Framework_TestCase
15 {
16 // test cache directory
17 protected static $testCacheDir = 'tests/dummycache';
18
19 // dummy cached file names / content
20 protected static $pages = array('a', 'toto', 'd7b59c');
21
22
23 /**
24 * Populate the cache with dummy files
25 */
26 public function setUp()
27 {
28 if (! is_dir(self::$testCacheDir)) {
29 mkdir(self::$testCacheDir);
30 }
31
32 foreach (self::$pages as $page) {
33 file_put_contents(self::$testCacheDir.'/'.$page.'.cache', $page);
34 }
35 }
36
37 /**
38 * Purge cached pages
39 */
40 public function testPurgeCachedPages()
41 {
42 purgeCachedPages(self::$testCacheDir);
43 foreach (self::$pages as $page) {
44 $this->assertFileNotExists(self::$testCacheDir.'/'.$page.'.cache');
45 }
46 }
47
48 /**
49 * Purge cached pages and session cache
50 */
51 public function testInvalidateCaches()
52 {
53 $this->assertArrayNotHasKey('tags', $_SESSION);
54 $_SESSION['tags'] = array('goodbye', 'cruel', 'world');
55
56 invalidateCaches(self::$testCacheDir);
57 foreach (self::$pages as $page) {
58 $this->assertFileNotExists(self::$testCacheDir.'/'.$page.'.cache');
59 }
60
61 $this->assertArrayNotHasKey('tags', $_SESSION);
62 }
63 }