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('SilverStripe\\Admin\\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 another controller
     CMSMenu::add_controller('CMSMenuTest_CustomTitle');
     $menuItems = CMSMenu::get_menu_items();
     $menuItem = $menuItems['CMSMenuTest_CustomTitle'];
     $this->assertInstanceOf('SilverStripe\\Admin\\CMSMenuItem', $menuItem, 'Controller menu item is of class CMSMenuItem');
     $this->assertEquals('CMSMenuTest_CustomTitle (localised)', $menuItem->title);
     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('SilverStripe\\Admin\\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();
 }