public function testFolderCorrelations(lime_test $t) { $t->diag('Verify that each db folder exist in fs'); $errors = 0; foreach ($this->folderTable->findAll() as $f) { if (!is_dir($f->fullPath)) { $t->diag(sprintf('folder %s does not exist in fs', $f)); $errors++; } } $t->is($errors, 0, 'Each db folder exist in fs'); if ($errors > 0) { die; } $t->diag('Verify that each fs folder exist in db'); $errors = 0; foreach (sfFinder::type('dir')->discard(".*")->ignore_version_control()->maxdepth(20)->in($this->folderTable->getTree()->fetchRoot()->fullPath) as $f) { if (strpos($f, '/.')) { continue; } $f = dmOs::normalize($f); $f = str_replace(dmOs::normalize(sfConfig::get('sf_upload_dir')) . '/', '', $f); if (!$this->folderTable->createQuery('f')->where('f.rel_path = ?', $f)->exists()) { $t->diag(sprintf('folder %s does not exist in db', $f)); $errors++; } } $t->is($errors, 0, 'Each fs folder exist in db'); }
protected function loadConfiguration() { sfConfig::add(array('sf_i18n' => true, 'sf_charset' => 'utf-8', 'sf_upload_dir_name' => str_replace(dmOs::normalize(sfConfig::get('sf_web_dir') . '/'), '', dmOs::normalize(sfConfig::get('sf_upload_dir'))), 'dm_data_dir' => dmOs::join(sfConfig::get('sf_data_dir'), 'dm'), 'dm_cache_dir' => dmOs::join(sfConfig::get('sf_cache_dir'), 'dm'))); if (extension_loaded('mbstring')) { mb_internal_encoding('UTF-8'); } dmConfig::initialize($this->dispatcher); }
protected function getWidgetInnersForFile($file) { /* * Find widgets affected by this php file */ $module = preg_replace('|^/([^/]+)/.+|', '$1', str_replace(dmOs::normalize(sfConfig::get('sf_app_module_dir')), '', $file)); $widgets = array(); foreach ($this->getService('page_helper')->getAreas() as $areaArray) { foreach ($areaArray['Zones'] as $zoneArray) { foreach ($zoneArray['Widgets'] as $widgetArray) { if ($widgetArray['module'] === $module) { ob_start(); $widgets[$widgetArray['id']] = $this->getService('page_helper')->renderWidgetInner($widgetArray); // include debugging output if ($output = ob_get_clean()) { $widgets[$widgetArray['id']] = $output . $widgets[$widgetArray['id']]; } } } } } return $widgets; }
public static function isInProject($path) { return strpos(dmOs::normalize($path), self::getRootDir()) === 0; }
protected function prepareMediaAttributes(array $attributes) { $media = $this->resource->getSource(); if (!$media->checkFileExists()) { throw new dmException('The media file does not exist : ' . $media->relPath); } $validImage = true; if ($this->hasSize() && !sfConfig::get('dm_search_populating')) { try { $mediaFullPath = $this->getResizedMediaFullPath($attributes); } catch (Exception $e) { $this->context->getLogger()->err($e->getMessage()); if (sfConfig::get('dm_debug')) { throw $e; } $validImage = false; $mediaFullPath = $media->getFullPath(); } } else { $mediaFullPath = $media->getFullPath(); } if (@($infos = getimagesize($mediaFullPath))) { if ($validImage) { $attributes['width'] = $infos[0]; $attributes['height'] = $infos[1]; } } else { throw new dmException('The image is not readable : ' . dmProject::unRootify($mediaFullPath)); } $attributes['src'] = (!$this->options['absolute'] ? $this->context->getRequest()->getRelativeUrlRoot() : $this->context->getRequest()->getAbsoluteUrlRoot()) . str_replace(dmOs::normalize(sfConfig::get('sf_web_dir')), '', dmOs::normalize($mediaFullPath)); if (!isset($attributes['alt']) && $media->get('legend')) { $attributes['alt'] = $media->get('legend'); } return $attributes; }
require_once dirname(__FILE__) . '/helper/dmMediaUnitTestHelper.php'; $helper = new dmMediaUnitTestHelper(); $helper->boot(); $t = new lime_test(58); $mediaTable = dmDb::table('DmMedia'); $folderTable = dmDb::table('DmMediaFolder'); $t->diag('Media tests'); $folderTable->checkRoot(); $root = $folderTable->getTree()->fetchRoot(); $t->diag('syncing root'); $root->sync(); $helper->checkTreeIntegrity($t); $helper->testFolderCorrelations($t); $t->isa_ok($root, 'DmMediaFolder', 'root is a media folder'); $t->is($root->fullPath, dmOs::normalize(sfConfig::get('sf_upload_dir')), 'root full path is ' . $root->fullPath); $t->diag('add a folder in root'); $folder = new DmMediaFolder(); $folder->relPath = 'test_' . dmString::random(8); $folder->getNode()->insertAsLastChildOf($root); $helper->checkTreeIntegrity($t); $t->ok($folder->exists(), 'folder ' . $folder->name . ' has been created'); $t->is($folder->getNode()->getParent(), $root, 'folder\'s parent is root'); $t->is($folder->fullPath, dmOs::join(sfConfig::get('sf_upload_dir'), $folder->name), 'folder\'s full path is ' . $folder->fullPath); $t->ok(is_dir($folder->fullPath), 'folder exists in filesystem'); $t->diag('add a file in folder'); $fileName = dmString::random(8) . '_' . basename(__FILE__); $filePath = dmOs::join($folder->fullPath, $fileName); copy(__FILE__, $filePath); $media = $mediaTable->create(array('file' => basename($filePath), 'author' => 'Thibault D.', 'legend' => 'dmMedia test cases', 'dm_media_folder_id' => $folder->id))->saveGet(); $t->ok($media->exists(), 'media has been saved');
protected function upgradeToFixBaseFormFilterDoctrineSetup() { // base file path $file = dmOs::normalize(sfConfig::get('sf_lib_dir') . '/filter/doctrine/BaseFormFilterDoctrine.class.php'); /// get content $content = file_get_contents($file); // remove empty setup method $content = preg_replace('#\\s+public function setup\\(\\)\\s+\\{\\s+\\}#i', '', $content); // push new content file_put_contents($file, $content); }