. namespace Tests\Unit; if (!defined('INSTALLDIR')) { define('INSTALLDIR', dirname(dirname(__DIR__))); } if (!defined('GNUSOCIAL')) { define('GNUSOCIAL', true); } if (!defined('STATUSNET')) { // Compatibility define('STATUSNET', true); } use Exception; use PHPUnit\Framework\TestCase; use User; require_once INSTALLDIR . '/lib/common.php'; final class UserRightsTest extends TestCase { protected $user = null; function setUp() { $user = User::getKV('nickname', 'userrightstestuser'); if ($user) { // Leftover from a broken test run? $profile = $user->getProfile(); $user->delete(); $profile->delete(); } $this->user = User::register(array('nickname' => 'userrightstestuser')); if (!$this->user) { throw new Exception("Couldn't register userrightstestuser"); } } function tearDown() { if ($this->user) { $profile = $this->user->getProfile(); $this->user->delete(); $profile->delete(); } } function testInvalidRole() { $this->assertFalse($this->user->hasRole('invalidrole')); } function standardRoles() { return array(array('admin'), array('moderator')); } /** * @dataProvider standardRoles * @param $role */ function testUngrantedRole($role) { $this->assertFalse($this->user->hasRole($role)); } /** * @dataProvider standardRoles * @param $role */ function testGrantedRole($role) { $this->user->grantRole($role); $this->assertTrue($this->user->hasRole($role)); } }