public function testCreate() { CoOrg::config()->set('urlPrefix', ':language'); $entry = new MenuEntry; $entry->menuID = 'main'; $entry->title = 'Latst blogs'; $entry->language = 'en'; $entry->entryID = 'BlogMenuEntryProvider/latest'; $entry->save(); $this->assertEquals('BlogMenuEntryProvider', $entry->provider); $this->assertEquals('latest', $entry->action); $this->assertEquals('en/blog', $entry->url); $entry = new MenuEntry; $entry->menuID = 'main'; $entry->title = 'Blog no 7'; $entry->language = 'en'; $entry->entryID = 'BlogMenuEntryProvider/show/2010-05-04/blog-no-7'; $entry->save(); $this->assertNotNull($entry->ID); $retrievedEntry = MenuEntry::get($entry->ID); $this->assertNotNull($retrievedEntry); $this->assertEquals('Blog no 7', $retrievedEntry->title); $this->assertEquals('BlogMenuEntryProvider', $retrievedEntry->provider); $this->assertEquals('show', $retrievedEntry->action); $this->assertEquals('2010-05-04/blog-no-7', $retrievedEntry->data); $this->assertEquals('en/blog/show/2010/05/04/blog-no-7', $retrievedEntry->url); $this->assertEquals(4, $retrievedEntry->sequence); $menu = Menu::get('main'); $entries = $menu->entries->filter('en'); $this->assertEquals(5, count($entries)); $this->assertEquals(3, $entries[3]->sequence); $this->assertEquals('en/blog', $entries[3]->url); $this->assertEquals(4, $entries[4]->sequence); $this->assertEquals('en/blog/show/2010/05/04/blog-no-7', $entries[4]->url); $entry = new MenuEntry; $entry->menu= $menu; $entry->title = 'External link'; $entry->language = 'en'; $entry->data = 'external.url.com'; $entry->entryID = 'URLMenuEntryProvider'; $entry->save(); $this->assertEquals('http://external.url.com', $entry->url); $this->assertEquals('main', $entry->menuID); }
protected function find ($entry) { $entry = MenuEntry::get($entry); if ($entry == null) { $this->error(t('Menu entry not found')); $this->redirect('admin/menu'); return false; } $this->_entry = $entry; return true; }