$t = new lime_test(76); $pageTable = dmDb::table('DmPage'); $root = $pageTable->getTree()->fetchRoot(); $testModule = dmString::random(); $pages = array($root); for ($it = 1; $it <= 2; $it++) { $pages[] = $p = dmDb::table('DmPage')->create(array('module' => $testModule, 'action' => 'test' . $it, 'name' => dmString::random(), 'slug' => dmString::random())); $p->Node->insertAsLastChildOf($pages[$it - 1]); $pages[$it - 1]->refresh(); $p->refresh(); $t->ok($p->exists(), $p . ' exists'); $t->is($p->nodeParentId, (string) $pages[$it - 1]->id, $p . ' is child of ' . $pages[$it - 1]); } dm::loadHelpers(array('DmFront')); foreach ($pages as $index => $page) { $helper->get('context')->setPage($page); $t->comment('Testing ->isSource for ' . $page); foreach ($pages as $_page) { $ok = $page === $_page; $t->is($page->isSource($_page), $ok, '$page->isSource($page) ' . ($ok ? 'TRUE' : 'FALSE')); $t->is($page->isSource("page:" . $_page->id), $ok, '$page->isSource("page:".$page->id) ' . ($ok ? 'TRUE' : 'FALSE')); $t->is($page->isSource($_page->module . "/" . $_page->action), $ok, '$page->isSource($page->module."/".$page->action) ' . ($ok ? 'TRUE' : 'FALSE')); $t->is(dm_current($_page), $ok, 'dm_current($page) ' . ($ok ? 'TRUE' : 'FALSE')); } if ($index) { $t->comment('Testing ->isDescendantOfSource for ' . $page); for ($i = 0; $i < $index; $i++) { $t->ok($page->isDescendantOfSource($pages[$i]), '$page->isDescendantOfSource($pages[$i])'); $t->ok($page->isDescendantOfSource("page:" . $pages[$i]->id), '$page->isDescendantOfSource("page:".$pages[$i]->id)'); $t->ok($page->isDescendantOfSource($pages[$i]->module . "/" . $pages[$i]->action), '$page->isDescendantOfSource($pages[$i]->module."/".$pages[$i]->action)'); $t->ok(dm_parent($pages[$i]), 'dm_parent($_page)');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(19); $browser = $helper->get('browser'); $namorokaUbuntu = 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2pre) Gecko/20100116 Ubuntu/9.10 (karmic) Namoroka/3.6pre'; $namorokaMac = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100105 Firefox/3.6'; $chromeMac = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.49 Safari/532.5'; $safariMac = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; fr-fr) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10'; $opera9Windows = 'Opera/9.61 (Windows NT 6.0; U; en) Presto/2.1.1'; $opera10Windows = 'Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10'; $googleBot = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'; $msnBot = 'msnbot/2.0b (+http://search.msn.com/msnbot.htm)'; $firefoxLinux = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.17) Gecko/2010010604 Linux Mint/7 (Gloria) Firefox/3.0.17'; $firefoxWindows = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6 (.NET CLR 3.5.30729)'; $firefoxOsx = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8'; //$firefoxWindowsSp2 = 'Gecko 2009122116Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.17) Gecko/2009122116 Firefox[xSP_2:077784879bbf239604c69a247f6786a0_220] 967907703 (.NET CLR 3.5.30729)'; $chromeLinux = 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5'; $speedySpider = 'Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)'; $minefieldMac = 'Gecko 20100113Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.3a1pre) Gecko/20100113 Minefield/3.7a1pre'; $ie7Windows = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729; MSOffice 12)'; $ie6Windows = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; DigExt)'; $feedFetcherGoogle = 'Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 2 subscribers; feed-id=6924676383167400434)'; $iphone = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; de-de) AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7D11'; $yahooBot = 'Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)'; $tests = array($namorokaUbuntu => array('browser_name' => 'firefox', 'browser_version' => '3.6', 'is_unknown' => false), $namorokaMac => array('browser_name' => 'firefox', 'browser_version' => '3.6', 'is_unknown' => false), $chromeMac => array('browser_name' => 'chrome', 'browser_version' => '4.0', 'is_unknown' => false), $safariMac => array('browser_name' => 'safari', 'browser_version' => '4.0', 'is_unknown' => false), $googleBot => array('browser_name' => 'googlebot', 'browser_version' => '2.1', 'is_unknown' => false), $msnBot => array('browser_name' => 'msnbot', 'browser_version' => '2.0', 'is_unknown' => false), $yahooBot => array('browser_name' => 'yahoobot', 'browser_version' => null, 'is_unknown' => false), $opera9Windows => array('browser_name' => 'opera', 'browser_version' => '9.61', 'is_unknown' => false), $opera10Windows => array('browser_name' => 'opera', 'browser_version' => '10.10', 'is_unknown' => false), $firefoxLinux => array('browser_name' => 'firefox', 'browser_version' => '3.0', 'is_unknown' => false), $firefoxWindows => array('browser_name' => 'firefox', 'browser_version' => '3.5', 'is_unknown' => false), $firefoxOsx => array('browser_name' => 'firefox', 'browser_version' => '3.5', 'is_unknown' => false), $chromeLinux => array('browser_name' => 'chrome', 'browser_version' => '4.0', 'is_unknown' => false), $speedySpider => array('browser_name' => null, 'browser_version' => null, 'is_unknown' => true), $minefieldMac => array('browser_name' => 'firefox', 'browser_version' => '3.7', 'is_unknown' => false), $ie7Windows => array('browser_name' => 'msie', 'browser_version' => '7.0', 'is_unknown' => false), $ie6Windows => array('browser_name' => 'msie', 'browser_version' => '6.0', 'is_unknown' => false), $feedFetcherGoogle => array('browser_name' => null, 'browser_version' => null, 'is_unknown' => true), $iphone => array('browser_name' => 'applewebkit', 'browser_version' => '528.18', 'is_unknown' => false)); $parser = $helper->get('user_agent_parser'); foreach ($tests as $userAgent => $description) { $browser->configureFromUserAgentString($userAgent, $parser);
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(); $pageHelper = $helper->get('page_helper'); $t->is($pageHelper->getOption('widget_css_class_pattern'), dmArray::get($helper->get('service_container')->getParameter('page_helper.options'), 'widget_css_class_pattern'), 'widget_css_class_pattern : ' . $pageHelper->getOption('widget_css_class_pattern')); $widget = array('id' => 9999, 'module' => 'dmWidgetContent', 'action' => 'breadCrumb', 'value' => json_encode(array('text' => 'test title', 'tag' => 'h1')), 'css_class' => 'custom_class'); $pageHelper->setOption('widget_css_class_pattern', ''); $expected = array('dm_widget custom_class', 'dm_widget_inner'); $t->is($pageHelper->getWidgetContainerClasses($widget), $expected, 'widgetContainerClasses for breadCrumb : ' . implode(', ', $expected)); $widget['action'] = 'title'; $expected = array('dm_widget custom_class', 'dm_widget_inner'); $t->is($pageHelper->getWidgetContainerClasses($widget), $expected, 'widgetContainerClasses for title : ' . implode(', ', $expected)); $pageHelper->setOption('widget_css_class_pattern', '%module%_%action%'); $expected = array('dm_widget content_title custom_class', 'dm_widget_inner'); $t->is($pageHelper->getWidgetContainerClasses($widget), $expected, 'widgetContainerClasses for title : ' . implode(', ', $expected)); $pageHelper->setOption('widget_css_class_pattern', 'module_%module% action_%action%'); $expected = array('dm_widget module_content action_title custom_class', 'dm_widget_inner'); $t->is($pageHelper->getWidgetContainerClasses($widget), $expected, 'widgetContainerClasses for title : ' . implode(', ', $expected));
<?php require_once realpath(dirname(__FILE__) . '/../../..') . '/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(); if (strpos(getcwd(), 'hudson')) { return; } $helper->get('page_tree_watcher')->connect(); $nbPage = dmDb::table('DmPage')->count(); $domain = dmDb::table('DmTestDomain')->create(array('title' => dmString::random(), 'is_active' => false))->saveGet(); $t->ok($domain->exists(), 'Record has been saved'); $t->ok(!$domain->isActive, 'Record is not active'); $t->is(dmDb::table('DmPage')->count(), $nbPage, 'No new page'); /* * With some old version of sqlite, like on continuous integration server * This test will not work as expected */ if (strpos(getcwd(), 'hudson')) { return; } $t->ok($page = $domain->getDmPage(), 'Domain has a page'); $t->is(dmDb::table('DmPage')->count(), $nbPage + 1, 'One new page'); $t->is($page->isActive, false, 'The page is not active'); $t->is($page->Record, $domain, 'The page record is the domain'); $domain = dmDb::table('DmTestDomain')->create(array('title' => dmString::random(), 'is_active' => true))->saveGet(); $t->ok($domain->exists(), 'Record has been saved'); $t->ok($domain->isActive, 'Record is active'); $t->is(dmDb::table('DmPage')->count(), $nbPage + 1, 'No new page'); $t->ok($page = $domain->getDmPage(), 'Domain has a page');
<?php $config = getcwd() . '/config/ProjectConfiguration.class.php'; require_once $config; require_once dm::getDir() . '/dmCorePlugin/test/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(50); dm::loadHelpers(array('Dm', 'I18N')); $menu = $helper->get('menu')->name('Test Menu'); $root1 = $menu->getChild('Root 1'); $root1->addChild('Child 1'); $last = $root1->addChild('Child 2'); $root2 = $menu->getChild('Root 2'); $child1 = $root2->addChild('Child 1'); $child2 = $child1->addChild('Child 2'); $t->is($root1->getLevel(), 0, 'Test root level is 0'); $t->is($root2->getLevel(), 0, 'Test root level is 0'); $t->is($child1->getLevel(), 1, 'Test level is 1'); $t->is($child2->getLevel(), 2, 'Test level is 2'); $t->is($child2->getPathAsString(), 'Test Menu > Root 2 > Child 1 > Child 2', 'Test getPathAsString()'); $t->is(get_class($root1), get_class($menu), 'Test children are created as same class as parent'); // array access $t->is($menu['Root 1']['Child 1']->getName(), 'Child 1', 'Test name()'); // countable $t->is(count($menu), $menu->count(), 'Test sfSympalMenu Countable interface'); $t->is(count($root1), 2, 'Test sfSympalMenu Countable interface'); $count = 0; foreach ($root1 as $key => $value) { $count++; $t->is($key, 'Child ' . $count, 'Test iteratable');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(26); $wtm = $helper->get('widget_type_manager'); $widgetType = $wtm->getWidgetType('dmWidgetContent', 'link'); $formClass = $widgetType->getOption('form_class'); $t->comment('Create a test page'); $testPage = dmDb::create('DmPage', array('module' => dmString::random(), 'action' => dmString::random(), 'name' => dmString::random(), 'slug' => dmString::random())); $testPage->Node->insertAsFirstChildOf(dmDb::table('DmPage')->getTree()->fetchRoot()); $t->comment('Create a test widget'); $widget = dmDb::create('DmWidget', array('module' => $widgetType->getModule(), 'action' => $widgetType->getAction(), 'value' => '[]', 'dm_zone_id' => $testPage->PageView->Area->Zones[0])); $t->comment('Create a ' . $formClass . ' instance'); dmDb::table('DmMediaFolder')->checkRoot(); $t->comment('Create a test image media'); $mediaFileName = 'test_' . dmString::random() . '.jpg'; copy(dmOs::join(sfConfig::get('dm_core_dir'), 'data/image/defaultMedia.jpg'), dmOs::join(sfConfig::get('sf_upload_dir'), $mediaFileName)); $media = dmDb::create('DmMedia', array('file' => $mediaFileName, 'dm_media_folder_id' => dmDb::table('DmMediaFolder')->checkRoot()->id))->saveGet(); $t->ok($media->exists(), 'A test media has been created'); $form = new $formClass($widget); $form->removeCsrfProtection(); $html = $form->render(); $t->like($html, '_^<form\\s(.|\\n)*</form>$_', 'Successfully obtained and rendered a ' . $formClass . ' instance'); $t->is($form->getStylesheets(), array(), 'This widget form requires no additional stylesheet'); $t->is($form->getJavascripts(), array(), 'This widget form requires no additional javascript'); $t->comment('Submit an empty form'); $form->bind(array(), array()); $t->is($form->isValid(), false, 'The form is not valid'); $t->comment('Use a bad href');
<?php require_once realpath(dirname(__FILE__) . '/../../..') . '/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(39); $wtm = $helper->get('widget_type_manager'); $widgetType = $wtm->getWidgetType('dmWidgetNavigation', 'menu'); $formClass = $widgetType->getOption('form_class'); $page1 = dmDb::table('DmPage')->findOneByModuleAndAction('main', 'page1'); $t->comment('Create a menu widget'); $widget = dmDb::create('DmWidget', array('module' => $widgetType->getModule(), 'action' => $widgetType->getAction(), 'value' => '[]', 'dm_zone_id' => $page1->PageView->Area->Zones[0])); $t->comment('Create a ' . $formClass . ' instance'); $form = new $formClass($widget); $form->removeCsrfProtection(); $html = $form->render(); $t->like($html, '_^<form\\s(.|\\n)*</form>$_', 'Successfully obtained and rendered a ' . $formClass . ' instance'); $t->is(count($form->getStylesheets()), 2, 'This widget form requires 2 additional stylesheets'); $t->is(count($form->getJavascripts()), 3, 'This widget form requires 3 additional javascripts'); $t->comment('Submit an empty form'); $form->bind(array(), array()); $t->is($form->isValid(), true, 'The form is valid'); $t->comment('Save the widget'); $form->updateWidget()->save(); $t->ok($widget->exists(), 'Widget has been saved'); $expected = array('ulClass' => '', 'liClass' => '', 'items' => array()); $t->is_deeply($widget->values, $expected, 'Widget values are correct'); $t->comment('Recreate the form from the saved widget'); $form = new $formClass($widget); $form->removeCsrfProtection(); $t->is($form->getDefault('link'), array(), 'The form default text is correct');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(8); $markdown = $helper->get('markdown'); $t->comment('Basic features'); $markdownText = 'this is a **markdown** text with *some basic* features'; $html = '<p class="dm_first_p">this is a <strong>markdown</strong> text with <em>some basic</em> features</p>'; $t->is($markdown->toHtml($markdownText), $html, $markdown->toHtml($markdownText)); $text = 'this is a markdown text with some basic features'; $t->is($markdown->toText($markdownText), $text, $markdown->toText($markdownText)); $text = 'this is a markdown text with some basic features'; $t->is($markdown->brutalToText($markdownText), $text, $markdown->brutalToText($markdownText)); $t->is($markdown->toHtml($markdownText), $html, $markdown->toHtml($markdownText)); $t->comment('Standart image inclusion'); $markdownText = 'this is a **markdown** ![image alt text](/uploads/image.png) [with](http://diem-project.org "link title") *advanced* features'; $text = 'this is a markdown with advanced features'; $t->is($markdown->toText($markdownText), $text, $markdown->toText($markdownText)); $text = 'this is a markdown image alt text with advanced features'; $t->is($markdown->brutalToText($markdownText), $text, $markdown->brutalToText($markdownText)); $text = 'this is a markdown image alt text with advanced features'; $t->is($markdown->brutalToText($markdownText), $text, $markdown->brutalToText($markdownText)); $text = <<<EOF ##Replace a Diem service Let's suppose we want to change the way Diem detect browsers. This is done with the *browser* service. We will tell Diem to use another class for the browser service in **config/dm/services.yml** ~~~ parameters:
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(10); sfConfig::set('dm_backup_enabled', true); $backup = $helper->get('file_backup'); $rootDir = sfConfig::get('sf_root_dir'); $backupDir = $backup->getDir(); $t->is($backupDir, dmOs::join(sfConfig::get('sf_data_dir'), 'dm/backup/filesystem'), $backupDir); $t->ok(is_dir($backupDir), $backupDir . ' exists'); $t->ok(is_writable($backupDir), $backupDir . ' is writable'); $t->diag('Change backup dir to cache/backupTest'); $backup->setDir('cache/backupTest'); $t->ok(is_dir($backupDir), $backupDir . ' exists'); $t->ok(is_writable($backupDir), $backupDir . ' is writable'); $t->diag('clear backup'); $backup->clear(); $t->is($backup->getFiles(), array(), 'backup is empty'); $file = dmProject::rootify('config/ProjectConfiguration.class.php'); $t->diag('backup ' . $file); $backup->save($file); $backupFile = dmOs::join($backup->getDir(), 'config/ProjectConfiguration.class.php.' . date('Y-m-d_H-i-s')); $t->is(count($backup->getFiles()), 1, 'backup has one file'); $t->is($backup->getFiles(), array($backupFile), 'backup has ' . $backupFile); $t->is(file_get_contents($file), file_get_contents($backupFile), 'backup file is same as file'); $t->diag('clear backup'); $backup->clear(); $t->is($backup->getFiles(), array(), 'backup is empty');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); sfConfig::set('sf_cache', true); $t = new lime_test(20); // check base pages exist dmDb::table('DmPage')->checkBasicPages(); // get services $user = $helper->get('user'); $i18n = $helper->get('i18n'); $routing = $helper->get('page_routing'); // add c1 and c2 cultures $i18n->setCultures(array_merge($i18n->getCultures(), array('c1', 'c2'))); // reset user culture $user->setCulture(sfConfig::get('sf_default_culture')); // create test page $pageModule = $pageAction = $pageName = $pageSlug = dmString::random(); $page = dmDb::create('DmPage', array('module' => $pageModule, 'action' => $pageModule, 'name' => $pageName, 'slug' => $pageSlug)); $page->Node->insertAsLastChildOf(dmDb::table('DmPage')->getTree()->fetchRoot()); $c1PageSlug = 'c1/' . $pageSlug; $c2PageSlug = 'c2/' . $pageSlug; $page->Translation['c1']->name = $c1PageSlug; $page->Translation['c1']->slug = $c1PageSlug; $page->Translation['c2']->name = $c2PageSlug; $page->Translation['c2']->slug = $c2PageSlug; $page->save(); $t->ok($page->hasCurrentTranslation(), 'page has a translation'); $t->is($page->slug, $pageSlug, 'page slug is ' . $pageSlug); $t->diag('Find route for ' . $pageSlug);
$t->is($post->version, 1, 'reverted but not saved, record version is 1'); $t->is($post->title, 'jefferson', 'reverted but not saved, record title is jefferson'); $post->save(); $t->is($post->version, 3, 'reverted and saved, record version is 3'); $t->is($post->title, 'jefferson', 'reverted and saved, record title is jefferson'); $t->is(count($post->getCurrentTranslation()->Version), 3, 'record has 3 versions'); $post->title = 'jethro'; $post->save(); $t->is($post->version, 4, 'saved record, version is 4'); $t->is($post->title, 'jethro', 'saved record, title is jethro'); // now with another culture $id = $post->id; $post->free(true); unset($post); $post = $table->findOne($id); $helper->get('user')->setCulture('c1'); $post->title = 'c1 title'; $post->save(); $t->is($post->version, 1, 'saved record, version is 1'); $t->is($post->title, 'c1 title', 'saved record, title is c1 title'); $t->comment('Testing DmTestComment'); $model = 'DmTestComment'; $table = dmDb::table($model); $comment = $table->create(array('post_id' => $post->id)); $t->ok($table->isVersionable(), $model . ' is versionable'); $t->is($comment->version, 0, 'new record, version is 0'); $comment->author = dmString::random(); $comment->author = 'jefferson'; $comment->save(); $t->is($comment->version, 1, 'saved record, version is 1'); $t->is($comment->author, 'jefferson', 'saved record, author is jefferson');
$div = '<div id="test_id" class="test_class ' . htmlentities('{"attr":"value"}') . '">div content</div>'; $t->is(£('div#test_id.test_class', array('json' => array('attr' => 'value')), 'div content'), $div, $div); $div = '<div id="test_id" class="test_class ' . htmlentities('{"attrs":["value1","value2"]}') . '">div content</div>'; $t->is(£('div#test_id.test_class', array('json' => array('attrs' => array('value1', 'value2'))), 'div content'), $div, $div); $a = '<a id="test_id" class="test_class" href="an_href#with_anchor">a content</a>'; $t->is(£('a#test_id.test_class href="an_href#with_anchor"', 'a content'), $a, $a); $closeDiv = '</div>'; $t->is(£c('div'), $closeDiv, $closeDiv); $dl = '<dl><dt>key</dt><dd>value</dd></dl>'; $t->is(definition_list(array('key' => 'value')), $dl, $dl); $dl = '<dl class="test_class other_class"><dt>key</dt><dd>value</dd></dl>'; $t->is(definition_list(array('key' => 'value'), '.test_class.other_class'), $dl, $dl); $div = '<div id="test_id" class="test_class other_class" title="title with a # inside"></div>'; $t->is(£('div#test_id.test_class.other_class title="title with a # inside"'), $div, $div); $div = '<div id="test_id" class="test_class other_class" title="title with a #inside"></div>'; $t->is(£('div#test_id.test_class.other_class title="title with a #inside"'), $div, $div); $div = '<div class="test_class other_class" title="title with a #inside"></div>'; $t->is(£('div.test_class.other_class title="title with a #inside"'), $div, $div); $div = '<div class="test_class other_class" title="title with a .inside"></div>'; $t->is(£('div.test_class.other_class title="title with a .inside"'), $div, $div); $div = '<div lang="c1"></div>'; $t->is(£('div lang=c1'), $div, $div); $table = '<table><thead><tr><th>Header 1</th><th>Header 2</th></tr></thead></table>'; $t->is(_table()->head('Header 1', 'Header 2')->render(), $table, $table); $table = '<table><thead><tr><th>Header 1</th><th>Header 2</th></tr></thead><tbody><tr><td>Value 1</td><td>Value 2</td></tr><tr><td>Value 3</td><td>Value 4</td></tr></tbody></table>'; $t->is(£table()->head('Header 1', 'Header 2')->body('Value 1', 'Value 2')->body('Value 3', 'Value 4')->render(), $table, $table); $table = '<table><thead><tr><th>Header 1</th><th>Header 2</th></tr></thead><tbody><tr class="even"><td>Value 1</td><td>Value 2</td></tr><tr class="odd"><td>Value 3</td><td>Value 4</td></tr></tbody></table>'; $t->is(£table()->useStrip(true)->head('Header 1', 'Header 2')->body('Value 1', 'Value 2')->body('Value 3', 'Value 4')->render(), $table, $table); $ctrlFullPath = dmOs::join(sfConfig::get('sf_web_dir'), 'dmCorePlugin/js/dmCoreCtrl.js'); $t->is($helper->get('helper')->getJavascriptFullPath('core.ctrl'), $ctrlFullPath, 'core ctrl is in ' . $ctrlFullPath);
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(); $i18n = $helper->get('i18n'); $user = $helper->get('user'); $i18n->setCultures(array_merge($i18n->getCultures(), array('c1', 'c2'))); $user->setCulture('en'); $t->diag('Clearing settings translations for cultures c1 and c2'); $form = new DmSigninAdminForm(); $t->is($i18n->__('Username'), $expected = 'Username', 'en: ' . $expected); $t->is((string) $form['username']->label(), $expected = '<label class="label" for="signin_username">Username</label>', 'en: ' . $expected); $user->setCulture('c1'); $t->is($i18n->__('Username'), $expected = 'Username', 'c1: ' . $expected); $t->is((string) $form['username']->label(), $expected = '<label class="label" for="signin_username">Username</label>', 'c1: ' . $expected); $t->comment('Translate Username for c1'); $i18n->addTranslations('c1', array('Username' => 'c1 Username')); $t->is($i18n->__('Username', array(), 'messages'), $expected = 'c1 Username', 'c1: ' . $expected); $t->is((string) $form['username']->renderLabel(), $expected = '<label for="signin_username">c1 Username</label>', 'c1: ' . $expected); $t->is((string) $form['username']->label(), $expected = '<label class="label" for="signin_username">c1 Username</label>', 'c1: ' . $expected);
<?php require_once realpath(dirname(__FILE__) . '/../../..') . '/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $nbLoremizeRecords = 10; $helper->get('page_tree_watcher')->connect(); $markdown = $helper->get('markdown'); $nbTests = 5 + $nbLoremizeRecords * 12; $t = new lime_test($nbTests); $helper->loremizeDatabase($nbLoremizeRecords, $t); dmDb::table('DmAutoSeo')->findOneByModuleAndAction('dmTestDomain', 'show')->merge(array('slug' => '%dmTestDomain.id%-%dmTestDomain%'))->save(); dmDb::table('DmAutoSeo')->findOneByModuleAndAction('dmTestCateg', 'show')->merge(array('slug' => '%dmTestCateg.id%-%dmTestCateg%'))->save(); dmDb::table('DmAutoSeo')->findOneByModuleAndAction('dmTestPost', 'show')->merge(array('slug' => '%dmTestPost%-%dmTestPost.id%', 'name' => 'Post : %dmTestPost.title%', 'title' => '%dmTestPost% | %dmTestCateg.name%', 'h1' => '%dmTestPost%', 'description' => '%dmTestPost.body%'))->save(); $t->diag('seo construction'); $timer = dmDebug::timer('update seo'); try { $helper->updatePageTreeWatcher($t); } catch (Exception $e) { $t->skip('Not supported on this server: ' . $e->getMessage(), $nbTests); return; } $t->ok(true, sprintf('Seo updated in %01.2f s', $timer->getElapsedTime())); foreach (dmDb::table('dmTestPost')->findAll() as $post) { if (!($page = $post->getDmPage())) { $t->skip('Post ' . $post . ' has no page', 6); continue; } $page->refresh(true); $categ = $page->getNode()->getParent()->getRecord(); $domain = $page->getNode()->getParent()->getNode()->getParent()->getRecord();
<?php $config = getcwd() . '/config/ProjectConfiguration.class.php'; require_once $config; require_once dm::getDir() . '/dmCorePlugin/test/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); // load both standard and alternative helpers dm::loadHelpers(array('Dm', 'DmAlternative', 'I18N')); $t = new lime_test(30); /* * $helper is the test helper. It acts as a service container * and can provide you all services with its get() method. * so here we get the 'helper' service which is the template helper instance */ $templateHelper = $helper->get('helper'); // £ function $t->is(£('div', 'content'), _tag('div', 'content'), '£ == _tag'); // £ method $t->is($templateHelper->£('div', 'content'), $templateHelper->tag('div', 'content'), '£ == _tag'); $t->is(£('div', 'content'), _tag('div', 'content'), '£ == _tag'); // £link method $t->is((string) $templateHelper->£link()->text('home'), (string) $templateHelper->link()->text('home'), '£link == _link'); $t->is((string) £link()->text('home'), (string) _link()->text('home'), '£link == _link'); $openDiv = '<div>'; $t->is(£o('div'), _tagO('div'), $openDiv); $openDiv = '<div class="test_class">'; $t->is(£o('div.test_class'), _tagO('div.test_class'), $openDiv); $openDiv = '<div id="test_id" class="test_class other_class">'; $t->is(£o('div#test_id.test_class.other_class'), _tagO('div#test_id.test_class.other_class'), $openDiv); $openDiv = '<div class="test_class other_class" id="test_id">';
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('admin'); $t = new lime_test(16); dm::loadHelpers(array('Dm')); $t->is((string) _link('http://c2.com/cgi/wiki?DontRepeatYourself')->text('DRY'), $expected = '<a class="link" href="http://c2.com/cgi/wiki?DontRepeatYourself">DRY</a>', $expected); $scriptName = $helper->get('request')->getRelativeUrlRoot(); $t->diag('Current cli script name = ' . $scriptName); $expected = $helper->get('controller')->genUrl('@homepage'); $t->is(_link()->getHref(), $expected, 'empty source is ' . $expected); $t->is(_link()->getHref('@homepage'), $expected, 'homepage href is ' . $expected); $expected = $helper->get('controller')->genUrl('dmAuthAdmin/signin'); $t->is(_link('+/dmAuthAdmin/signin')->getHref(), $expected, '+/dmAuthAdmin/signin href is ' . $expected); $expected = $helper->get('controller')->genUrl('dmAuthAdmin/signin'); $t->is($helper->get('helper')->link('+/dmAuthAdmin/signin')->getHref(), $expected, 'with helper service, +/dmAuthAdmin/signin href is ' . $expected); $frontScriptName = $helper->get('script_name_resolver')->get('front'); $t->is(_link('app:front')->getHref(), $frontScriptName, $frontScriptName); $t->is(_link('app:front/test')->getHref(), $expected = $frontScriptName . '/test', $expected); $t->is(_link('app:front/test?var1=val1&var2=val2')->getHref(), $expected = $frontScriptName . '/test?var1=val1&var2=val2', $expected); $t->comment('Create a test page'); $page = dmDb::create('DmPage', array('module' => dmString::random(), 'action' => dmString::random(), 'name' => dmString::random(), 'slug' => dmString::random())); $page->Node->insertAsFirstChildOf(dmDb::table('DmPage')->getTree()->fetchRoot()); $expected = $helper->get('script_name_resolver')->get('front'); $t->is(_link($page)->getHref(), $expected = $frontScriptName . '/' . $page->slug, $expected); $t->is(_link('page:' . $page->id)->getHref(), $expected = $frontScriptName . '/' . $page->slug, $expected); $t->is(_link('page:' . $page->id . '?var1=val1&var2=val2')->getHref(), $expected = $frontScriptName . '/' . $page->slug . '?var1=val1&var2=val2', $expected); $t->is(_link('page:' . $page->id . '?var1=val1&var2=val2#anchor')->getHref(), $expected = $frontScriptName . '/' . $page->slug . '?var1=val1&var2=val2#anchor', $expected); sfConfig::set('sf_debug', true); $badSource = 'page:9999999999999';
$dl = '<dl><dt>key</dt><dd>value</dd></dl>'; $t->is(definition_list(array('key' => 'value')), $dl, $dl); $dl = '<dl class="test_class other_class"><dt>key</dt><dd>value</dd></dl>'; $t->is(definition_list(array('key' => 'value'), '.test_class.other_class'), $dl, $dl); $div = '<div title="title with a # inside" id="test_id" class="test_class other_class"></div>'; $t->is(£('div#test_id.test_class.other_class title="title with a # inside"'), $div, $div); $div = '<div title="title with a #inside" id="test_id" class="test_class other_class"></div>'; $t->is(£('div#test_id.test_class.other_class title="title with a #inside"'), $div, $div); $div = '<div title="title with a #inside" class="test_class other_class"></div>'; $t->is(£('div.test_class.other_class title="title with a #inside"'), $div, $div); $div = '<div title="title with a .inside" class="test_class other_class"></div>'; $t->is(£('div.test_class.other_class title="title with a .inside"'), $div, $div); $div = '<div lang="c1"></div>'; $t->is(£('div lang=c1'), $div, $div); $div = '<div></div>'; $t->is(£('div lang=' . $helper->get('user')->getCulture()), $div, $div); $table = '<table><thead><tr><th>Header 1</th><th>Header 2</th></tr></thead></table>'; $t->is(_table()->head('Header 1', 'Header 2')->render(), $table, $table); $table = '<table><thead><tr><th>Header 1</th><th>Header 2</th></tr></thead><tbody><tr><td>Value 1</td><td>Value 2</td></tr><tr><td>Value 3</td><td>Value 4</td></tr></tbody></table>'; $t->is(£table()->head('Header 1', 'Header 2')->body('Value 1', 'Value 2')->body('Value 3', 'Value 4')->render(), $table, $table); $table = '<table><thead><tr><th>Header 1</th><th>Header 2</th></tr></thead><tbody><tr class="even"><td>Value 1</td><td>Value 2</td></tr><tr class="odd"><td>Value 3</td><td>Value 4</td></tr></tbody></table>'; $t->is(£table()->useStrip(true)->head('Header 1', 'Header 2')->body('Value 1', 'Value 2')->body('Value 3', 'Value 4')->render(), $table, $table); $ctrlFullPath = dmOs::join(sfConfig::get('sf_web_dir'), 'dmCorePlugin/js/dmCoreCtrl.js'); $t->is($helper->get('helper')->getJavascriptFullPath('core.ctrl'), $ctrlFullPath, 'core ctrl is in ' . $ctrlFullPath); $t->comment('Test use_beaf'); $helper->get('helper')->setOption('use_beaf', true); $expected = '<div class="beafh clearfix"><div class="beafore"></div><div class="beafin">test</div><div class="beafter"></div></div>'; $t->is($helper->get('helper')->tag('div.beafh', 'test'), $expected, $expected); $expected = '<div class="beafv clearfix"><div class="beafore"></div><div class="beafin">test</div><div class="beafter"></div></div>'; $t->is($helper->get('helper')->tag('div.beafv', 'test'), $expected, $expected); $expected = '<div class="beafh myclass clearfix"><div class="beafore"></div><div class="beafin">test</div><div class="beafter"></div></div>';
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(); $mtr = $helper->get('mime_type_resolver'); $t->is($mtr->getByFilename($file = __FILE__), $mt = 'application/x-httpd-php', $file . ' : ' . $mt); $t->is($mtr->getGroupByFilename($file = __FILE__), $mt = 'application', $file . ' : ' . $mt); $t->is($mtr->getByExtension($ext = 'php'), $mt = 'application/x-httpd-php', $ext . ' : ' . $mt); $t->is($mtr->getGroupByExtension($ext = 'php'), $mt = 'application', $ext . ' : ' . $mt);
<?php require_once realpath(dirname(__FILE__) . '/../../../../..') . '/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(4); $module = $helper->get('module_manager')->getModule('dmContact'); $t->ok($module->isProject(), 'project module'); $t->ok($module->isPlugin(), 'plugin module'); $t->is($module->getPluginName(), 'dmContactPlugin', 'dmContact plugin is dmContactPlugin'); $t->ok(!$module->isOverridden(), 'dmContactPlugin is not overridden');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(); $helper->get('user')->setCulture('fr'); $msgs = $helper->get('markdown_translator')->execute(); $t->ok(isset($msgs['Link']), 'Link is translated'); $t->is($msgs['Link'], 'Lien', 'Link is translated to Lien'); $t->ok(isset($msgs['Heading 3']), 'Heading 3 is translated'); $t->is($msgs['Heading 3'], 'Titre 3', 'Heading 3 is translated to Titre 3');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(14); $user = $helper->get('user'); $t->ok($helper->get('i18n')->cultureExists($user->getCulture()), 'The user\'s culture exists'); $browser = $user->getBrowser(); $t->is($browser->isUnknown(), true, 'Cli browser is unknown'); $t->is($user->isAuthenticated(), false, 'User is not authenticated'); $t->is($user->can('admin'), false, 'User can not admin'); $randomCredential = dmString::random(); $t->is($user->can($randomCredential), false, 'User can not ' . $randomCredential); $t->diag('grant ' . $randomCredential . ' credential'); $user->addCredential($randomCredential); $t->is($user->can($randomCredential), false, 'User can still not ' . $randomCredential . ' because it\'s not authenticated'); $userRecord = dmDb::table('DmUser')->findOne(); $user->signin($userRecord); $t->is($user->isAuthenticated(), true, 'User is authenticated'); $t->diag('grant ' . $randomCredential . ' credential'); $user->addCredential($randomCredential); $t->is($user->can($randomCredential), true, 'Now user can ' . $randomCredential); $user->signout(); $t->is($user->isAuthenticated(), false, 'User is no more authenticated'); $t->is($user->can($randomCredential), false, 'user can no more ' . $randomCredential); // Testing DmUser records $username = dmString::random(8); $t->diag('Create user ' . $username); $userRecord = dmDb::create('DmUser', array('username' => $username, 'password' => 'changeme', 'email' => $username . '@diem-project.org'))->saveGet(); $t->ok($userRecord->exists(), 'User has been created');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(12); $sc = $helper->get('service_container'); $user = $helper->get('user'); $theme = $user->getTheme(); $user->setCulture('en'); $imageFullPath = $theme->getFullPath('images/testImage.jpg'); $sc->get('filesystem')->mkdir(dirname($imageFullPath)); copy(dmOs::join(sfConfig::get('dm_core_dir'), 'data/image/defaultMedia.jpg'), $imageFullPath); $t->ok(file_exists($imageFullPath), 'image copied : ' . $imageFullPath); $imageI18nFullPath = $theme->getFullPath('images/en/testImage.jpg'); $helper->get('filesystem')->mkdir(dirname($imageI18nFullPath)); copy(dmOs::join(sfConfig::get('dm_core_dir'), 'data/image/defaultMedia.jpg'), $imageI18nFullPath); $t->ok(file_exists($imageI18nFullPath), 'image copied : ' . $imageI18nFullPath); $res = $sc->getService('media_resource')->initialize('images/testImage.jpg'); $t->is($res->getPathFromWebDir(), $theme->getPath('images/testImage.jpg'), 'images/testImage.jpg : ' . $res->getPathFromWebDir()); $res = $sc->getService('media_resource')->initialize('images/en/testImage.jpg'); $t->is($res->getPathFromWebDir(), $theme->getPath('images/en/testImage.jpg'), 'images/en/testImage.jpg : ' . $res->getPathFromWebDir()); $res = $sc->getService('media_resource')->initialize('images/%culture%/testImage.jpg'); $t->is($res->getPathFromWebDir(), $theme->getPath('images/en/testImage.jpg'), 'images/%culture%/testImage.jpg : ' . $res->getPathFromWebDir()); $res = $sc->getService('media_resource')->initialize('testImage.jpg'); $t->is($res->getPathFromWebDir(), $theme->getPath('images/testImage.jpg'), 'testImage.jpg : ' . $res->getPathFromWebDir()); $res = $sc->getService('media_resource')->initialize('%culture%/testImage.jpg'); $t->is($res->getPathFromWebDir(), $theme->getPath('images/en/testImage.jpg'), '%culture%/testImage.jpg : ' . $res->getPathFromWebDir()); $res = $sc->getService('media_resource')->initialize($imageI18nFullPath); $t->is($res->getPathFromWebDir(), $theme->getPath('images/en/testImage.jpg'), '$imageI18nFullPath : ' . $res->getPathFromWebDir()); $user->setCulture('fr');
<?php require_once realpath(dirname(__FILE__) . '/../../..') . '/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $pager = $helper->get('service_container')->setParameter('doctrine_pager.model', 'DmTestPost')->getService('doctrine_pager')->setMaxPerPage(5)->setQuery($query = dmDb::query('DmTestPost t'))->setPage(1)->init(); $t = new lime_test(16); $t->isa_ok($pager, 'dmDoctrinePager', 'Got a dmDoctrinePager instance'); $t->is($pager->getNbResults(), 20, 'Pager has 20 results'); $pager = $helper->get('front_pager_view')->setPager($pager)->setOption('navigation_top', true)->setOption('navigation_bottom', true); $t->isa_ok($pager, 'dmFrontPagerView', 'Got a dmFrontPagerView instance'); $t->is($pager->getNbResults(), 20, 'Pager has 20 results'); // Countable interface $t->diag('Countable interface'); $t->is(count($pager), 20, 'Pager has 20 results'); // Iterator interface $t->diag('Iterator interface'); $pager->init(); $normal = 0; $iterated = 0; foreach ($pager->getResults() as $object) { $normal++; } foreach ($pager as $object) { $iterated++; } $t->is($iterated, $normal, '"Iterator" interface loops over objects in the current pager'); $t->is($pager->getCurrent(), $query->fetchOne(), 'Found the first post'); $t->comment('Render navigation top'); $pattern = '<div class="pager"><ul class="clearfix"><li class="page current"><span class="link">1</span></li><li class="page">.+</li></ul></div>'; $t->like($navigation = $pager->renderNavigationTop(), '|^' . $pattern . '$|', 'navigation top: ' . $navigation);
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(); $values = array('name' => 'Jo', 'email' => '*****@*****.**'); /** * @var dmMail */ $mail = $helper->get('mail')->setTemplate('test')->addValues($values); $template = $mail->getTemplate(); /** * @var Swift_Message */ $message = $mail->getMessage(); $t->ok(!$mail->isRendered(), 'Mail is not rendered'); $t->is_deeply($mail->getValues(), $values, 'Mail values are ' . print_r($values, true)); $t->ok(!$template->exists(), 'The mail template does not exist'); $mail->render(); $t->ok($mail->isRendered(), 'Mail is rendered'); $t->ok($template->exists(), 'The mail template exists'); $expected = array('*****@*****.**' => null); $t->is($message->getFrom(), $expected, 'Message from is ' . print_r($expected, true)); $template->from_email = '*****@*****.**'; $template->save(); /** * @var dmMail */ $mail = $helper->get('mail')->setTemplate('test')->addValues($values)->render(); /**
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(3); $user = $helper->get('user'); $defaultCulture = sfConfig::get('sf_default_culture'); $user->setCulture($defaultCulture); $widget = dmDb::create('DmWidget', array('module' => 'dmWidgetContent', 'action' => 'title', 'dm_zone_id' => dmDb::table('DmZone')->findOne()->id, 'value' => $defaultCulture . ' value'))->saveGet(); $widgetId = $widget->id; $wanted = array_merge($widget->toArray()); /* * Add fancy translations */ foreach (array('z1', 'c2', 'c3') as $culture) { $user->setCulture($culture); $widget->value = $culture . ' value'; $widget->save(); } $user->setCulture($defaultCulture); $widgetArray = dmDb::query('DmWidget w')->leftJoin('w.Translation t WITH t.lang = ?', $defaultCulture)->where('w.id = ?', $widgetId)->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY); $t->is($widgetArray, $wanted, 'Fetched widget array for existing culture'); $query = dmDb::query('DmWidget w')->leftJoin('w.Translation t WITH t.lang = ? OR t.lang = ?', array('__', $defaultCulture))->where('w.id = ?', $widgetId); $t->diag($query->getSqlQuery()); $widgetArray = $query->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY); $t->is($widgetArray, $wanted, 'Fetched widget array with i18n fallback for non existing culture'); $widgetArray = dmDb::query('DmWidget w')->leftJoin('w.Translation t WITH t.lang = ? OR t.lang = ?', array('z1', $defaultCulture))->where('w.id = ?', $widgetId)->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY); $wanted2 = $wanted; $wanted2['Translation']['z1'] = array('id' => $widget->id, 'value' => 'z1 value', 'lang' => 'z1'); $t->is($widgetArray, $wanted2, 'Fetched widget array for existing, non-default culture');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $isFront = sfConfig::get('dm_context_type') == 'front'; $sc = $helper->get('service_container'); $t = new lime_test(); $user = $helper->get('user'); $theme = $user->getTheme(); $t->is($sc->getParameter('user.culture'), $user->getCulture(), 'culture is synchronized to ' . $user->getCulture()); $t->is($sc->getParameter('user.theme'), $user->getTheme(), 'theme is synchronized to ' . $user->getTheme()); foreach (sfConfig::get('dm_i18n_cultures') as $culture) { $user->setCulture($culture); $t->is($sc->getParameter('user.culture'), $user->getCulture(), 'culture is synchronized to ' . $user->getCulture()); } if ($isFront) { $themeManager = $sc->get('theme_manager'); foreach ($themeManager->getThemes() as $theme) { $user->setTheme($theme); $t->is($sc->getParameter('user.theme'), $user->getTheme(), 'theme is synchronized to ' . $user->getTheme()); } } class dmOtherBrowser extends dmBrowser { } $defaultBrowserClass = $sc->getParameter('browser.class'); $t->isa_ok($sc->get('browser'), $defaultBrowserClass, 'browser service is a ' . $defaultBrowserClass); $t->isa_ok($sc->get('browser', 'dmOtherBrowser'), 'dmOtherBrowser', 'browser service is a dmOtherBrowser'); $t->isa_ok($sc->get('browser'), $defaultBrowserClass, 'browser service is a ' . $defaultBrowserClass);
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(47); dm::loadHelpers(array('Dm')); sfConfig::set('sf_no_script_name', false); dmDb::table('DmPage')->checkBasicPages(); $sc = $helper->get('service_container'); $sc->mergeParameter('link_tag_record.options', array('current_span' => false))->mergeParameter('link_tag_page.options', array('current_span' => false)); $t->diag('link current_span is false'); $home = dmDb::table('DmPage')->getTree()->fetchRoot(); $helper->get('context')->setPage($home); $t->diag($home->name . ' is the current page'); $testPage = dmDb::create('DmPage', array('module' => 'main', 'action' => 'test' . dmString::random(12), 'name' => 'I am a root child', 'slug' => dmString::random())); $testPage->Node->insertAsLastChildOf($home); $scriptName = $helper->get('request')->getScriptName(); $t->diag('Current cli script name = ' . $scriptName); $t->is((string) _link('http://c2.com/cgi/wiki?DontRepeatYourself')->text('DRY'), $expected = '<a class="link" href="http://c2.com/cgi/wiki?DontRepeatYourself">DRY</a>', $expected); $t->like(£link()->render(), '|<a class="link dm_current|', '£link() has class dm_current'); $t->like(£link()->set('current_class', 'my_current')->render(), '|<a class="link my_current|', '£link() has class my_current'); $t->is((string) £link($home), (string) £link(), '£link($home) is £link()'); $t->is((string) £link('@homepage'), (string) £link($home), '£link("@homepage") is £link()'); $t->is((string) £link('main/root'), (string) £link($home), '£link("main/root") is £link()'); $t->is(£link()->getHref(), $scriptName, 'root href is ' . $scriptName); $t->is(£link()->getText(), $home->name, 'root link text is ' . $home->name); $expected = $helper->get('controller')->genUrl('dmAuth/signin'); $t->is(£link('+/dmAuth/signin')->getHref(), $expected, '+/dmAuth/signin href is ' . $expected); $rootLink = sprintf('<a class="%s" href="%s">%s</a>', 'link dm_current', $scriptName, $home->name); $t->is((string) £link(), $rootLink, 'root link is ' . $rootLink);
<?php $config = getcwd() . '/config/ProjectConfiguration.class.php'; require_once $config; require_once dm::getDir() . '/dmCorePlugin/test/unit/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); // load both standard and alternative helpers dm::loadHelpers(array('Dm', 'DmAlternative', 'I18N')); $t = new lime_test(29); /* * $helper is the test helper. It acts as a service container * and can provide you all services with its get() method. * so here we get the 'helper' service which is the template helper instance */ $templateHelper = $helper->get('helper'); // £ function $t->is(£('div', 'content'), _tag('div', 'content'), '£ == _tag'); // £ method $t->is($templateHelper->£('div', 'content'), $templateHelper->tag('div', 'content'), '£ == _tag'); $t->is(£('div', 'content'), _tag('div', 'content'), '£ == _tag'); // £link method $t->is((string) $templateHelper->£link()->text('home'), (string) $templateHelper->link()->text('home'), '£link == _link'); $t->is((string) £link()->text('home'), (string) _link()->text('home'), '£link == _link'); $openDiv = '<div>'; $t->is(£o('div'), _tagO('div'), $openDiv); $openDiv = '<div class="test_class">'; $t->is(£o('div.test_class'), _tagO('div.test_class'), $openDiv); $openDiv = '<div id="test_id" class="test_class other_class">'; $t->is(£o('div#test_id.test_class.other_class'), _tagO('div#test_id.test_class.other_class'), $openDiv); $openDiv = '<div class="test_class other_class" id="test_id">';
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); clearstatcache(true); $isSqlite = Doctrine_Manager::getInstance()->getConnection('doctrine') instanceof Doctrine_Connection_Sqlite; $t = new lime_test(16 + ($isSqlite ? 0 : 1) + 3 * count($helper->get('i18n')->getCultures())); $user = $helper->get('user'); try { $index = $helper->get('search_index'); $t->fail('Can\'t create index without dir'); } catch (dmSearchIndexException $e) { $t->pass('Can\'t create index without dir'); } $engine = $helper->get('search_engine'); $t->isa_ok($engine, 'dmSearchEngine', 'Got a dmSearchEngine instance'); $expected = dmProject::rootify(dmArray::get($helper->get('service_container')->getParameter('search_engine.options'), 'dir')); $t->is($engine->getFullPath(), $expected, 'Current engine full path is ' . $expected); $t->ok(!file_exists(dmProject::rootify('segments.gen')), 'There is no segments.gen in project root dir'); $engine->setDir('cache/testIndex'); foreach ($helper->get('i18n')->getCultures() as $culture) { $user->setCulture($culture); $currentIndex = $engine->getCurrentIndex(); $t->is($currentIndex->getName(), 'dm_page_' . $culture, 'Current index name is ' . $currentIndex->getName()); $t->is($currentIndex->getCulture(), $culture, 'Current index culture is ' . $culture); $t->is($currentIndex->getFullPath(), dmProject::rootify('cache/testIndex/' . $currentIndex->getName()), 'Current index full path is ' . $currentIndex->getFullPath()); } $user->setCulture(sfConfig::get('sf_default_culture')); $currentIndex = $engine->getCurrentIndex(); $t->isa_ok($currentIndex->getLuceneIndex(), 'Zend_Search_Lucene_Proxy', 'The current index is instanceof Zend_Search_Lucene_Proxy');
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot('front'); $t = new lime_test(34); $t->comment('Create a test image media'); $mediaFileName = 'test_' . dmString::random() . '.jpg'; copy(dmOs::join(sfConfig::get('dm_core_dir'), 'data/image/defaultMedia.jpg'), dmOs::join(sfConfig::get('sf_upload_dir'), $mediaFileName)); $media = dmDb::create('DmMedia', array('file' => $mediaFileName, 'dm_media_folder_id' => dmDb::table('DmMediaFolder')->checkRoot()->id))->saveGet(); $t->ok($media->exists(), 'A test media has been created'); $wtm = $helper->get('widget_type_manager'); $widgetType = $wtm->getWidgetType('dmWidgetContent', 'image'); $formClass = $widgetType->getOption('form_class'); $t->comment('Create a test page'); $testPage = dmDb::create('DmPage', array('module' => dmString::random(), 'action' => dmString::random(), 'name' => dmString::random(), 'slug' => dmString::random())); $testPage->Node->insertAsFirstChildOf(dmDb::table('DmPage')->getTree()->fetchRoot()); $t->comment('Create a test widget'); $widget = dmDb::create('DmWidget', array('module' => $widgetType->getModule(), 'action' => $widgetType->getAction(), 'value' => '[]', 'dm_zone_id' => $testPage->PageView->Area->Zones[0])); $t->comment('Create a ' . $formClass . ' instance'); $form = new $formClass($widget); $form->removeCsrfProtection(); $html = $form->render(); $t->like($html, '_^<form\\s(.|\\n)*</form>$_', 'Successfully obtained and rendered a ' . $formClass . ' instance'); $t->is($form->getStylesheets(), array(), 'This widget form requires no additional stylesheet'); $t->is($form->getJavascripts(), array(), 'This widget form requires no additional javascript'); $t->comment('Submit an empty form'); $form->bind(array(), array()); $t->is($form->isValid(), false, 'The form is not valid'); $t->comment('Use a bad media id'); $form->bind(array('mediaId' => 9999999999999), array());