public function testFeed() { Kwf_Component_Cache::setInstance(Kwf_Component_Cache::CACHE_BACKEND_FNF); $feed = Kwf_Component_Data_Root::getInstance()->getChildComponent('_feed'); $xml = $feed->getComponent()->getXml(); $rows = Kwf_Component_Cache::getInstance()->getModel()->getRows(); $row = $rows->current(); $feedRow = Kwf_Model_Abstract::getInstance('Kwc_Basic_Feed_Model')->getRows()->current(); // XML prüfen $this->assertEquals('<?xml', substr($xml, 0, 5)); $this->assertTrue(strpos($xml, '<rss') !== false); $this->assertTrue(strpos($xml, 'testtitle') !== false); $this->assertTrue(strpos($xml, 'testdescription') !== false); $this->assertTrue(strpos($xml, 'testlink') !== false); // Cache-Eintrag prüfen $this->assertEquals($xml, $feed->getComponent()->getXml()); $this->assertEquals(1, count($rows)); $this->assertEquals($xml, $row->content); // Cache-Eintrag ändern um festzustellen, ob eh Cache verwendet wird $feedRow->description = 'foo'; $feedRow->save(); $this->assertEquals($row->content, $feed->getComponent()->getXml()); // Cache löschen $this->_process(); $xml = $feed->getComponent()->getXml(); $this->assertEquals('<?xml', substr($xml, 0, 5)); $this->assertTrue(strpos($xml, '<rss') !== false); }
private function _setup($rootClass) { Kwf_Component_Data_Root::setComponentClass($rootClass); $this->_root = Kwf_Component_Data_Root::getInstance(); Kwf_Component_Cache::setInstance(Kwf_Component_Cache::CACHE_BACKEND_FNF); Kwf_Cache::factory('Core', 'Memcached', array('lifetime' => null, 'automatic_cleaning_factor' => false, 'automatic_serialization' => true))->clean(); Kwf_Cache_Simple::resetZendCache(); }
public function indexAction() { Zend_Registry::set('db', false); Kwf_Test_SeparateDb::setDbFromCookie(); // setzt es nur wenn es das cookie wirklich gibt //FnF models setzen damit tests nicht in echte tabellen schreiben Kwf_Component_Cache::setInstance(Kwf_Component_Cache::CACHE_BACKEND_FNF); Kwf_Component_Cache_Memory::setInstance(new Kwf_Component_Cache_MemoryBlackHole()); /* if (class_exists('APCIterator')) { $prefix = Kwf_Cache::getUniquePrefix(); apc_delete_file(new APCIterator('user', '#^'.$prefix.'#')); } else { apc_clear_cache('user'); } */ Kwf_Component_Data_Root::setComponentClass($this->_getParam('root')); Zend_Registry::set('testRootComponentClass', $this->_getParam('root')); $root = Kwf_Component_Data_Root::getInstance(); $root->setFilename('kwf/kwctest/' . $this->_getParam('root')); $url = $this->_getParam('url'); $urlParts = explode('/', $url); if (is_array($urlParts) && $urlParts[0] == 'media') { if (sizeof($urlParts) != 7) { throw new Kwf_Exception_NotFound(); } $class = $urlParts[1]; $id = $urlParts[2]; $type = $urlParts[3]; $checksum = $urlParts[4]; // time() wäre der 5er, wird aber nur wegen browsercache benötigt $filename = $urlParts[6]; if ($checksum != Kwf_Media::getChecksum($class, $id, $type, $filename)) { throw new Kwf_Exception_AccessDenied('Access to file not allowed.'); } Kwf_Media_Output::output(Kwf_Media::getOutput($class, $id, $type)); } if ($url == 'kwf/util/kwc/render') { if (isset($_REQUEST['url'])) { $_REQUEST['url'] = str_replace('/' . $root->filename, '', $_REQUEST['url']); } Kwf_Util_Component::dispatchRender(); } $domain = 'http://' . Zend_Registry::get('config')->server->domain; $data = $root->getPageByUrl($domain . Kwf_Setup::getBaseUrl() . '/' . $url, null); if (!$data) { throw new Kwf_Exception_NotFound(); } $root->setCurrentPage($data); $contentSender = Kwc_Abstract::getSetting($data->componentClass, 'contentSender'); $contentSender = new $contentSender($data); $contentSender->sendContent(true); Kwf_Benchmark::shutDown(); Kwf_Benchmark::output(); exit; }
public function setUp() { Kwf_Component_Data_Root::setComponentClass(false); Kwf_Component_Cache::setInstance(Kwf_Component_Cache::CACHE_BACKEND_FNF); Kwf_Events_ModelObserver::getInstance()->setSkipFnF(false); //clear cache as tests use new upload ids $dir = Kwf_Config::getValue('uploads') . "/mediaprescale"; if (file_exists($dir)) { foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $path) { $path->isFile() ? unlink($path->getPathname()) : rmdir($path->getPathname()); } } }
public function testExceptionBeforeAfterFullPageDelete() { Kwf_Component_Cache::setInstance(new Kwf_Component_Cache_Mysql_Cache4()); $row = Kwf_Model_Abstract::getInstance('Kwf_Component_Cache_Mysql_Root_Model')->getRow('root'); $this->assertEquals('master foo', $this->_root->render(null, true)); $row->value = 'bar'; $row->save(); try { $this->_process(); } catch (Kwf_Exception $e) { } $this->assertEquals('master bar', $this->_root->render(null, true)); $row->value = 'bar2'; $row->save(); $this->_process(); $this->assertEquals('master bar2', $this->_root->render(null, true)); }
public function getControllerClass(Zend_Controller_Request_Abstract $request) { $module = $request->getModuleName(); if ($module == 'component' && $request->getControllerName() == 'component' || $module == 'component_test' && $request->getControllerName() == 'component_test') { if ($module == 'component_test') { //FnF models setzen damit tests nicht in echte tabellen schreiben Kwf_Component_Cache::setInstance(Kwf_Component_Cache::CACHE_BACKEND_FNF); Kwf_Test_SeparateDb::setDbFromCookie(); // setzt es nur wenn es das cookie wirklich gibt if (!Kwf_Loader::isValidClass($request->getParam('root'))) { throw new Kwf_Exception_NotFound("Invalid root component"); } Kwf_Component_Data_Root::setComponentClass($request->getParam('root')); $root = Kwf_Component_Data_Root::getInstance(); $root->setFilename('kwf/kwctest/' . $request->getParam('root')); Kwf_Registry::get('acl')->getComponentAcl()->allowComponent('guest', null); //hick hack, für Kwf_Component_Abstract_Admin::getControllerUrl Zend_Registry::set('testRootComponentClass', $request->getParam('root')); } $class = $request->getParam('class'); $controller = $request->getParam('componentController'); $controller .= 'Controller'; if ($controller == 'IndexController') { $controller = 'Controller'; } if (($pos = strpos($class, '!')) !== false) { $controller = substr($class, $pos + 1) . 'Controller'; $class = substr($class, 0, $pos); } if (!in_array($class, Kwc_Abstract::getComponentClasses())) { //unknown component class return false; } $className = Kwc_Admin::getComponentClass($class, $controller); if (!$className) { return false; } class_exists($className); //trigger autoloader } else { $className = parent::getControllerClass($request); } return $className; }