loaders = spl_autoload_functions(); if (!is_array($this->loaders)) { // spl_autoload_functions does not return empty array when no // autoloaders registered... $this->loaders = array(); } Zend_Loader_Autoloader::resetInstance(); $this->autoloader = Zend_Loader_Autoloader::getInstance(); $this->application = new Zend_Application('testing'); require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php'; $this->bootstrap = new ZfAppBootstrap($this->application); } public function tearDown() { // Restore original autoloaders $loaders = spl_autoload_functions(); foreach ($loaders as $loader) { spl_autoload_unregister($loader); } foreach ($this->loaders as $loader) { spl_autoload_register($loader); } Zend_Controller_Front::getInstance()->resetInstance(); // Reset autoloader instance so it doesn't affect other tests Zend_Loader_Autoloader::resetInstance(); } public function testInitializationCreatesCacheManagerInstance() { $resource = new Zend_Application_Resource_Cachemanager(array()); $resource->init(); $this->assertTrue($resource->getCachemanager() instanceof Zend_Cache_Manager); } public function testShouldReturnCacheManagerWhenComplete() { $resource = new Zend_Application_Resource_Cachemanager(array()); $manager = $resource->init(); $this->assertTrue($manager instanceof Zend_Cache_Manager); } public function testShouldMergeConfigsIfOptionsPassedForDefaultCacheTemplate() { $options = array( 'page' => array( 'backend' => array( 'options' => array( 'cache_dir' => '/foo' ) ) ) ); $resource = new Zend_Application_Resource_Cachemanager($options); $manager = $resource->init(); $cacheTemplate = $manager->getCacheTemplate('page'); $this->assertEquals('/foo', $cacheTemplate['backend']['options']['cache_dir']); } public function testShouldCreateNewCacheTemplateIfConfigNotMatchesADefaultTemplate() { $options = array( 'foo' => array( 'backend' => array( 'options' => array( 'cache_dir' => '/foo' ) ) ) ); $resource = new Zend_Application_Resource_Cachemanager($options); $manager = $resource->init(); $cacheTemplate = $manager->getCacheTemplate('foo'); $this->assertSame($options['foo'], $cacheTemplate); } public function testShouldNotMeddleWithFrontendOrBackendCapitalisation() { $options = array( 'foo' => array( 'backend' => array( 'name' => 'BlackHole' ) ) ); $resource = new Zend_Application_Resource_Cachemanager($options); $manager = $resource->init(); $cacheTemplate = $manager->getCacheTemplate('foo'); $this->assertEquals('BlackHole', $cacheTemplate['backend']['name']); } public function testEmptyBackendOptionsShouldNotResultInError() { $options = array( 'foo' => array( 'frontend' => array( 'name' => 'Core', 'options' => array( 'lifetime' => 7200, ), ), 'backend' => array( 'name' => 'black.hole', ), ), ); $resource = new Zend_Application_Resource_Cachemanager($options); $manager = $resource->init(); $cache = $manager->getCache('foo'); $this->assertTrue($cache instanceof Zend_Cache_Core); } /** * @group ZF-9738 */ public function testZendServer() { if (!function_exists('zend_disk_cache_store')) { $this->markTestSkipped('ZendServer is required for this test'); } $options = array( 'foo' => array( 'frontend' => array( 'name' => 'Core', 'options' => array( 'lifetime' => 7200, ), ), 'backend' => array( 'name' => 'ZendServer_Disk', ), ), ); $resource = new Zend_Application_Resource_Cachemanager($options); $manager = $resource->init(); $cache = $manager->getCache('foo')->getBackend(); $this->assertTrue($cache instanceof Zend_Cache_Backend_ZendServer_Disk); } /** * @group ZF-9737 */ public function testCustomFrontendBackendNaming() { $options = array( 'zf9737' => array( 'frontend' => array( 'name' => 'custom-naming', 'customFrontendNaming' => false), 'backend' => array('name' => 'Zend_Cache_Backend_Custom_Naming', 'customBackendNaming' => true), 'frontendBackendAutoload' => true) ); $resource = new Zend_Application_Resource_Cachemanager($options); $manager = $resource->init(); $cache = $manager->getCache('zf9737'); $this->assertTrue($cache->getBackend() instanceof Zend_Cache_Backend_Custom_Naming); $this->assertTrue($cache instanceof Zend_Cache_Frontend_CustomNaming); } } class Zend_Cache_Backend_Custom_Naming extends Zend_Cache_Backend { } class Zend_Cache_Frontend_CustomNaming extends Zend_Cache_Core { } if (PHPUnit_MAIN_METHOD == 'Zend_Application_Resource_CacheManagerTest::main') { Zend_Application_Resource_CacheManagerTest::main(); }