diff options
Diffstat (limited to 'tests/unit/Security/TUserManagerTest.php')
| -rw-r--r-- | tests/unit/Security/TUserManagerTest.php | 101 | 
1 files changed, 92 insertions, 9 deletions
diff --git a/tests/unit/Security/TUserManagerTest.php b/tests/unit/Security/TUserManagerTest.php index 8937ba22..68f2b32b 100644 --- a/tests/unit/Security/TUserManagerTest.php +++ b/tests/unit/Security/TUserManagerTest.php @@ -7,47 +7,130 @@ Prado::using('System.Security.TUserManager');   * @package System.Security   */  class TUserManagerTest extends PHPUnit_Framework_TestCase { +	 +	public static $app=null; +	public static $config=null; +	  	public function setUp() { +		 +		if(self::$app === null) { +			self::$app = new TApplication(dirname(__FILE__).'/app'); +			prado::setPathofAlias('App', dirname(__FILE__)); +		} +		 +		if (self::$config === null) { +			// Simulate a config file +			self::$config=new TXmlDocument('1.0','utf8'); +			self::$config->loadFromString('<users><user name="Joe" password="demo"/><user name="John" password="demo" /><user name="test" password="test" roles="Reader, User"/><role name="Administrator" users="John" /><role name="Writer" users="Joe, John" /></users>'); +		}  	}  	public function tearDown() {  	}  	public function testInit() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		$userManager->init (self::$config); +		self::assertEquals(array('joe'=>'demo','john'=>'demo', 'test' => 'test'), $userManager->getUsers()); +		$userManager=null; +		// Test with a file +		if (is_writable (dirname(__FILE__))) { +			self::$config->saveToFile(dirname(__FILE__).'/users.xml'); +			$userManager=new TUserManager(); +			$userManager->setUserFile('App.users'); +			$userManager->init (new TXmlDocument()); // Empty config +			self::assertEquals(array('joe'=>'demo','john'=>'demo', 'test' => 'test'), $userManager->getUsers()); +			unlink (dirname(__FILE__).'/users.xml'); +		}   	}  	public function testUsers() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		$userManager->init (self::$config); +		self::assertEquals(array('joe'=>'demo','john'=>'demo', 'test' => 'test'), $userManager->getUsers());  	}  	public function testRoles() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		$userManager->init (self::$config); +		self::assertEquals(array('joe'=>array ('Writer'), 'john'=>array ('Administrator','Writer'), 'test' => array ('Reader', 'User')), $userManager->getRoles());  	}  	public function testUserFile() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		try { +			$userManager->setUserFile('invalidFile'); +			self::fail ('Exception TConfigurationException not thrown'); +		} catch (TConfigurationException $e) {} +		$userManager=null; +		if (is_writable (dirname(__FILE__))) { +			self::$config->saveToFile(dirname(__FILE__).'/users.xml'); +			$userManager=new TUserManager(); +			$userManager->setUserFile('App.users'); +			$userManager->init (new TXmlDocument()); // Empty config +			self::assertEquals(dirname(__FILE__).'/users.xml', $userManager->getUserFile()); +			unlink (dirname(__FILE__).'/users.xml'); +			$userManager=null; +		}  +		$userManager=new TUserManager (); +		$userManager->init (self::$config); +		try { +			$userManager->setUserFile('App.users'); +			self::fail ('Exception TInvalidOperationException not thrown'); +		} catch (TInvalidOperationException $e) {}  	}  	public function testGuestName() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		self::assertEquals('Guest', $userManager->getGuestName()); +		$userManager->setGuestName('Invite'); +		self::assertEquals('Invite', $userManager->getGuestName());  	}  	public function testPasswordMode() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		$userManager->setPasswordMode('Clear'); +		self::assertEquals('Clear', $userManager->getPasswordMode()); +		$userManager->setPasswordMode('MD5'); +		self::assertEquals('MD5', $userManager->getPasswordMode()); +		$userManager->setPasswordMode('SHA1'); +		self::assertEquals('SHA1', $userManager->getPasswordMode()); +		try { +			$userManager->setPasswordMode('Invalid'); +			self::fail ('Exception TInvalidDataValueException not thrown'); +		} catch (TInvalidDataValueException $e) {} +		  	}  	public function testValidateUser() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		$userManager->init (self::$config); +		$userManager->setPasswordMode('Clear'); +		self::assertTrue($userManager->validateUser('Joe', 'demo')); +		self::assertFalse($userManager->validateUser('John', 'bad'));  	}  	public function testUser() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		$userManager->init (self::$config); +		$guest=$userManager->getUser(null); +		self::assertType('TUser', $guest); +		self::assertTrue($guest->getIsGuest()); +		$user=$userManager->getUser('joe'); +		self::assertType('TUser', $user); +		self::assertEquals('joe', $user->getName()); +		self::assertEquals(array ('Writer'), $user->getRoles()); +		self::assertFalse($user->getIsGuest()); +		self::assertNull($userManager->getUser('badUser'));  	}  	public function testSwitchToGuest() { -		throw new PHPUnit_Framework_IncompleteTestError(); +		$userManager=new TUserManager (); +		$userManager->init (self::$config); +		$user=$userManager->getUser('joe'); +		$userManager->switchToGuest($user); +		self::assertTrue($user->getIsGuest());  	}  }  | 
