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