You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?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->assertSame(5, strlen($code)); $this->assertSame(Session::get('_ctoken'), $token); $this->assertSame(32, strlen($token)); }
public function testCheckCode() { $token = Session::get('_ctoken'); $code = Session::get('_ccode'); $this->assertFalse($this->captcha->checkCode($token . 'asd', $code)); $this->assertSame(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(); } }
|