xref: /dokuwiki/_test/tests/inc/cache_stalecheck.test.php (revision c3cf5a6c01200847740831a4d84070db01f8e820)
1*c3cf5a6cSMartin Doucha<?php
2*c3cf5a6cSMartin Doucha
3*c3cf5a6cSMartin Doucharequire_once DOKU_INC . 'inc/parserutils.php';
4*c3cf5a6cSMartin Doucha
5*c3cf5a6cSMartin Douchaclass cache_stalecheck_test extends DokuWikiTest {
6*c3cf5a6cSMartin Doucha	function test_staleness() {
7*c3cf5a6cSMartin Doucha		global $ID;
8*c3cf5a6cSMartin Doucha
9*c3cf5a6cSMartin Doucha		$ID = 'stale';
10*c3cf5a6cSMartin Doucha		$file = wikiFN($ID);
11*c3cf5a6cSMartin Doucha
12*c3cf5a6cSMartin Doucha		# Prepare test page
13*c3cf5a6cSMartin Doucha		saveWikiText($ID, 'Fresh', 'Created');
14*c3cf5a6cSMartin Doucha
15*c3cf5a6cSMartin Doucha		# Create stale cache
16*c3cf5a6cSMartin Doucha		$cache = new cache_renderer($ID, $file, 'xhtml');
17*c3cf5a6cSMartin Doucha		$cache->storeCache('Stale');
18*c3cf5a6cSMartin Doucha		$stale = $cache->retrieveCache();
19*c3cf5a6cSMartin Doucha
20*c3cf5a6cSMartin Doucha		# Prepare stale cache for testing
21*c3cf5a6cSMartin Doucha		$time = filemtime($file);
22*c3cf5a6cSMartin Doucha		touch($cache->cache, $time);
23*c3cf5a6cSMartin Doucha
24*c3cf5a6cSMartin Doucha		# Make the test
25*c3cf5a6cSMartin Doucha		$fresh = p_cached_output($file, 'xhtml', $ID);
26*c3cf5a6cSMartin Doucha		$this->assertNotEquals($fresh, $stale, 'Stale cache failed to expire');
27*c3cf5a6cSMartin Doucha	}
28*c3cf5a6cSMartin Doucha}
29*c3cf5a6cSMartin Doucha?>
30