home *** CD-ROM | disk | FTP | other *** search
- <?php
- require_once 'System.php';
- require_once 'PHPUnit.php';
- require_once 'File/Passwd/Smb.php';
-
- function hash_nt($txt)
- {
- return strToUpper(bin2hex($GLOBALS['msc']->ntPasswordHash($txt)));
- }
- function hash_lm($txt)
- {
- return strToUpper(bin2hex($GLOBALS['msc']->lmPasswordHash($txt)));
- }
-
- $GLOBALS['tmpfile'] = System::mktemp();
- $GLOBALS['msc'] = &new Crypt_CHAP_MSv1();
- $GLOBALS['user'] = array(
- 'mike' => array(
- 'userid' => 501,
- 'nthash' => hash_nt('123'),
- 'lmhash' => hash_lm('123'),
- 'flags' => '[U ]',
- 'lct' => 'LCT-3FA7AE9B',
- 'comment'=> 'Michael Wallner'
- )
- );
-
- /**
- * TestCase for File_Passwd_SmbTest class
- * Generated by PHPEdit.XUnit Plugin
- *
- */
- class File_Passwd_SmbTest extends PHPUnit_TestCase{
-
- var $pw;
-
- /**
- * Constructor
- * @param string $name The name of the test.
- * @access protected
- */
- function File_Passwd_SmbTest($name){
- $this->PHPUnit_TestCase($name);
- }
-
- /**
- * Called before the test functions will be executed this function is defined in PHPUnit_TestCase and overwritten here
- * @access protected
- */
- function setUp(){
- $this->pw = &new File_Passwd_Smb();
- }
-
- /**
- * Called after the test functions are executed this function is defined in PHPUnit_TestCase and overwritten here
- * @access protected
- */
- function tearDown(){
- $this->pw = null;
- unset($this->pw);
- }
-
- /**
- * Regression test for File_Passwd_Smb.File_Passwd_Smb method
- * @access public
- */
- function testFile_Passwd_Smb(){
- $this->assertTrue(is_a($this->pw, 'File_Passwd_Smb'));
- }
-
- /**
- * Regression test for File_Passwd_Smb.staticAuth method
- * @access public
- */
- function teststaticAuth(){
- $rs = File_Passwd_Smb::staticAuth('passwd.smb.txt', 'mike', 123);
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
- }
-
- /**
- * Regression test for File_Passwd_Smb.parse method
- * @access public
- */
- function testparse(){
- $this->pw->setFile('passwd.smb.txt');
- $rs = $this->pw->load();
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
- $u = asort($GLOBALS['user']);
- $s = asort($this->pw->listUser());
- $this->assertEquals($u, $s);
- }
-
- /**
- * Regression test for File_Passwd_Smb.addUser method
- * @access public
- */
- function testaddUser(){
- $rs = $this->pw->addUser('mike2', 123, array('userid' => 502));
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
- }
-
- /**
- * Regression test for File_Passwd_Smb.modUser method
- * @access public
- */
- function testmodUser(){
- $this->pw->addUser('mike3', 123, array('userid' => 503));
- $rs = $this->pw->modUser('mike3', array('userid' => 599));
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
- }
-
- /**
- * Regression test for File_Passwd_Smb.changePasswd method
- * @access public
- */
- function testchangePasswd(){
- $abc = 'E0FBA38268D0EC66EF1CB452D5885E53';
- $abc = hash_nt('abc');
- $this->pw->addUser('mike4', 123, array('userid' => 504));
- $rs = $this->pw->changePasswd('mike4', 'abc');
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
- $this->assertEquals($abc, $this->pw->_users['mike4']['nthash']);
- }
-
- /**
- * Regression test for File_Passwd_Smb.verifyEncryptedPasswd method
- * @access public
- */
- function testverifyEncryptedPasswd(){
- $this->pw->addUser('mike5', 'abc', array('userid' => 505));
- $pass = hash_nt('abc');
- $rs = $this->pw->verifyEncryptedPasswd('mike5', $pass);
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
- }
-
- /**
- * Regression test for File_Passwd_Smb.verifyPasswd method
- * @access public
- */
- function testverifyPasswd(){
- $this->pw->addUser('mike6', 'abc', array('userid' => 506));
- $rs = $this->pw->verifyPasswd('mike6', 'abc');
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
- }
-
- /**
- * Regression test for File_Passwd_Smb.save method
- * @access public
- */
- function testsave(){
- $this->pw->setFile($GLOBALS['tmpfile']);
- $this->pw->addUser('mike', 123, array('userid' => 501, 'comment' => 'Michael Wallner'));
- $_lct = $this->pw->_users['mike']['lct'];
- $rs = $this->pw->save();
- $this->assertTrue($rs);
- $this->assertTrue(!PEAR::isError($rs));
-
- list($line) = file($GLOBALS['tmpfile']);
- $test = explode(':', trim(array_shift(file($GLOBALS['tmpfile']))));
- $array= array(
- 'mike',
- '501',
- hash_lm(123),
- hash_nt(123),
- '[U ]',
- $_lct,
- 'Michael Wallner'
- );
- $this->assertEquals($array, $test);
- }
-
- }
-
- ?>