芝麻web文件管理V1.00
编辑当前文件:/home/strato/chroot/opt/RZphp5/includes/test/Text_Password/tests/Text_Password_Test.php
* @extends PHPUnit_TestCase * @version $Id: Text_Password_Test.php,v 1.2 2004/10/31 22:40:50 mj Exp $ */ class Text_Password_Test extends PHPUnit_TestCase { function testCreate() { $password = Text_Password::create(); $this->assertTrue(strlen($password) == 10); } function testCreateWithLength() { $password = Text_Password::create(15); $this->assertTrue(strlen($password) == 15); } function testCreateMultiple() { $passwords = Text_Password::createMultiple(3); $this->_testCreateMultiple($passwords, 3, 10); } function testCreateMultipleWithLength() { $passwords = Text_Password::createMultiple(3, 15); $this->_testCreateMultiple($passwords, 3, 15); } function testCreateNumericWithLength() { $password = Text_Password::create(8, 'unpronounceable', 'numeric'); $this->assertRegExp("/^[0-9]{8}$/", $password); } function testCreateFromABCWithLength() { $password = Text_Password::create(8, 'unpronounceable', 'a,b,c'); $this->assertRegExp("/^[abc]{8}$/i", $password); } function testCreateAlphabeticWithLength() { $password = Text_Password::create(8, 'unpronounceable', 'alphabetic'); $this->assertRegExp("/^[a-z]{8}$/i", $password); } function testTimeToBruteForce() { $password = Text_Password::create(5, 'unpronounceable'); $result = $this->_TimeToBruteForce($pass); $this->assertTrue($result['combination'] == 1); $this->assertTrue($result['max'] == 0.00025); $this->assertTrue($result['min'] == 0.000125); } // {{{ Test cases for creating passwords based on a given login string function testCreateFromLoginReverse() { $this->assertEquals("eoj", Text_Password::createFromLogin("joe", "reverse")); } function testCreateFromLoginShuffle() { $this->assertTrue(strlen(Text_Password::createFromLogin("hello world", "shuffle")) == strlen("hello world")); } function testCreateFromLoginRotX() { $this->assertEquals("tyo", Text_Password::createFromLogin("joe", "rotx", 10)); } function testCreateFromLoginRot13() { $this->assertEquals("wbr", Text_Password::createFromLogin("joe", "rot13")); } function testCreateFromLoginRotXplusplus() { $this->assertEquals("syp", Text_Password::createFromLogin("joe", "rotx++", 9)); } function testCreateFromLoginRotXminusminus() { $this->assertEquals("swl", Text_Password::createFromLogin("joe", "rotx--", 9)); } function testCreateFromLoginXOR() { $this->assertEquals("oj`", Text_Password::createFromLogin("joe", "xor", 5)); } function testCreateFromLoginASCIIRotX() { $this->assertEquals("otj", Text_Password::createFromLogin("joe", "ascii_rotx", 5)); } function testCreateFromLoginASCIIRotXplusplus() { $this->assertEquals("oul", Text_Password::createFromLogin("joe", "ascii_rotx++", 5)); } function testCreateFromLoginASCIIRotXminusminus() { $this->assertEquals("uyn", Text_Password::createFromLogin("joe", "ascii_rotx--", 11)); } /** * Unit test for bug #2605 * * Actually this method does not implement a real unit test, but * instead it is there to make sure that no warning is produced * by PHP. * * @link http://pear.php.net/bugs/bug.php?id=2605 */ function testBugReport2605() { $password = Text_Password::create(7, 'unpronounceable', '1,3,a,Q,~,[,f'); $this->assertTrue(strlen($password) == 7); } // }}} // {{{ private helper methods function _testCreateMultiple($passwords, $count, $length) { $this->assertType("array", $passwords); $this->assertTrue(count($passwords) == $count); foreach ($passwords as $password) { $this->assertTrue(strlen($password) == $length); } } function _timeToBruteForce($password, $nbr = 0, $cmbPerSeconde = 4000) { global $_Text_Password_NumberOfPossibleCharacters; $nbr = ($nbr == 0) ? $_Text_Password_NumberOfPossibleCharacters : $nbr; $cmb = pow($nbr, strlen($password)); $time_max = $cmb / $cmbPerSeconde; $time_min = ($cmb / $cmbPerSeconde) / 2; return array("combination" => $cmb, "max" => $time_max, "min" => $time_min); } // }}} } $suite = new PHPUnit_TestSuite('Text_Password_Test'); $result = PHPUnit::run($suite); echo $result->toString();