Author: ornicar2 Date: 2010-01-24 19:01:27 +0100 (Sun, 24 Jan 2010) New Revision: 27135
Added: plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/bootstrap/ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/bootstrap/functional.php plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/myTest.php plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/myTest.php plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/unit/ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/unit/myTest.php Modified: plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmLayout/config/generator.yml plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/dmTest.php plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/dmTest.php plugins/diemPlugin/trunk/dmCorePlugin/lib/filter/dmInitFilter.php plugins/diemPlugin/trunk/dmCorePlugin/lib/model/doctrine/PluginDmLayout.class.php plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmAdminFunctionalCoverageTest.php plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmFrontFunctionalCoverageTest.php plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmSfBrowser.php plugins/diemPlugin/trunk/dmCorePlugin/test/functional/helper/dmFunctionalTestHelper.php plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmBarTest.php plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmNavigationTest.php plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/project/dmWidgetProjectForm.php plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/list/dmWidgetListForm.php plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/show/dmWidgetShowForm.php plugins/diemPlugin/trunk/dmFrontPlugin/lib/generator/dmFrontActionTemplateGenerator.php Log: [Diem] - fixed functional tests by replacing the default bootstrap. See http://diem-project.org/diem-5-0/doc/en/reference-book/developer-tools#functional-tests:manual-functional-tests - added nb_page column in admin layout interface - removed home layout on newly created projects - fixed automatic functional tests - improved labels on list and show front widget forms - improved generated front templates Modified: plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmLayout/config/generator.yml =================================================================== --- plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmLayout/config/generator.yml 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmLayout/config/generator.yml 2010-01-24 18:01:27 UTC (rev 27135) @@ -22,6 +22,7 @@ - template - css_class - _content + - nb_pages - _duplicate sort: - name Added: plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/bootstrap/functional.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/bootstrap/functional.php (rev 0) +++ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/bootstrap/functional.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -0,0 +1,19 @@ +<?php + +// guess current application +if (!isset($app)) +{ + $traces = debug_backtrace(); + $caller = $traces[0]; + + $dirPieces = explode(DIRECTORY_SEPARATOR, dirname($caller['file'])); + $app = array_pop($dirPieces); +} + +require_once dirname(__FILE__).'/../../config/ProjectConfiguration.class.php'; +$configuration = ProjectConfiguration::getApplicationConfiguration($app, 'test', isset($debug) ? $debug : true); +dm::createContext($configuration); + +// remove all cache +sfToolkit::clearDirectory(sfConfig::get('sf_app_cache_dir')); + Modified: plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/dmTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/dmTest.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/dmTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -1,5 +1,6 @@ <?php require_once realpath(dirname(__FILE__).'/../../../config/ProjectConfiguration.class.php'); +require_once dm::getDir().'/dmCorePlugin/lib/test/dmAdminFunctionalCoverageTest.php'; $config = array( 'login' => true, // whether to log a user or not at the beginning of the tests Added: plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/myTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/myTest.php (rev 0) +++ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/admin/myTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -0,0 +1,7 @@ +<?php + +include(dirname(__FILE__).'/../../bootstrap/functional.php'); + +$browser = new sfTestFunctional(new dmSfBrowser()); + +$browser->get('/'); \ No newline at end of file Modified: plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/dmTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/dmTest.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/dmTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -1,5 +1,6 @@ <?php require_once realpath(dirname(__FILE__).'/../../../config/ProjectConfiguration.class.php'); +require_once dm::getDir().'/dmCorePlugin/lib/test/dmFrontFunctionalCoverageTest.php'; $config = array( 'login' => false, // whether to log a user or not at the beginning of the tests Added: plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/myTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/myTest.php (rev 0) +++ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/functional/front/myTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -0,0 +1,7 @@ +<?php + +include(dirname(__FILE__).'/../../bootstrap/functional.php'); + +$browser = new sfTestFunctional(new dmSfBrowser()); + +$browser->get('/'); \ No newline at end of file Added: plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/unit/myTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/unit/myTest.php (rev 0) +++ plugins/diemPlugin/trunk/dmCorePlugin/data/skeleton/test/unit/myTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -0,0 +1,7 @@ +<?php + +require_once dirname(__FILE__).'/../bootstrap/unit.php'; + +$t = new lime_test(1); + +$t->ok(true); \ No newline at end of file Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/filter/dmInitFilter.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/lib/filter/dmInitFilter.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/lib/filter/dmInitFilter.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -18,7 +18,7 @@ protected function saveApplicationUrl() { - if(sfConfig::get('sf_environment') === 'test') + if(dmConfig::isCli()) { return; } @@ -38,6 +38,11 @@ protected function redirectTrailingSlash() { + if(dmConfig::isCli()) + { + return; + } + $uri = $this->request->getUri(); if ('/' === substr($uri, -1)) Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/model/doctrine/PluginDmLayout.class.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/lib/model/doctrine/PluginDmLayout.class.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/lib/model/doctrine/PluginDmLayout.class.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -15,6 +15,24 @@ protected static $areaTypes = array('top', 'bottom', 'left', 'right'); + /* + * How many pages use this layout? + */ + public function getNbPages() + { + $nb = 0; + + foreach($this->PageViews as $pageView) + { + $nb += dmDb::query('DmPage p') + ->where('p.module = ?', $pageView->module) + ->andWhere('p.action = ?', $pageView->action) + ->count(); + } + + return $nb; + } + public function duplicate() { $newLayout = $this->getTable()->create(array( Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -220,19 +220,8 @@ if (!dmDb::table('DmLayout')->count()) { dmDb::create('DmLayout', array('name' => 'Global'))->saveGet()->refresh(true); - dmDb::create('DmLayout', array('name' => 'Home'))->saveGet()->refresh(true); dmDb::create('DmWidget', array( - 'dm_zone_id' => dmDb::table('DmLayout')->findOneByName('Home')->getArea('top')->Zones[0]->id, - 'module' => 'dmWidgetContent', - 'action' => 'title', - 'values' => array( - 'text' => dmConfig::get('site_name'), - 'tag' => 'h1' - ) - ))->save(); - - dmDb::create('DmWidget', array( 'dm_zone_id' => dmDb::table('DmLayout')->findOneByName('Global')->getArea('top')->Zones[0]->id, 'module' => 'dmWidgetContent', 'action' => 'link', Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmAdminFunctionalCoverageTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmAdminFunctionalCoverageTest.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmAdminFunctionalCoverageTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -1,5 +1,7 @@ <?php +require_once dirname(__FILE__).'/dmCoreFunctionalCoverageTest.php'; + class dmAdminFunctionalCoverageTest extends dmCoreFunctionalCoverageTest { Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmFrontFunctionalCoverageTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmFrontFunctionalCoverageTest.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmFrontFunctionalCoverageTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -1,5 +1,7 @@ <?php +require_once dirname(__FILE__).'/dmCoreFunctionalCoverageTest.php'; + class dmFrontFunctionalCoverageTest extends dmCoreFunctionalCoverageTest { Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmSfBrowser.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmSfBrowser.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/lib/test/dmSfBrowser.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -3,13 +3,12 @@ class dmSfBrowser extends sfBrowser { - /** - * Returns the current application context. - * - * @param bool $forceReload true to force context reload, false otherwise - * - * @return sfContext + * Diem override: + * sfContext is hardcoded in symfony unit tests. + * Replace it with dmContext. + * + * @see sfBrowser */ public function getContext($forceReload = false) { @@ -46,25 +45,4 @@ return $this->context; } - - public function setResponse(sfWebResponse $response) - { - // for HTML/XML content, create a DOM and sfDomCssSelector objects for the response content - $this->dom = null; - $this->domCssSelector = null; - if (preg_match('/(x|ht)ml/i', $response->getContentType(), $matches)) - { - $this->dom = new DomDocument('1.0', $response->getCharset()); - $this->dom->validateOnParse = true; - if ('x' == $matches[1]) - { - @$this->dom->loadXML($response->getContent()); - } - else - { - @$this->dom->loadHTML($response->getContent()); - } - $this->domCssSelector = new sfDomCssSelector($this->dom); - } - } } \ No newline at end of file Modified: plugins/diemPlugin/trunk/dmCorePlugin/test/functional/helper/dmFunctionalTestHelper.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/test/functional/helper/dmFunctionalTestHelper.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/test/functional/helper/dmFunctionalTestHelper.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -5,8 +5,14 @@ protected $configuration, $context, - $browser; + $browser, + $contextClass; + public function __construct($contextClass = 'dmContext') + { + $this->contextClass = $contextClass; + } + public function boot($app = 'admin', $env = 'test', $debug = true) { $rootDir = getcwd(); @@ -15,7 +21,7 @@ require_once $rootDir.'/config/ProjectConfiguration.class.php'; $this->configuration = ProjectConfiguration::getApplicationConfiguration($app, $env, $debug, $rootDir); - $this->context = dmContext::createInstance($this->configuration); + $this->context = dmContext::createInstance($this->configuration, null, $this->contextClass); sfConfig::set('sf_logging_enabled', false); @@ -35,10 +41,6 @@ { $this->browser = $this->context->get('test_functional', 'front' == sfConfig::get('sf_app') ? 'dmFrontTestFunctional' : null); $this->browser->initialize(); - - $this->browser->info('Running dm:publish-assets'); - $task = new dmPublishAssetsTask($this->configuration->getEventDispatcher(), new sfFormatter()); - $task->run(); } public function getBrowser() Modified: plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmBarTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmBarTest.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmBarTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -8,7 +8,7 @@ $helper->logout(); -$browser->get('/')->followRedirect() +$browser->get('/') ->with('response')->begin() ->isStatusCode(200) ->checkElement('#dm_page_bar', false) @@ -25,7 +25,7 @@ $helper->login(); -$browser->get('/')->followRedirect() +$browser->get('/') ->with('response')->begin() ->isStatusCode(200) ->checkElement('#dm_page_bar') Modified: plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmNavigationTest.php =================================================================== --- plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmNavigationTest.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/functional/front/dmNavigationTest.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -6,7 +6,7 @@ $b = $helper->getBrowser(); -$b->get('/index.php') +$b->get('/') ->checks(array( 'code' => 200, 'module_action' => 'dmFront/page', Modified: plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/project/dmWidgetProjectForm.php =================================================================== --- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/project/dmWidgetProjectForm.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/project/dmWidgetProjectForm.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -6,9 +6,9 @@ $dmModule, $dmAction; - public function configure() + public function setup() { - parent::configure(); + parent::setup(); if (!$this->dmModule = self::$serviceContainer->getService('module_manager')->getModule($this->dmWidget->get('module'))) { Modified: plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/list/dmWidgetListForm.php =================================================================== --- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/list/dmWidgetListForm.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/list/dmWidgetListForm.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -4,8 +4,6 @@ { public function configure() { - parent::configure(); - /* * Max per page */ @@ -72,6 +70,7 @@ ? sprintf('(%s) %s', $this->__('automatic'), $this->getFilterAutoRecord($filterModule)->__toString()) : false )); + $this->widgetSchema[$filterName]->setLabel($filterModule->getName()); $this->validatorSchema[$filterName] = new sfValidatorDoctrineChoice(array( 'model' => $filterModule->getModel(), @@ -87,6 +86,8 @@ } $this->setDefaults($this->getDefaultsFromLastUpdated(array('maxPerPage', 'navTop', 'navBottom', 'view', 'orderField', 'orderType'))); + + parent::configure(); } protected function allowFilterAutoRecordId(dmModule $filterModule) Modified: plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/show/dmWidgetShowForm.php =================================================================== --- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/show/dmWidgetShowForm.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/show/dmWidgetShowForm.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -5,8 +5,6 @@ public function configure() { - parent::configure(); - /* * Record id */ @@ -16,6 +14,7 @@ ? sprintf('(%s) %s', dm::getI18n()->__('automatic'), $this->getAutoRecord()->__toString()) : false )); + $this->widgetSchema['recordId']->setLabel($this->getDmModule()->getName()); $this->validatorSchema['recordId'] = new sfValidatorDoctrineChoice(array( 'model' => $this->dmModule->getModel(), @@ -28,6 +27,8 @@ { $this->setDefault('recordId', dmArray::first(array_keys($this->widgetSchema['recordId']->getChoices()))); } + + parent::configure(); } protected function allowAutoRecordId() Modified: plugins/diemPlugin/trunk/dmFrontPlugin/lib/generator/dmFrontActionTemplateGenerator.php =================================================================== --- plugins/diemPlugin/trunk/dmFrontPlugin/lib/generator/dmFrontActionTemplateGenerator.php 2010-01-24 17:57:40 UTC (rev 27134) +++ plugins/diemPlugin/trunk/dmFrontPlugin/lib/generator/dmFrontActionTemplateGenerator.php 2010-01-24 18:01:27 UTC (rev 27135) @@ -56,53 +56,39 @@ $object = '$'.$this->module->getKey(); $pager = $object.'Pager'; $vars = $this->getVarsComment(array($pager)); - return "<?php -// {$this->module->getName()} : {$action->getName()} -// Vars : {$vars} + return "<?php // Vars: {$vars} -echo £o('div.{$this->module->getUnderscore()}.{$action->getUnderscore()}'); +echo {$pager}->renderNavigationTop(); - echo {$pager}->renderNavigationTop(); +echo £o('ul.elements'); - echo £o('ul.elements'); +foreach ({$pager} as \${$this->module->getKey()}) +{ + echo £o('li.element'); - foreach ({$pager} as \${$this->module->getKey()}) - { - echo £o('li.element'); - - echo ".($this->module->hasPage() ? "£link(\${$this->module->getKey()});" : "\${$this->module->getKey()};")." - - echo £c('li'); - } + echo ".($this->module->hasPage() ? "£link(\${$this->module->getKey()});" : "\${$this->module->getKey()};")." - echo £c('ul'); + echo £c('li'); +} - echo {$pager}->renderNavigationBottom(); +echo £c('ul'); -echo £c('div');"; +echo {$pager}->renderNavigationBottom();"; } protected function getShowActionTemplate(dmAction $action) { $object = '$'.$this->module->getKey(); $vars = $this->getVarsComment(array($object)); - return "<?php -// {$this->module->getName()} : {$action->getName()} -// Vars : {$vars} + return "<?php // Vars: {$vars} -echo £o('div.{$this->module->getUnderscore()}.{$action->getUnderscore()}'); - - echo \${$this->module->getKey()}; - -echo £c('div');"; +echo \${$this->module->getKey()};"; } protected function getFormActionTemplate(dmAction $action) { $vars = $this->getVarsComment(array('form')); - return "<?php -// {$this->module->getName()} : {$action->getName()} -// Vars : {$vars} + return "<?php // Vars: {$vars} echo \$form;"; } @@ -110,7 +96,6 @@ protected function getUserActionTemplate(dmAction $action) { return "<?php -// {$this->module->getName()} : {$action->getName()} "; } -- You received this message because you are subscribed to the Google Groups "symfony SVN" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/symfony-svn?hl=en.
