| 
									
										
										
										
											2009-09-15 15:28:11 -04: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-15 14:49:53 -08:00
										 |  |  |         $user = User::staticGet('nickname', 'userrightstestuser'); | 
					
						
							|  |  |  |         if ($user) { | 
					
						
							|  |  |  |             // Leftover from a broken test run?
 | 
					
						
							|  |  |  |             $profile = $user->getProfile(); | 
					
						
							|  |  |  |             $user->delete(); | 
					
						
							|  |  |  |             $profile->delete(); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-09-15 15:28:11 -04:00
										 |  |  |         $this->user = User::register(array('nickname' => 'userrightstestuser')); | 
					
						
							| 
									
										
										
										
											2009-12-15 14:49:53 -08:00
										 |  |  |         if (!$this->user) { | 
					
						
							|  |  |  |             throw new Exception("Couldn't register userrightstestuser"); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-09-15 15:28:11 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function tearDown() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-12-15 14:49:53 -08:00
										 |  |  |         if ($this->user) { | 
					
						
							|  |  |  |             $profile = $this->user->getProfile(); | 
					
						
							|  |  |  |             $this->user->delete(); | 
					
						
							|  |  |  |             $profile->delete(); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-09-15 15:28:11 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function testInvalidRole() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->assertFalse($this->user->hasRole('invalidrole')); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function standardRoles() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-12-15 14:49:53 -08:00
										 |  |  |         return array(array('admin'), | 
					
						
							|  |  |  |                      array('moderator')); | 
					
						
							| 
									
										
										
										
											2009-09-15 15:28:11 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @dataProvider standardRoles | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function testUngrantedRole($role) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->assertFalse($this->user->hasRole($role)); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @dataProvider standardRoles | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function testGrantedRole($role) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->user->grantRole($role); | 
					
						
							| 
									
										
										
										
											2009-12-15 14:49:53 -08:00
										 |  |  |         $this->assertTrue($this->user->hasRole($role)); | 
					
						
							| 
									
										
										
										
											2009-09-15 15:28:11 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | } |