aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/CacheTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/CacheTest.php')
-rw-r--r--tests/CacheTest.php63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/CacheTest.php b/tests/CacheTest.php
new file mode 100644
index 00000000..4caf6552
--- /dev/null
+++ b/tests/CacheTest.php
@@ -0,0 +1,63 @@
1<?php
2/**
3 * Cache tests
4 */
5
6// required to access $_SESSION array
7session_start();
8
9require_once 'application/Cache.php';
10
11/**
12 * Unitary tests for cached pages
13 */
14class 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}