示例#1
0
 /**
  * Tests for Menu and MenuItem classes.
  *
  * * Check for menu items count.
  * * Check for item values.
  * * Check if object is menu or not.
  * * Check active status on items.
  * * Check for item existence.
  * * Check existence after removing item.
  * * Check item count after clearing menu items.
  * * Check for menu parent after add and after remove.
  *
  * @since 2014.08.06 Added test for parent menu, more tests for active status and if object is menu.
  */
 public function testMenu()
 {
     $label1 = 'Label1';
     $label2 = 'Label2';
     $url = '/url';
     $icon = 'icon';
     $target = 'target';
     $menu = new Menu();
     $item1 = new MenuItem($label1, $url);
     $item2 = new MenuItem($label2);
     $item1->setIcon($icon)->setTarget($target);
     // Check for menu items count.
     $menu->add('item1', $item1)->add('item2', $item2);
     $this->assertCount(2, $menu->getItems());
     // Check for item values.
     $this->assertEquals($label1, $menu->get('item1')->getLabel());
     $this->assertEquals($label2, $menu->get('item2')->getLabel());
     $this->assertEquals($url, $menu->get('item1')->getUrl());
     $this->assertEquals('', $menu->get('item2')->getUrl());
     $this->assertEquals($icon, $menu->get('item1')->getIcon());
     $this->assertNull($menu->get('item2')->getIcon());
     $this->assertEquals($target, $menu->get('item1')->getTarget());
     $this->assertNull($menu->get('item2')->getTarget());
     // Check if object is menu or not.
     $this->assertTrue($menu->isMenu());
     $this->assertFalse($item1->isMenu());
     // Check active status on items.
     $menu->setActiveItem('item1');
     $this->assertTrue($menu->get('item1')->getActive());
     $menu->setActiveItem('item2');
     $this->assertFalse($menu->get('item1')->getActive());
     $submenu = new Menu();
     $submenu->add('subitem', new MenuItem());
     $menu->add('submenu', $submenu);
     $submenu->setActiveItem('subitem');
     $this->assertTrue($submenu->getActive());
     $this->assertNotTrue($menu->getActive());
     // Check for item existence.
     $this->assertTrue($menu->exists('item1'));
     $this->assertFalse($menu->exists('item3'));
     // Check existence after removing item.
     $menu->remove('item2');
     $this->assertFalse($menu->exists('item2'));
     // Check item count after clearing menu items.
     $menu->clear();
     $this->assertCount(0, $menu->getItems());
     // Check for menu parent after add and after remove.
     $menu->add('item1', $item1);
     $this->assertEquals($menu, $item1->getParentMenu());
     $menu->remove('item1');
     $this->assertNull($item1->getParentMenu());
 }