$badSource = dmString::random() . '/' . dmString::random(); $errorLink = '<a class="link"></a>'; $t->is($errorLink, $errorLink, $errorLink); $media->delete(); $t->is((string) £link('mailto:test@mail.com')->text('email'), $html = '<a class="link" href="mailto:test@mail.com">email</a>', 'mailto: ' . $html); $t->comment('Test use_beaf'); $helper->getServiceContainer()->mergeParameter('link_tag_uri.options', array('use_beaf' => true)); $expected = sprintf('<a class="link beafh" href="%s"><span class="beafore"></span><span class="beafin">%s</span><span class="beafter"></span></span></a>', 'http://diem-project.org', 'http://diem-project.org'); $t->is((string) £link('http://diem-project.org')->set('.beafh'), $expected, 'beafh link is ' . $expected); $expected = sprintf('<a class="link beafv" href="%s"><span class="beafore"></span><span class="beafin">%s</span><span class="beafter"></span></span></a>', 'http://diem-project.org', 'http://diem-project.org'); $t->is((string) £link('http://diem-project.org')->set('.beafv'), $expected, 'beafh link is ' . $expected); $expected = sprintf('<a class="link beafh myclass" href="%s"><span class="beafore"></span><span class="beafin">%s</span><span class="beafter"></span></span></a>', 'http://diem-project.org', 'http://diem-project.org'); $t->is((string) £link('http://diem-project.org')->set('.beafh.myclass'), $expected, 'beafh link is ' . $expected); $expected = sprintf('<a class="link beafv myclass" href="%s"><span class="beafore"></span><span class="beafin">%s</span><span class="beafter"></span></span></a>', 'http://diem-project.org', 'http://diem-project.org'); $t->is((string) £link('http://diem-project.org')->set('.beafv.myclass'), $expected, 'beafh link is ' . $expected); $expected = sprintf('<a class="link" href="%s">%s</a>', $helper->getContext()->getRequest()->getPathInfoPrefix() . '/simple-url', 'simple route url'); $t->is((string) £link('@link_test_route_1')->text('simple route url'), $expected, 'route link is ' . $expected); $expected = sprintf('<a class="link" href="%s">%s</a>', $helper->getContext()->getRequest()->getPathInfoPrefix() . '/simple-url?var1=value1', 'simple route url with extra query string'); $t->is((string) £link('@link_test_route_1')->param('var1', 'value1')->text('simple route url with extra query string'), $expected, 'route link is ' . $expected); $expected = sprintf('<a class="link" href="%s">%s</a>', $helper->getContext()->getRequest()->getPathInfoPrefix() . '/advanced-parametered-url/value1/value2', 'advanced parametered route url'); $t->is((string) £link('@link_test_route_2')->params(array('var1' => 'value1', 'var2' => 'value2'))->text('advanced parametered route url'), $expected, 'route link is ' . $expected); $expected = sprintf('<a class="link" href="%s">%s</a>', $helper->getContext()->getRequest()->getPathInfoPrefix() . '/advanced-parametered-url/value1/value2?var3=value3', 'advanced parametered route url with extrauery string'); $t->is((string) £link('@link_test_route_2')->params(array('var1' => 'value1', 'var2' => 'value2'))->param('var3', 'value3')->text('advanced parametered route url with extrauery string'), $expected, 'route link is ' . $expected); sfConfig::set('sf_debug', true); $expected = 'The "/advanced-parametered-url/:var1/:var2" route has some missing mandatory parameters (:var1, :var2).'; $t->is((string) £link('@link_test_route_2')->text('advanced parametered route url'), $expected, 'route link is ' . $expected); sfConfig::set('sf_debug', false); $t->comment('Nofollow attribute'); $expected = '<a class="link" href="http://site.com" nofollow="1">Site</a>'; $t->is((string) £link('http://site.com')->text('Site')->set('nofollow', true), $expected, '->set("nofollow", true)'); $expected = '<a class="link nofollow" href="http://site.com" nofollow="1">Site</a>';
} $menu = $helper->get('menu', 'dmMyMenu')->name('My menu'); $t->isa_ok($menu, 'dmMyMenu', 'Got a dmMyMenu instance'); $menu->addChild('Home', '@homepage')->end()->addChild('Sites')->ulClass('my_ul_class')->addChild('Diem', 'http://diem-project.org')->showId(true)->end()->addChild('Symfony', 'http://symfony-project.org')->end(); $html = _tag('ul', _tag('li.first', _link('@homepage')->text($helper->get('i18n')->__('Home'))) . _tag('li.last', 'Sites' . _tag('ul.my_ul_class', _tag('li#my-menu-diem.first', _link('http://diem-project.org')->text('Diem')) . _tag('li.last', _link('http://symfony-project.org')->text('Symfony'))))); $t->is($menu->render(), $html, $html); $t->comment('Test getRoot'); $t->is($menu['Home']->getRoot(), $menu, 'Home root is $menu'); $t->is($menu['Sites']['Diem']->getRoot(), $menu, 'Diem root is menu'); $sitemap = $helper->get('sitemap_menu')->build(); $t->isa_ok($sitemap, 'dmSitemapMenu', 'Got a dmSitemapMenu'); $t->is($sitemap->getFirstChild()->renderLink(), (string) _link(), 'Sitemap first child is Home'); $t->like((string) $sitemap, '|^' . preg_quote('<ul><li class="first last"><a class="link" href="', '|') . '.*|', 'Sitemap html is valid'); $t->comment('Test current page'); $homePage = dmDb::table('DmPage')->getTree()->fetchRoot(); $helper->getContext()->setPage($homePage); $menu = $helper->get('menu')->addChild('Home', '@homepage')->end(); $html = _tag('ul', _tag('li.first.last.dm_current', _link()->text($helper->get('i18n')->__('Home')))); $t->is($menu->render(), $html, 'Current li has the dm_current class'); $helper->getContext()->setPage(dmDb::table('DmPage')->findOneByModuleAndAction('main', 'signin')); $menu = $helper->get('menu')->addChild('Home', '@homepage')->end(); $html = _tag('ul', _tag('li.first.last.dm_parent', _link()->text($helper->get('i18n')->__('Home')))); $t->is($menu->render(), $html, 'Parent li has the dm_parent class'); $menu = $helper->get('menu')->addChild('Home')->end()->addChild('Sites')->addChild('Diem')->end()->addChild('Symfony')->end()->end(); $html = _tag('ul', _tag('li.first', 'Home') . _tag('li.last', 'Sites' . _tag('ul', _tag('li.first', 'Diem') . _tag('li.last', 'Symfony')))); $t->is($menu->render(), $html, $html); $t->comment('->getSiblings()'); $t->is_deeply($menu['Home']->getSiblings(), array('Sites' => $menu['Sites']), '->getSiblings() works'); $t->is_deeply($menu['Home']->getSiblings(true), array('Home' => $menu['Home'], 'Sites' => $menu['Sites']), '->getSiblings(true) works'); $t->comment('Move menus'); $menu['Home']->moveToLast();