2009-09-16 04:28:11 +09:00
|
|
|
<?php
|
|
|
|
|
|
|
|
if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
|
|
|
|
print "This script must be run from the command line\n";
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
|
|
|
|
define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
|
|
|
|
define('STATUSNET', true);
|
|
|
|
|
|
|
|
require_once INSTALLDIR . '/lib/common.php';
|
|
|
|
|
|
|
|
class UserRightsTest extends PHPUnit_Framework_TestCase
|
|
|
|
{
|
|
|
|
protected $user = null;
|
|
|
|
|
|
|
|
function setUp()
|
|
|
|
{
|
2009-12-16 07:49:53 +09:00
|
|
|
$user = User::staticGet('nickname', 'userrightstestuser');
|
|
|
|
if ($user) {
|
|
|
|
// Leftover from a broken test run?
|
|
|
|
$profile = $user->getProfile();
|
|
|
|
$user->delete();
|
|
|
|
$profile->delete();
|
|
|
|
}
|
2009-09-16 04:28:11 +09:00
|
|
|
$this->user = User::register(array('nickname' => 'userrightstestuser'));
|
2009-12-16 07:49:53 +09:00
|
|
|
if (!$this->user) {
|
|
|
|
throw new Exception("Couldn't register userrightstestuser");
|
|
|
|
}
|
2009-09-16 04:28:11 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
function tearDown()
|
|
|
|
{
|
2009-12-16 07:49:53 +09:00
|
|
|
if ($this->user) {
|
|
|
|
$profile = $this->user->getProfile();
|
|
|
|
$this->user->delete();
|
|
|
|
$profile->delete();
|
|
|
|
}
|
2009-09-16 04:28:11 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
function testInvalidRole()
|
|
|
|
{
|
|
|
|
$this->assertFalse($this->user->hasRole('invalidrole'));
|
|
|
|
}
|
|
|
|
|
|
|
|
function standardRoles()
|
|
|
|
{
|
2009-12-16 07:49:53 +09:00
|
|
|
return array(array('admin'),
|
|
|
|
array('moderator'));
|
2009-09-16 04:28:11 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider standardRoles
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
function testUngrantedRole($role)
|
|
|
|
{
|
|
|
|
$this->assertFalse($this->user->hasRole($role));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider standardRoles
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
function testGrantedRole($role)
|
|
|
|
{
|
|
|
|
$this->user->grantRole($role);
|
2009-12-16 07:49:53 +09:00
|
|
|
$this->assertTrue($this->user->hasRole($role));
|
2009-09-16 04:28:11 +09:00
|
|
|
}
|
|
|
|
}
|