Anton Grebnev
13 years ago
2 changed files with 147 additions and 0 deletions
@ -0,0 +1,104 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-10-27 |
||||
|
* |
||||
|
* Unit tests for Captcha class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/../../session/Session.php'; |
||||
|
require_once dirname(__FILE__) . '/../../captcha/Captcha.php'; |
||||
|
|
||||
|
class CaptchaTest extends PHPUnit_Framework_TestCase |
||||
|
{ |
||||
|
|
||||
|
private $captcha; |
||||
|
|
||||
|
protected $width = 200; |
||||
|
|
||||
|
protected $height = 70; |
||||
|
|
||||
|
|
||||
|
public function setUp() |
||||
|
{ |
||||
|
$this->captcha = new Captcha(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @TODO: give a path to custom font as a param |
||||
|
*/ |
||||
|
public function testGetImage() |
||||
|
{ |
||||
|
$token = $this->captcha->getToken(); |
||||
|
$image = $this->captcha->getImage($token); |
||||
|
$this->assertNotNull($image); |
||||
|
|
||||
|
$my_image = $this->createBlankImage(); |
||||
|
$this->assertNotSame($image, $my_image); |
||||
|
} |
||||
|
|
||||
|
public function testGetImageWrongToken() |
||||
|
{ |
||||
|
$token = $this->captcha->getToken(); |
||||
|
$image = $this->captcha->getImage('tony'); |
||||
|
$this->assertNotNull($image); |
||||
|
|
||||
|
$my_image = $this->createBlankImage(); |
||||
|
$this->assertSame($image, $my_image); |
||||
|
} |
||||
|
|
||||
|
public function testGetImageEmptyCode() |
||||
|
{ |
||||
|
$token = $this->captcha->getToken(); |
||||
|
Session::set('_ccode', ''); |
||||
|
$image = $this->captcha->getImage($token); |
||||
|
$this->assertNotNull($image); |
||||
|
|
||||
|
$my_image = $this->createBlankImage(); |
||||
|
$this->assertSame($image, $my_image); |
||||
|
} |
||||
|
|
||||
|
public function testGetToken() |
||||
|
{ |
||||
|
$token = $this->captcha->getToken(); |
||||
|
$code = Session::get('_ccode'); |
||||
|
$this->assertNotEmpty($token); |
||||
|
$this->assertNotEmpty($code); |
||||
|
$this->assertEquals(5, strlen($code)); |
||||
|
$this->assertEquals(Session::get('_ctoken'), $token); |
||||
|
$this->assertEquals(32, strlen($token)); |
||||
|
} |
||||
|
|
||||
|
public function testCheckCode() |
||||
|
{ |
||||
|
$token = Session::get('_ctoken'); |
||||
|
$code = Session::get('_ccode'); |
||||
|
$this->assertFalse($this->captcha->checkCode($token . 'asd', $code)); |
||||
|
$this->assertEquals(Session::get('_ctoken'), $token); |
||||
|
$this->assertTrue($this->captcha->checkCode($token, $code)); |
||||
|
$this->assertNull(Session::get('_ctoken')); |
||||
|
} |
||||
|
|
||||
|
public function tearDown() |
||||
|
{ |
||||
|
$sid = session_id(); |
||||
|
if (!empty($sid)) { |
||||
|
Session::destroy(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private function createBlankImage() |
||||
|
{ |
||||
|
$image = imagecreatetruecolor($this->width, $this->height); |
||||
|
$background = imagecolorallocate($image, 255, 255, 255); |
||||
|
imagefilledrectangle($image, 0, 0, $this->width, $this->height, $background); |
||||
|
ob_start(); |
||||
|
imagejpeg($image, '', 100); |
||||
|
return ob_get_clean(); |
||||
|
} |
||||
|
} |
||||
|
|
@ -0,0 +1,43 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-10-27 |
||||
|
* |
||||
|
* Unit tests for CaptchaValidator class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/../../session/Session.php'; |
||||
|
require_once dirname(__FILE__) . '/../../validator/iValidator.php'; |
||||
|
require_once dirname(__FILE__) . '/../../validator/Validator.php'; |
||||
|
require_once dirname(__FILE__) . '/../../captcha/CaptchaValidator.php'; |
||||
|
require_once dirname(__FILE__) . '/../../captcha/Captcha.php'; |
||||
|
|
||||
|
class CaptchaValidatorTest extends PHPUnit_Framework_TestCase |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* @TODO: CaptchaValidator->isValid() - $value param not used |
||||
|
*/ |
||||
|
public function testIsValid() |
||||
|
{ |
||||
|
$captcha = new Captcha(); |
||||
|
$token = $captcha->getToken(); |
||||
|
$code = Session::get('_ccode'); |
||||
|
|
||||
|
$validator = new CaptchaValidator(); |
||||
|
$this->assertTrue($validator->isValid(null, array('ctoken' => $token, 'ccode' => $code))); |
||||
|
$this->assertFalse($validator->isValid(null, array('ctoken' => $token . 'asd', 'ccode' => $code))); |
||||
|
$this->assertEquals('Entered code wrong', $validator->getMessage()); |
||||
|
} |
||||
|
|
||||
|
public function testIsValidInvalid() |
||||
|
{ |
||||
|
$validator = new CaptchaValidator(); |
||||
|
$this->assertFalse($validator->isValid(null, array())); |
||||
|
$this->assertEquals('Entered code wrong', $validator->getMessage()); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue