Browse Source

Fixed PHPDocs, code and tests for #15422

tags/2.0.14
SilverFire - Dmitry Naumenko 7 years ago
parent
commit
3ed5e35701
No known key found for this signature in database
GPG Key ID: 39DD917A92B270A
  1. 10
      framework/rbac/BaseManager.php
  2. 4
      framework/test/FileFixtureTrait.php
  3. 34
      tests/framework/rbac/ManagerTestCase.php

10
framework/rbac/BaseManager.php

@ -10,6 +10,7 @@ namespace yii\rbac;
use yii\base\Component; use yii\base\Component;
use yii\base\InvalidArgumentException; use yii\base\InvalidArgumentException;
use yii\base\InvalidConfigException; use yii\base\InvalidConfigException;
use yii\base\InvalidValueException;
/** /**
* BaseManager is a base class implementing [[ManagerInterface]] for RBAC management. * BaseManager is a base class implementing [[ManagerInterface]] for RBAC management.
@ -18,6 +19,7 @@ use yii\base\InvalidConfigException;
* *
* @property Role[] $defaultRoleInstances Default roles. The array is indexed by the role names. This property * @property Role[] $defaultRoleInstances Default roles. The array is indexed by the role names. This property
* is read-only. * is read-only.
* @property string[] $defaultRoles The default roles.
* *
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
@ -198,16 +200,18 @@ abstract class BaseManager extends Component implements ManagerInterface
/** /**
* Set default roles * Set default roles
* @param array|\Closure $roles either array of roles or a callable returning it * @param array|\Closure $roles either array of roles or a callable returning it
* @throws InvalidArgumentException when $roles is neither array nor Closure
* @throws InvalidValueException when Closure return is not an array
* @since 2.0.14 * @since 2.0.14
*/ */
public function setDefaultRoles($roles) public function setDefaultRoles($roles)
{ {
if (is_array($roles)) { if (is_array($roles)) {
$this->defaultRoles = $roles; $this->defaultRoles = $roles;
} elseif (is_callable($roles)) { } elseif ($roles instanceof \Closure) {
$roles = $roles(); $roles = call_user_func($roles);
if (!is_array($roles)) { if (!is_array($roles)) {
throw new InvalidArgumentException('Default roles closure must return an array'); throw new InvalidValueException('Default roles closure must return an array');
} }
$this->defaultRoles = $roles; $this->defaultRoles = $roles;
} else { } else {

4
framework/test/FileFixtureTrait.php

@ -6,6 +6,7 @@
*/ */
namespace yii\test; namespace yii\test;
use Yii; use Yii;
use yii\base\InvalidConfigException; use yii\base\InvalidConfigException;
@ -19,7 +20,6 @@ trait FileFixtureTrait
{ {
/** /**
* @var string the directory path or [path alias](guide:concept-aliases) that contains the fixture data * @var string the directory path or [path alias](guide:concept-aliases) that contains the fixture data
* @since 2.0.14
*/ */
public $dataDirectory; public $dataDirectory;
/** /**
@ -44,7 +44,7 @@ trait FileFixtureTrait
return []; return [];
} }
if (basename($file) == $file && $this->dataDirectory !== null) { if (basename($file) === $file && $this->dataDirectory !== null) {
$file = $this->dataDirectory . '/' . $file; $file = $this->dataDirectory . '/' . $file;
} }

34
tests/framework/rbac/ManagerTestCase.php

@ -8,6 +8,7 @@
namespace yiiunit\framework\rbac; namespace yiiunit\framework\rbac;
use yii\base\InvalidParamException; use yii\base\InvalidParamException;
use yii\rbac\BaseManager;
use yii\rbac\Item; use yii\rbac\Item;
use yii\rbac\Permission; use yii\rbac\Permission;
use yii\rbac\Role; use yii\rbac\Role;
@ -19,7 +20,7 @@ use yiiunit\TestCase;
abstract class ManagerTestCase extends TestCase abstract class ManagerTestCase extends TestCase
{ {
/** /**
* @var \yii\rbac\ManagerInterface * @var \yii\rbac\ManagerInterface|BaseManager
*/ */
protected $auth; protected $auth;
@ -615,26 +616,19 @@ abstract class ManagerTestCase extends TestCase
$this->assertInstanceOf(ActionRule::className(), $rule); $this->assertInstanceOf(ActionRule::className(), $rule);
} }
public function testDefaultRoles() public function testDefaultRolesWithClosureReturningNonArrayValue()
{ {
try { $this->expectException('yii\base\InvalidValueException');
$this->auth->defaultRoles = 'test'; $this->expectExceptionMessage('Default roles closure must return an array');
} catch (\Exception $e) { $this->auth->defaultRoles = function () {
$this->assertInstanceOf('\yii\base\InvalidParamException', $e); return 'test';
$this->assertEquals('Default roles must be either an array or a callable', $e->getMessage()); };
}
try {
$this->auth->defaultRoles = function () {
return 'test';
};
} catch (\Exception $e) {
$this->assertInstanceOf('\yii\base\InvalidParamException', $e);
$this->assertEquals('Default roles closure must return an array', $e->getMessage());
}
return;
}
$this->fail('Not rise an exception'); public function testDefaultRolesWithNonArrayValue()
{
$this->expectException('yii\base\InvalidArgumentException');
$this->expectExceptionMessage('Default roles must be either an array or a callable');
$this->auth->defaultRoles = 'test';
} }
} }

Loading…
Cancel
Save