public function testComplexMenu() { $acl = new Kwf_Acl(); $acl->add(new Kwf_Acl_Resource_MenuDropdown('fooBar1', array('text' => 'FooBar1', 'icon' => 'heart.png'))); $acl->add(new Kwf_Acl_Resource_MenuUrl('foo1', array('text' => 'Foo1', 'icon' => 'heart.png', 'order' => -1), '/admin/foo'), 'fooBar1'); $acl->add(new Kwf_Acl_Resource_MenuUrl('bar1', array('text' => 'Bar1', 'icon' => 'heart.png', 'order' => -2), '/admin/bar'), 'fooBar1'); $acl->allow(null, 'fooBar1'); $acl->add(new Kwf_Acl_Resource_MenuDropdown('fooBar2', array('text' => 'FooBar2', 'icon' => 'heart.png', 'order' => 1))); $acl->add(new Kwf_Acl_Resource_MenuUrl('foo2', array('text' => 'Foo2', 'icon' => 'heart.png', 'order' => 1), '/admin/foo'), 'fooBar2'); $acl->add(new Kwf_Acl_Resource_MenuUrl('bar2', array('text' => 'Bar2', 'icon' => 'heart.png'), '/admin/bar'), 'fooBar2'); $acl->allow(null, 'fooBar2'); $acl->add(new Kwf_Acl_Resource_MenuDropdown('fooBar3', array('text' => 'FooBar3', 'icon' => 'heart.png', 'order' => -1))); $acl->add(new Kwf_Acl_Resource_MenuUrl('foo3', array('text' => 'Foo3', 'icon' => 'heart.png'), '/admin/foo'), 'fooBar3'); $acl->add(new Kwf_Acl_Resource_MenuUrl('bar3', array('text' => 'Bar3', 'icon' => 'heart.png', 'order' => -1), '/admin/bar'), 'fooBar3'); $acl->allow(null, 'fooBar3'); $config = $acl->getMenuConfig(null); //order of the dropdowns $this->assertEquals('FooBar3', $config[0]['menuConfig']['text']); $this->assertEquals('FooBar1', $config[1]['menuConfig']['text']); //order of fooBar1 children $this->assertEquals('Bar1', $config[1]['children'][0]['menuConfig']['text']); //order of fooBar2 children $this->assertEquals('Bar2', $config[2]['children'][0]['menuConfig']['text']); //order of fooBar3 children $this->assertEquals('Bar3', $config[0]['children'][0]['menuConfig']['text']); }
public function testKwcAcl() { $acl = new Kwf_Acl(); $acl->add(new Zend_Acl_Resource('misc')); $acl->allow(null, 'misc'); $config = $acl->getMenuConfig(null); $this->assertEquals(1, count($config)); $this->assertEquals('url', $config[0]['type']); }
public function testBelowZendResourceGoesToParent() { $acl = new Kwf_Acl(); $acl->add(new Zend_Acl_Resource('foo')); $acl->add(new Kwf_Acl_Resource_MenuUrl('misc_languages', array('text' => 'Sprachen', 'icon' => 'comment.png'), '/admin/misc/languages'), 'foo'); $acl->allow(null, 'foo'); $config = $acl->getMenuConfig(null); $this->assertEquals(1, count($config)); $this->assertEquals('url', $config[0]['type']); }