[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/web_cache/tests/cases/ -> lmbFullPageCacheAcceptanceTest.class.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 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  ?>


Generated: Mon Dec 1 03:56:46 2008 Cross-referenced by PHPXref 0.7