فهرست منبع

#ZF-8468 Zend_Acl: Deprecated getRegisteredRoles(), added getRoles() and getResources()

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19540 44c647ce-9c0f-0410-b52a-842ac1e357ba
freak 16 سال پیش
والد
کامیت
8781d3fefa
2فایلهای تغییر یافته به همراه68 افزوده شده و 2 حذف شده
  1. 23 2
      library/Zend/Acl.php
  2. 45 0
      tests/Zend/Acl/AclTest.php

+ 23 - 2
library/Zend/Acl.php

@@ -1132,12 +1132,33 @@ class Zend_Acl
 
 
     /**
-     * @return array of registered roles
-     *
+     * @return array of registered roles (Deprecated)
+     * @deprecated Deprecated since version 1.10 (December 2009)
      */
     public function getRegisteredRoles()
     {
+        trigger_error('The method getRegisteredRoles() was deprecated as of '
+                    . 'version 1.0, and may be removed. You\'re encouraged '
+                    . 'to use getRoles() instead.');
+
         return $this->_getRoleRegistry()->getRoles();
     }
 
+    /**
+     * @return array of registered roles
+     */
+    public function getRoles()
+    {
+        return array_keys($this->_getRoleRegistry()->getRoles());
+    }
+
+    /**
+     * @return array of registered resources
+     */
+    public function getResources()
+    {
+        return array_keys($this->_resources);
+    }
+    
 }
+    

+ 45 - 0
tests/Zend/Acl/AclTest.php

@@ -1200,12 +1200,14 @@ class Zend_Acl_AclTest extends PHPUnit_Framework_TestCase
 
     /**
      * Returns an array of registered roles
+     * @expectedException PHPUnit_Framework_Error
      * @issue ZF-5638
      */
     public function testGetRegisteredRoles()
     {
         $acl = $this->_acl;
         $acl->addRole('developer');
+
         $roles = $acl->getRegisteredRoles();
         $this->assertTrue(is_array($roles));
         $this->assertFalse(empty($roles));
@@ -1273,5 +1275,48 @@ class Zend_Acl_AclTest extends PHPUnit_Framework_TestCase
 
         $this->assertTrue($allowed);
     }
+    
+    /**
+     * @group ZF-8468
+     */
+    public function testGetRegisteredRolesIsDeprecated() {
+        try {
+            $this->_acl->getRegisteredRoles();
+            $this->fail('getRegisteredRoles() did not throw an exception');
+        } catch(PHPUnit_Framework_Error $e) {
+            return;
+        }
+        
+        $this->fail('An expected notice has not been raised');
+    }
+    
+    /**
+     * @group ZF-8468
+     */
+    public function testgetRoles() {
+        $this->assertEquals(array(),$this->_acl->getRoles());
+
+        $roleGuest = new Zend_Acl_Role('guest');
+        $this->_acl->addRole($roleGuest);
+        $this->_acl->addRole(new Zend_Acl_Role('staff'), $roleGuest);
+        $this->_acl->addRole(new Zend_Acl_Role('editor'), 'staff');
+        $this->_acl->addRole(new Zend_Acl_Role('administrator'));
+
+        $expected = array('guest', 'staff','editor','administrator');
+        $this->assertEquals($expected, $this->_acl->getRoles());
+    }
+    
+    /**
+     * @group ZF-8468
+     */
+    public function testgetResources() {
+        $this->assertEquals(array(),$this->_acl->getResources());
+
+        $this->_acl->add(new Zend_Acl_Resource('someResource'));
+        $this->_acl->add(new Zend_Acl_Resource('someOtherResource'));
+
+        $expected = array('someResource', 'someOtherResource');
+        $this->assertEquals($expected, $this->_acl->getResources());
+    }
 
 }