Author: weaverryan
Date: 2010-02-10 06:14:34 +0100 (Wed, 10 Feb 2010)
New Revision: 27801
Modified:
plugins/sfSympalPlugin/trunk/test/unit/MenuTest.php
Log:
-1.4][sfSympalPlugin][1.0] Reworking the menu item test as I dive into
reworking and finishing its functionality. The test is essentially unchanged,
but drawn out to be more verbose and somewhat rearranged.
Modified: plugins/sfSympalPlugin/trunk/test/unit/MenuTest.php
===================================================================
--- plugins/sfSympalPlugin/trunk/test/unit/MenuTest.php 2010-02-10 05:00:06 UTC
(rev 27800)
+++ plugins/sfSympalPlugin/trunk/test/unit/MenuTest.php 2010-02-10 05:14:34 UTC
(rev 27801)
@@ -12,20 +12,30 @@
}
+$t->info('Menu Structure');
+$t->info(' rt1 rt2 ');
+$t->info(' / \ | ');
+$t->info('ch1 ch2 ch3 ');
+$t->info(' | ');
+$t->info(' gc1 ');
+
$menu = new sfSympalMenuTest('Test Menu');
$root1 = $menu->getChild('Root 1');
-$root1->addChild('Child 1');
-$last = $root1->addChild('Child 2');
+$child1 = $root1->addChild('Child 1');
+$child2 = $root1->addChild('Child 2');
$root2 = $menu->getChild('Root 2');
-$child1 = $root2->addChild('Child 1');
-$child2 = $child1->addChild('Child 2');
+$child3 = $root2->addChild('Child 3');
+$grandchild1 = $child3->addChild('Grandchild 1');
-$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->info('1 - Test the basics of the hierarchy');
+
+$t->is($menu->getLevel(), -1, 'Test getLevel()');
+$t->is($root1->getLevel(), 0, 'Test Root 1 level is 0');
+$t->is($root2->getLevel(), 0, 'Test Root 2 level is 0');
+$t->is($child3->getLevel(), 1, 'Test Child 3 level is 1');
+$t->is($grandchild1->getLevel(), 2, 'Test Grandchild 1 level is 2');
+$t->is($grandchild1->getPathAsString(), 'Test Menu > Root 2 > Child 3 >
Grandchild 1', 'Test getPathAsString() on Grandchild 1');
$t->is(get_class($root1), 'sfSympalMenuTest', 'Test children are created as
same class as parent');
// array access
@@ -43,28 +53,54 @@
$t->is($value->getLabel(), 'Child '.$count, 'Test iteratable');
}
-$new = $menu['Root 2'];
-$t->is(get_class($new), 'sfSympalMenuTest', 'Test child is correct class
type');
-$new2 = $new['Root 3']['Child 1'];
-$t->is((string) $new, '<ul id="root-2-menu"><li id="test-menu-child-1"
class="first">Child 1<ul id="child-1-menu"><li id="test-menu-child-2"
class="first last">Child 2</li></ul></li><li id="test-menu-root-3"
class="last">Root 3<ul id="root-3-menu"><li id="test-menu-child-1" class="first
last">Child 1</li></ul></li></ul>', 'Test __toString()');
+$t->is(get_class($menu['Root 2']), 'sfSympalMenuTest', 'Test child "Root 2" is
correct class type');
-$menu['Test']['With Route']->setRoute('http://www.google.com');
-$t->is((string) $menu['Test'], '<ul id="test-menu"><li
id="test-menu-with-route" class="first last"><a
href="http://www.google.com">With Route</a></li></ul>', 'Test __toString()');
-$menu['Test']['With Route']->setOption('target', '_BLANK');
-$t->is((string) $menu['Test'], '<ul id="test-menu"><li
id="test-menu-with-route" class="first last"><a target="_BLANK"
href="http://www.google.com">With Route</a></li></ul>', 'Test __toString()');
+$t->info('Add another child and grandchild to Root 2');
+$t->info(' rt1 rt2 ');
+$t->info(' / \ / \ ');
+$t->info('ch1 ch2 ch3 ch4 ');
+$t->info(' | | ');
+$t->info(' gc1 gc2 ');
-$menu['Test']['With Route']->requiresAuth(true);
-$t->is((string) $menu['Test'], '', 'Test requiresAuth()');
+$menu['Root 2']['Child 4']['Grandchild 2'];
+$t->is((string) $menu['Root 2'], '<ul id="root-2-menu"><li
id="test-menu-child-3" class="first">Child 3<ul id="child-3-menu"><li
id="test-menu-grandchild-1" class="first last">Grandchild 1</li></ul></li><li
id="test-menu-child-4" class="last">Child 4<ul id="child-4-menu"><li
id="test-menu-grandchild-2" class="first last">Grandchild
2</li></ul></li></ul>', 'Test __toString()');
+
+
+$t->info('2 - Test routes, authentication');
+
+$t->info('Add a third route to check routes, authentication');
+$t->info(' rt1 rt2 rt3 ');
+$t->info(' / \ / \ | ');
+$t->info('ch1 ch2 ch3 ch4 w/route ');
+$t->info(' | | ');
+$t->info(' gc1 gc2 ');
+
+$menu['Root 3']['With Route']->setRoute('http://www.google.com');
+$t->is((string) $menu['Root 3'], '<ul id="root-3-menu"><li
id="test-menu-with-route" class="first last"><a
href="http://www.google.com">With Route</a></li></ul>', 'Test __toString() with
a route');
+
+$menu['Root 3']['With Route']->setOption('target', '_BLANK');
+$t->is((string) $menu['Root 3'], '<ul id="root-3-menu"><li
id="test-menu-with-route" class="first last"><a target="_BLANK"
href="http://www.google.com">With Route</a></li></ul>', 'Test __toString() with
a target option');
+
+$menu['Root 3']['With Route']->requiresAuth(true);
+$t->is((string) $menu['Root 3'], '', 'Test requiresAuth()');
$user = sfContext::getInstance()->getUser();
$user->setAuthenticated(true);
$t->is($user->isAuthenticated(), true, 'Test isAuthenticated()');
-$t->is($menu['Test']['With Route']->checkUserAccess($user), true, 'Test
checkUserAccess()');
-$t->is((string) $menu['Test'], '<ul id="test-menu"><li
id="test-menu-with-route" class="first last"><a target="_BLANK"
href="http://www.google.com">With Route</a></li></ul>', 'Test authentication');
+$t->is($menu['Root 3']['With Route']->checkUserAccess($user), true, 'Test
checkUserAccess()');
+$t->is((string) $menu['Root 3'], '<ul id="root-3-menu"><li
id="test-menu-with-route" class="first last"><a target="_BLANK"
href="http://www.google.com">With Route</a></li></ul>', 'Test authentication');
$menu->requiresNoAuth(true);
-$t->is((string) $menu, '', 'Test requiresNoAuth)');
-$t->is($menu->getLevel(), -1, 'Test getLevel()');
-$t->is($menu['Test']['With Route']->getParent()->getLabel(),
$menu['Test']->getLabel(), 'Test getLabel()');
+$t->is((string) $menu, '', 'Test requiresNoAuth()');
+$t->is($menu['Root 3']['With Route']->getParent()->getLabel(), $menu['Root
3']->getLabel(), 'Test getLabel()');
+$t->info('3 - Test isCurrent(), toArray() and child calls');
+
+$t->info('Add a 4th root with child and make it current (~ for current)');
+$t->info(' rt1 rt2 rt3 rt4 ');
+$t->info(' / \ / \ | | ');
+$t->info('ch1 ch2 ch3 ch4 w/route ~Test ');
+$t->info(' | | ');
+$t->info(' gc1 gc2 ');
+
$menu['Root 4']['Test']->isCurrent(true);
$t->is($menu['Root 4']->toArray(), array(
'name' => 'Root 4',
@@ -88,11 +124,40 @@
$t->is($menu->getFirstChild()->getName(), 'Root 1', 'Test getFirstChild()');
$t->is($menu->getLastChild()->getName(), 'Root 4', 'Test getLastChild()');
+
+$t->info('4 - Test some positional functions');
+$t->info(' root1 ');
+$t->info(' / | \ ');
+$t->info('first mid last ');
+$menu = new sfSympalMenuTest('Test Menu');
+$root1 = $menu->getChild('Root 1');
+$first = $root1->addChild('Child 1');
+$middle = $root1->addChild('Child 2');
+$last = $root1->addChild('Child 3');
+
+$t->is($first->isFirst(), true, 'Test isFirst()');
+$t->is($last->isLast(), true, 'Test isLast()');
+$t->is($middle->isFirst(), false, 'Test isFirst()');
+$t->is($middle->isLast(), false, 'Test isLast()');
+$t->is($first->getNum(), 1, 'Test getNum()');
+$t->is($middle->getNum(), 2, 'Test getNum()');
+$t->is($last->getNum(), 3, 'Test getNum()');
+
+
+$t->info('5 - Test the breadcrumbs menu item');
+
class sfSympalMenuBreadcrumbsTest extends sfSympalMenuBreadcrumbs
{
}
+$t->info('Create a basic hierarchy');
+$t->info(' Docs ');
+$t->info(' | ');
+$t->info(' 1.0 ');
+$t->info(' | ');
+$t->info(' Doctrine ');
+
$breadcrumbs = new sfSympalMenuBreadcrumbsTest('Doctrine');
$breadcrumbs->addChild('Documentation',
'http://www.doctrine-project.org/documentation');
$breadcrumbs->addChild('1.0',
'http://www.doctrine-project.org/documentation/1_0');
@@ -102,6 +167,9 @@
$t->is($breadcrumbs->getPathAsString(), 'Documentation / 1.0 / The Guide to
Doctrine ORM', 'getPathAsString()');
$t->is((string) $breadcrumbs, '<div id="sympal_breadcrumbs"><ul
id="doctrine-menu"><li id="doctrine-documentation" class="first"><a
href="http://www.doctrine-project.org/documentation">Documentation</a></li><li
id="doctrine-1-0"><a
href="http://www.doctrine-project.org/documentation/1_0">1.0</a></li><li
id="doctrine-the-guide-to-doctrine-orm" class="last"><a
href="http://www.doctrine-project.org/documentation/1_0/manual">The Guide to
Doctrine ORM</a></li></ul></div>', 'Test get breadcrumbs');
+
+$t->info('5 - Test the menu site class');
+
class sfSympalMenuSiteTest extends sfSympalMenuSite
{
public function renderLink()
@@ -114,12 +182,18 @@
sfContext::getInstance()->getUser()->signIn($user);
$manager = sfSympalMenuSiteManager::getInstance();
+
+$t->info('Retrieve the "primary" menu, setup in the fixtures');
+$t->info('blog signout home sample-page sample-content-list powered-by
');
+$t->info(' / |
\ ');
+$t->info(' symfony doctrine
sympal ');
+
$primaryMenu = $manager->getMenu('primary', false, 'sfSympalMenuSiteTest');
-$t->is((string) $primaryMenu, '<ul id="primary-menu"><li id="primary-blog"
class="first">Blog</li><li id="primary-signout">Signout</li><li
id="primary-home">Home</li><li id="primary-sample-page">Sample Page</li><li
id="primary-sample-content-list">Sample Content List</li><li
id="primary-powered-by" class="last">Powered By</li></ul>', 'Test
__toString()');
+$t->is((string) $primaryMenu, '<ul id="primary-menu"><li id="primary-blog"
class="first">Blog</li><li id="primary-signout">Signout</li><li
id="primary-home">Home</li><li id="primary-sample-page">Sample Page</li><li
id="primary-sample-content-list">Sample Content List</li><li
id="primary-powered-by" class="last">Powered By</li></ul>', 'Test __toString()
without showing children');
$split = $manager->split($primaryMenu, 2, true);
$total = $primaryMenu->count();
-$t->is($split['primary']->count(), 2, 'Test count()');
+$t->is($split['primary']->count(), 2, 'Test count() after splitting the menu
into 2 pieces');
$t->is((string) $split['primary'], '<ul id="primary-menu"><li
id="primary-blog" class="first">Blog</li><li
id="primary-signout">Signout</li></ul>', 'Test split() primary');
$t->is((string) $split['secondary'], '<ul id="secondary-menu"><li
id="primary-home">Home</li><li id="primary-sample-page">Sample Page</li><li
id="primary-sample-content-list">Sample Content List</li><li
id="primary-powered-by" class="last">Powered By</li></ul>', 'Test split()
secondary');
$t->is($split['secondary']->count(), 4, 'Test secondary count()');
@@ -127,20 +201,7 @@
$footerMenu = $manager->getMenu('footer', false, 'sfSympalMenuSiteTest');
$t->is((string) $footerMenu, '', 'Test footer menu');
-$menu = new sfSympalMenuTest('Test Menu');
-$root1 = $menu->getChild('Root 1');
-$first = $root1->addChild('Child 1');
-$middle = $root1->addChild('Child 2');
-$last = $root1->addChild('Child 3');
-$t->is($first->isFirst(), true, 'Test isFirst()');
-$t->is($last->isLast(), true, 'Test isLast()');
-$t->is($middle->isFirst(), false, 'Test isFirst()');
-$t->is($middle->isLast(), false, 'Test isLast()');
-$t->is($first->getNum(), 1, 'Test getNum()');
-$t->is($middle->getNum(), 2, 'Test getNum()');
-$t->is($last->getNum(), 3, 'Test getNum()');
-
$table = Doctrine_Core::getTable('sfSympalMenuItem');
$menuItems = $table
--
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.