_className = $className; $this->_root = dirname(__FILE__); $this->config_ini=parse_ini_file(dirname(dirname($this->_root)).DIRECTORY_SEPARATOR. 'config.ini'); date_default_timezone_set('UTC'); } public function setUp($notag = false) { $this->mkdir(); $this->_instance->setDirectives(array('logging' => true)); if ($notag) { $this->_instance->save('bar : data to cache', 'bar'); $this->_instance->save('bar2 : data to cache', 'bar2'); $this->_instance->save('bar3 : data to cache', 'bar3'); } else { $this->_instance->save('bar : data to cache', 'bar', array('tag3', 'tag4')); $this->_instance->save('bar2 : data to cache', 'bar2', array('tag3', 'tag1')); $this->_instance->save('bar3 : data to cache', 'bar3', array('tag2', 'tag3')); } } public function mkdir() { @mkdir($this->getTmpDir()); } public function rmdir() { @rmdir($this->getTmpDir()); } public function tearDown() { $this->_instance->clean(); $this->rmdir(); } public function getTmpDir() { //check whether the path given in config.ini is writeable if (is_writeable($this->config_ini['tmpdir'])){ return $this->config_ini['tmpdir'].DIRECTORY_SEPARATOR . 'zend_cache_tmp_dir'; // if not, is TMPDIR exported? }elseif (getenv('TMPDIR')){ return getenv('TMPDIR').DIRECTORY_SEPARATOR . 'zend_cache_tmp_dir'; // if all else fails.. }else{ return $this->_root . DIRECTORY_SEPARATOR . 'zend_cache_tmp_dir'; } } public function testConstructorCorrectCall() { $this->fail('PLEASE IMPLEMENT A testConstructorCorrectCall !!!'); } public function testConstructorBadArgument() { try { $class = $this->_className; $test = new $class('foo'); } catch (Zend_Cache_Exception $e) { return; } $this->fail('Zend_Cache_Exception was expected but not thrown'); } public function testConstructorBadOption() { try { $class = $this->_className; $test = new $class(array('foo' => 'bar')); } catch (Zend_Cache_Exception $e) { return; } $this->fail('Zend_Cache_Exception was expected but not thrown'); } public function testSetDirectivesCorrectCall() { $this->_instance->setDirectives(array('lifetime' => 3600, 'logging' => true)); } public function testSetDirectivesBadArgument() { try { $this->_instance->setDirectives('foo'); } catch (Zend_Cache_Exception $e) { return; } $this->fail('Zend_Cache_Exception was expected but not thrown'); } public function testSetDirectivesBadDirective() { // A bad directive (not known by a specific backend) is possible // => so no exception here $this->_instance->setDirectives(array('foo' => true, 'lifetime' => 3600)); } public function testSetDirectivesBadDirective2() { try { $this->_instance->setDirectives(array('foo' => true, 12 => 3600)); } catch (Zend_Cache_Exception $e) { return; } $this->fail('Zend_Cache_Exception was expected but not thrown'); } public function testSaveCorrectCall() { $res = $this->_instance->save('data to cache', 'foo', array('tag1', 'tag2')); $this->assertTrue($res); } public function testSaveWithNullLifeTime() { $this->_instance->setDirectives(array('lifetime' => null)); $res = $this->_instance->save('data to cache', 'foo', array('tag1', 'tag2')); $this->assertTrue($res); } public function testSaveWithSpecificLifeTime() { $this->_instance->setDirectives(array('lifetime' => 3600)); $res = $this->_instance->save('data to cache', 'foo', array('tag1', 'tag2'), 10); $this->assertTrue($res); } public function testRemoveCorrectCall() { $this->assertTrue($this->_instance->remove('bar')); $this->assertFalse($this->_instance->test('bar')); $this->assertFalse($this->_instance->remove('barbar')); $this->assertFalse($this->_instance->test('barbar')); } public function testTestWithAnExistingCacheId() { $res = $this->_instance->test('bar'); if (!$res) { $this->fail('test() return false'); } if (!($res > 999999)) { $this->fail('test() return an incorrect integer'); } return; } public function testTestWithANonExistingCacheId() { $this->assertFalse($this->_instance->test('barbar')); } public function testTestWithAnExistingCacheIdAndANullLifeTime() { $this->_instance->setDirectives(array('lifetime' => null)); $res = $this->_instance->test('bar'); if (!$res) { $this->fail('test() return false'); } if (!($res > 999999)) { $this->fail('test() return an incorrect integer'); } return; } public function testGetWithANonExistingCacheId() { $this->assertFalse($this->_instance->load('barbar')); } public function testGetWithAnExistingCacheId() { $this->assertEquals('bar : data to cache', $this->_instance->load('bar')); } public function testGetWithAnExistingCacheIdAndUTFCharacters() { $data = '"""""' . "'" . '\n' . 'ééééé'; $this->_instance->save($data, 'foo'); $this->assertEquals($data, $this->_instance->load('foo')); } public function testGetWithAnExpiredCacheId() { $this->_instance->___expire('bar'); $this->_instance->setDirectives(array('lifetime' => -1)); $this->assertFalse($this->_instance->load('bar')); $this->assertEquals('bar : data to cache', $this->_instance->load('bar', true)); } public function testCleanModeAll() { $this->assertTrue($this->_instance->clean('all')); $this->assertFalse($this->_instance->test('bar')); $this->assertFalse($this->_instance->test('bar2')); } public function testCleanModeOld() { $this->_instance->___expire('bar2'); $this->assertTrue($this->_instance->clean('old')); $this->assertTrue($this->_instance->test('bar') > 999999); $this->assertFalse($this->_instance->test('bar2')); } public function testCleanModeMatchingTags() { $this->assertTrue($this->_instance->clean('matchingTag', array('tag3'))); $this->assertFalse($this->_instance->test('bar')); $this->assertFalse($this->_instance->test('bar2')); } public function testCleanModeMatchingTags2() { $this->assertTrue($this->_instance->clean('matchingTag', array('tag3', 'tag4'))); $this->assertFalse($this->_instance->test('bar')); $this->assertTrue($this->_instance->test('bar2') > 999999); } public function testCleanModeNotMatchingTags() { $this->assertTrue($this->_instance->clean('notMatchingTag', array('tag3'))); $this->assertTrue($this->_instance->test('bar') > 999999); $this->assertTrue($this->_instance->test('bar2') > 999999); } public function testCleanModeNotMatchingTags2() { $this->assertTrue($this->_instance->clean('notMatchingTag', array('tag4'))); $this->assertTrue($this->_instance->test('bar') > 999999); $this->assertFalse($this->_instance->test('bar2')); } public function testCleanModeNotMatchingTags3() { $this->assertTrue($this->_instance->clean('notMatchingTag', array('tag4', 'tag1'))); $this->assertTrue($this->_instance->test('bar') > 999999); $this->assertTrue($this->_instance->test('bar2') > 999999); $this->assertFalse($this->_instance->test('bar3')); } }