public function testBasicMenuHandling() { // Clear existing menu CMSMenu::clear_menu(); $menuItems = CMSMenu::get_menu_items(); $this->assertTrue(empty($menuItems), 'Menu can be cleared'); // Add a controller to the menu and check it is as expected CMSMenu::add_controller('CMSMenuTest_LeftAndMainController'); $menuItems = CMSMenu::get_menu_items(); $menuItem = $menuItems['CMSMenuTest_LeftAndMainController']; $this->assertInstanceOf('CMSMenuItem', $menuItem, 'Controller menu item is of class CMSMenuItem'); $this->assertContains($menuItem->url, singleton('CMSMenuTest_LeftAndMainController')->Link(), 'Controller menu item has the correct link'); $this->assertEquals($menuItem->controller, 'CMSMenuTest_LeftAndMainController', 'Controller menu item has the correct controller class'); $this->assertEquals($menuItem->priority, singleton('CMSMenuTest_LeftAndMainController')->stat('menu_priority'), 'Controller menu item has the correct priority'); CMSMenu::clear_menu(); // Add a link to the menu CMSMenu::add_link('LinkCode', 'link title', 'http://www.example.com'); $menuItems = CMSMenu::get_menu_items(); $menuItem = $menuItems['LinkCode']; $this->assertInstanceOf('CMSMenuItem', $menuItem, 'Link menu item is of class CMSMenuItem'); $this->assertEquals($menuItem->title, 'link title', 'Link menu item has the correct title'); $this->assertEquals($menuItem->url, 'http://www.example.com', 'Link menu item has the correct link'); $this->assertNull($menuItem->controller, 'Link menu item has no controller class'); $this->assertEquals($menuItem->priority, -1, 'Link menu item has the correct priority'); CMSMenu::clear_menu(); }