]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - tests/CacheTest.php
CachedPage: move to a proper file, add tests
[github/shaarli/Shaarli.git] / tests / CacheTest.php
CommitLineData
01e48f26
V
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}