| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * Limb PHP Framework 4 * 5 * @link http://limb-project.com 6 * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com) 7 * @license LGPL http://www.gnu.org/copyleft/lesser.html 8 */ 9 lmb_require('limb/net/src/lmbUri.class.php'); 10 lmb_require('limb/web_cache/src/lmbFullPageCacheRuleset.class.php'); 11 lmb_require('limb/web_cache/src/lmbFullPageCachePolicy.class.php'); 12 lmb_require('limb/web_cache/src/lmbFullPageCache.class.php'); 13 lmb_require('limb/web_cache/src/lmbFullPageCacheUser.class.php'); 14 lmb_require('limb/web_cache/src/lmbFullPageCacheWriter.class.php'); 15 lmb_require('limb/web_cache/src/lmbFullPageCacheIniPolicyLoader.class.php'); 16 lmb_require('limb/web_cache/src/lmbFullPageCacheRequest.class.php'); 17 lmb_require('limb/net/src/lmbHttpRequest.class.php'); 18 lmb_require('limb/config/src/lmbFakeIni.class.php'); 19 20 class lmbFullPageCacheAcceptanceTest extends UnitTestCase 21 { 22 protected $toolkit; 23 protected $ruleset; 24 protected $cache_writer; 25 26 function setUp() 27 { 28 $this->toolkit = lmbToolkit :: save(); 29 30 $this->cache_writer = new lmbFullPageCacheWriter(LIMB_VAR_DIR . '/pages'); 31 $this->cache_writer->flushAll(); 32 } 33 34 function tearDown() 35 { 36 $this->cache_writer->flushAll(); 37 lmbToolkit :: restore(); 38 } 39 40 function testAll() 41 { 42 $this->_registerRules('[non-matching-rule] 43 path_regex = ~no-match~ 44 45 [matching-rule] 46 path_regex = ~path~ 47 request[id1] = * 48 request[id2] = *' 49 ); 50 51 $user = new lmbFullPageCacheUser(); 52 $http_request = new lmbHttpRequest('http://dot.com/path?id1=test1&id2=test2', array(), array()); 53 $valid_request = new lmbFullPageCacheRequest($http_request, $user); 54 55 $cache = new lmbFullPageCache($this->cache_writer, $this->policy); 56 57 //first time reading 58 $this->assertTrue($cache->openSession($valid_request)); 59 $this->assertFalse($cache->get()); 60 $cache->save($content = 'test'); 61 62 //repeated reading 63 $this->assertTrue($cache->openSession($valid_request)); 64 $this->assertTrue($cache->get()); 65 66 //invalid request 67 $user = new lmbFullPageCacheUser(); 68 $http_request = new lmbHttpRequest('http://dot.com', array(), array()); 69 $invalid_request = new lmbFullPageCacheRequest($http_request, $user); 70 71 $this->assertFalse($cache->openSession($invalid_request)); 72 } 73 74 function testRuleNameMakeSenseInOrdering() 75 { 76 $this->_registerRules('[30-matching-rule] 77 path_regex = ~path~ 78 request[id1] = * 79 request[id2] = * 80 81 [20-another-matching-rule] 82 path_regex = ~path-more-detailed~ 83 type=deny' 84 ); 85 86 $user = new lmbFullPageCacheUser(); 87 $cache = new lmbFullPageCache($this->cache_writer, $this->policy); 88 89 //cache deny, because rule should go first 90 $http_request = new lmbHttpRequest('http://dot.com/path-more-detailed?id1=test1&id2=test2', array(), array()); 91 $not_cached_request = new lmbFullPageCacheRequest($http_request, $user); 92 $this->assertFalse($cache->openSession($not_cached_request)); 93 94 //valid 95 $http_request = new lmbHttpRequest('http://dot.com/path?id1=test1&id2=test2', array(), array()); 96 $cached_request = new lmbFullPageCacheRequest($http_request, $user); 97 98 //first time reading 99 $this->assertTrue($cache->openSession($cached_request)); 100 $this->assertFalse($cache->get()); 101 $cache->save($content = 'this is cached one'); 102 103 //repeated reading 104 $this->assertTrue($cache->openSession($cached_request)); 105 $this->assertTrue($cache->get()); 106 $this->assertEqual($cache->get(), $content); 107 } 108 109 function _registerRules($content) 110 { 111 $this->toolkit->setConf('cache.ini', new lmbFakeIni($content)); 112 113 $loader = new lmbFullPageCacheIniPolicyLoader('cache.ini'); 114 $this->policy = $loader->load(); 115 } 116 } 117 118 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Dec 1 03:56:46 2008 | Cross-referenced by PHPXref 0.7 |